Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Възстановяване на основната база данни на SQL Server

ВЪВЕДЕНИЕ

Основната база данни съдържа записи на структурата/конфигурацията както за текущата инстанция, така и за всички други бази данни. Когато стартирате sp_configure , записвате данни в главната база данни. Той също така съдържа повечето динамични изгледи за управление, които са необходими за наблюдение на екземпляра.

Значението на главната база данни е от решаващо значение. Първо, той има информацията, необходима за отваряне на всички други бази данни и трябва да бъде отворена първо. След това включва всички принципали на ниво екземпляр за текущия екземпляр.

От решаващо значение е да архивирате главната база данни ежедневно. Също толкова важно е да знаете как да възстановите главната база данни в инстанцията. Най-честите случаи са срив на базата данни или необходимостта от възстановяване на главната база данни в друг екземпляр, когато вече не се използва изходния екземпляр. В тази статия ще разгледаме конкретния случай на преместване на главната база данни в друг екземпляр.

ПРОВЕРТЕ СТАТУТА НА УСЛУГИТЕ ЗА ПРИЛОЖЕНИЕ

Възстановяването на главната база данни в друг екземпляр ще включва стартиране на екземпляра в режим на един потребител. Следователно е важно да се уверите, че активната сесия е единствената, която контролира екземпляра.

За това спрете достъпа на всички приложни услуги до екземпляра, особено ако такива приложения имат привилегирован достъп. Могат да възникнат проблеми, ако стартирате екземпляра в режим на един потребител, докато приложението вече е установило сесия. В този случай няма да можете да продължите с интерактивна сесия от SQL Server Management Studio.

СПИРАНЕ НА УСЛУГИТЕ НА SQL СЪРВЪР

Спрете всички услуги на SQL Server с SQL Server Configuration Manager:щракнете с десния бутон върху всяка услуга и изберете Стоп от контекстното меню (вижте фиг. 2).

Стартирайте SQL СЪРВЪР В РЕЖИМ НА ЕДИН ПОТРЕБИТЕЛ

За да възстановите главната база данни, имате нужда от екземпляр на SQL Server в режим на един потребител. Направете следните стъпки:

  1. Отворете CMD подкана
  2. Отидете до C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
  3. Проблем с sqlservr –m OR NET start MSSQLServer /c /m /T3604

ИЛИ

Имайте предвид, че стъпка 2 се отнася до Binn местоположение на директорията. Може да е различно във вашата инсталация.

Можете да намерите необходимата директория, като проверите раздела Service на свойствата на услугата на SQL Server в SQL Server Configuration Manager (вижте фигура 4):

ВЪЗСТАНОВЯВАНЕ МАСТЕР

Когато възстановявате master от един екземпляр в друг, получавате нови принципали и нови стойности в системни каталози, съдържащи такива стойности като името на екземпляра и дори местоположението на tempdb.

Преди да възстановите главния, уверете се, че пътищата на целевия сървър са налични за TempDB файлове, както са дефинирани в изходния сървър. В противен случай новият екземпляр няма да се стартира успешно след завършване на възстановяването.

  1. Отворете SQL Server Management Studio
  2. Изпълнете кода в листинг 1 в SQL Server Management Studio
-- Listing 1: Restore Master Database
restore database master from disk ='<full_path_of_backup>' with replace;

Забележка: Инстанцията ще се изключи, след като възстановяването приключи.

ПРОМЯНА НА АКАУНА ЗА УСЛУГА

За да стартирате SQL Server след завършване на възстановяването, направете следното:

  1. Променете акаунта за услугата на SQL Server на акаунта, в който сте влезли в момента.
  2. Отворете Старт> Всички програми> Microsoft SQL Server 2005> Инструменти за конфигуриране> SQL Server Configuration Manager
  3. Щракнете с десния бутон върху всяка услуга и изберете Свойства
  4. В Вход раздел, въведете желаното име на акаунт и съответната парола.

ИМЕ НА СЪРВЪР

Основната база данни съдържа името на инстанцията, където се намира. Тъй като архивът, възстановен в този сценарий, е от различен екземпляр, трябва да актуализирате името на сървъра с помощта на съхранени процедури, както е показано в листинг 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 агент

РЕФЕРЕНЦИИ

Основна база данни


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. алтернативи на REPLACE на текстов или ntext тип данни

  2. Извикване на съхранена процедура с параметър в C#

  3. SQL Server 2016:Създайте база данни

  4. Как да коригирате:„SQLServerAgent в момента не работи…“

  5. Как да активирате улавянето на промяна на данни (CDC) в база данни в SQL Server - урок за SQL Server