ВЪВЕДЕНИЕ
Основната база данни съдържа записи на структурата/конфигурацията както за текущата инстанция, така и за всички други бази данни. Когато стартирате sp_configure , записвате данни в главната база данни. Той също така съдържа повечето динамични изгледи за управление, които са необходими за наблюдение на екземпляра.
Значението на главната база данни е от решаващо значение. Първо, той има информацията, необходима за отваряне на всички други бази данни и трябва да бъде отворена първо. След това включва всички принципали на ниво екземпляр за текущия екземпляр.
От решаващо значение е да архивирате главната база данни ежедневно. Също толкова важно е да знаете как да възстановите главната база данни в инстанцията. Най-честите случаи са срив на базата данни или необходимостта от възстановяване на главната база данни в друг екземпляр, когато вече не се използва изходния екземпляр. В тази статия ще разгледаме конкретния случай на преместване на главната база данни в друг екземпляр.
ПРОВЕРТЕ СТАТУТА НА УСЛУГИТЕ ЗА ПРИЛОЖЕНИЕ
Възстановяването на главната база данни в друг екземпляр ще включва стартиране на екземпляра в режим на един потребител. Следователно е важно да се уверите, че активната сесия е единствената, която контролира екземпляра.
За това спрете достъпа на всички приложни услуги до екземпляра, особено ако такива приложения имат привилегирован достъп. Могат да възникнат проблеми, ако стартирате екземпляра в режим на един потребител, докато приложението вече е установило сесия. В този случай няма да можете да продължите с интерактивна сесия от SQL Server Management Studio.
СПИРАНЕ НА УСЛУГИТЕ НА SQL СЪРВЪР
Спрете всички услуги на SQL Server с SQL Server Configuration Manager:щракнете с десния бутон върху всяка услуга и изберете Стоп от контекстното меню (вижте фиг. 2).
Стартирайте SQL СЪРВЪР В РЕЖИМ НА ЕДИН ПОТРЕБИТЕЛ
За да възстановите главната база данни, имате нужда от екземпляр на SQL Server в режим на един потребител. Направете следните стъпки:
- Отворете CMD подкана
- Отидете до C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
- Проблем с sqlservr –m OR NET start MSSQLServer /c /m /T3604
ИЛИ
Имайте предвид, че стъпка 2 се отнася до Binn местоположение на директорията. Може да е различно във вашата инсталация.
Можете да намерите необходимата директория, като проверите раздела Service на свойствата на услугата на SQL Server в SQL Server Configuration Manager (вижте фигура 4):
ВЪЗСТАНОВЯВАНЕ МАСТЕР
Когато възстановявате master от един екземпляр в друг, получавате нови принципали и нови стойности в системни каталози, съдържащи такива стойности като името на екземпляра и дори местоположението на tempdb.
Преди да възстановите главния, уверете се, че пътищата на целевия сървър са налични за TempDB файлове, както са дефинирани в изходния сървър. В противен случай новият екземпляр няма да се стартира успешно след завършване на възстановяването.
- Отворете SQL Server Management Studio
- Изпълнете кода в листинг 1 в SQL Server Management Studio
-- Listing 1: Restore Master Database
restore database master from disk ='<full_path_of_backup>' with replace;
Забележка: Инстанцията ще се изключи, след като възстановяването приключи.
ПРОМЯНА НА АКАУНА ЗА УСЛУГА
За да стартирате SQL Server след завършване на възстановяването, направете следното:
- Променете акаунта за услугата на SQL Server на акаунта, в който сте влезли в момента.
- Отворете Старт> Всички програми> Microsoft SQL Server 2005> Инструменти за конфигуриране> SQL Server Configuration Manager
- Щракнете с десния бутон върху всяка услуга и изберете Свойства
- В Вход раздел, въведете желаното име на акаунт и съответната парола.
ИМЕ НА СЪРВЪР
Основната база данни съдържа името на инстанцията, където се намира. Тъй като архивът, възстановен в този сценарий, е от различен екземпляр, трябва да актуализирате името на сървъра с помощта на съхранени процедури, както е показано в листинг 2.
-- Listing 2: Change the Instance Name for a SQL Server Instance
-- Check the current server name
select @@SERVERNAME
-- Change the server name as seen by the database
sp_dropserver 'EUK-POSTSVR-01'--Present Server name goes here
go
sp_addserver 'EUK-POSTBKP-01','local'--New Server name goes here
go
Рестартирайте SQL Server от SQL Server Configuration Manager, за да влезе в сила промяната на името.
ВХОД ЗА УСЛУГА
Основната база данни също така записва всички данни за влизане, свързани с изходния екземпляр. В новия екземпляр трябва да изчистите ненужните влизания. След това можете да добавите локалните SQL Server Groups по подразбиране към текущия екземпляр.
-- Listing 3: Remove Unnecessary Logins
drop login [EUK-POSTSVR-01\SQLServer2005MSSQLUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005MSFTEUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005SQLAgentUser$EUK-POSTSVR-01$MSSQLSERVER]
-- Listing 4: Add local default SQL Server Groups
create login [EUK-POSTBKP-01\SQLServer2005MSSQLUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005SQLAgentUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005MSFTEUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
Забележка: Уверете се, че акаунтите за услуги на сървъра и агента принадлежат към съответните им групи на ниво ОС и че тези ОС групи имат необходимите разрешения. Таблица 1 показва разрешенията за акаунти на SQL Server Service.
S/No | Привилегия | Изисква се от |
1. | Влезте като услуга | Акаунт за услугата на SQL сървъра Акаунт за услугата за интегриране на акаунт на SQL агент |
2. | Действайте като част от операционната система | Акаунт за услугата на SQL сървъра Обслужващ акаунт на SQL агент |
3 | Влезте като пакетно задание | Акаунт за услугата на SQL сървъра Обслужващ акаунт на SQL агент |
4. | Заменете маркер на ниво процес | Акаунт за услугата на SQL сървъра Обслужващ акаунт на SQL агент |
5. | Заобикаляне на проверката на преход | Акаунт за услугата на SQL сървъра Акаунт за услугата за интегриране на акаунт на SQL агент |
6. | Коригирайте квотите на паметта за процес | Акаунт за услугата на SQL сървъра Обслужващ акаунт на SQL агент |
7. | Създаване на глобални обекти | Акаунт в услугата за интеграция |
8. | Заключване на страници в паметта (AWE) | Акаунт за услугата на SQL сървър |
След като поддържането завърши на ниво база данни, върнете се към акаунта за редовна услуга. Рестартирайте модела още веднъж от SQL Server Configuration Manager.
В този момент можете да стартирате услугите за приложения.
ЗАКЛЮЧЕНИЯ
По време на изпълнението на горния сценарий могат да възникнат грешки. По-долу ще видите информацията за тези грешки.
Ако отстраните проблемите, може да използвате инструменти като ProcMon на SysInternal. Те изолират проблемите с разрешенията за файлове при стартиране на SQL Server (вижте фигура 7).
S/N | Грешка | Причина/Решение |
1. | SQLServerAgent не можа да бъде стартиран (причина:Не може да се свърже със сървъра „(local)“; SQLServerAgent не може да стартира). | Създайте данни за вход за всички акаунти за локални услуги |
2. | Доставчикът на локална връзка на сървъра не успя да прослуша [ \\.\pipe\SQLLocal\MSSQLSERVER]. Грешка:0x5 Инициализацията на TDSSNIClient е неуспешна с грешка 0x5, код на състоянието 0x40. Неуспешна инициализация на TDSSNIClient с грешка 0x5, код на състоянието 0x1. SQL Server не можа да създаде нишка FRunCM. Проверете регистъра за грешки на SQL Server и регистрационните файлове за събития на Windows за информация относно възможни свързани проблеми. Не можа да стартира мрежовата библиотека поради вътрешна грешка в мрежовата библиотека. За да определите причината, прегледайте грешките, непосредствено предхождащи тази в регистъра за грешки. | SQL Server е стартиран преди това с различен акаунт за услуга и е прекратен принудително. Това се случва по време на възстановяването на основната база данни. За да коригирате това, стартирайте екземпляра с акаунта за услуга, използван в стъпка 3, и след това спрете услугата грациозно. След това можете да започнете с акаунта за обикновена услуга. |
3. | SQLServerAgent не можа да бъде стартиран (причина:Грешка при създаването на нова сесия). | Дайте подходящи разрешения на акаунта на SQL агент |
РЕФЕРЕНЦИИ
Основна база данни