Восстановление базы данных: различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
м (для MS SQL Server 2005 SP2)
(нет различий)

Версия 22:21, 3 августа 2011

Восстановления из резервной копии

Для восстановления базы данных из резервной копии можно воспользоваться утилитой DBUtils, которая находится в папке Utils. После запуска программы необходимо выбрать задачу "Восстановить БД из резервной копии", нажать кнопку Далее, затем по шагам заполнить информацию о параметрах подключения к серверу, имени новой базы данных и ее местоположения, указать путь к файлу резервной копии, после чего подтвердить операцию нажатием кнопки Выполнить.

Восстановления поврежденного журнала

База данных MS SQL Server с поврежденным журналом транзакций (ldf-файл) помечается сервером как Suspect. Чаще всего это происходит при внештатной перезагрузке или остановке сервера во время выполнения транзакции.

В случаях, когда автоматическое восстановление БД невозможно (и по каким-либо причинам невозможно восстановление БД из резервной копии), вернуть БД в работоспособное состояние можно, выполнив следующие операции:

для MS SQL Server 2000 SP4

1. Изменить режим БД в sysdatabases на Emergency (это нужно для получения возможности работать с БД без обработки файлов журнала транзакций) запросом:

     sp_configure 'allow updates', 1
     go
     reconfigure with override
     go
     update sysdatabases set status = 32768 where name = '<Имя поврежденной БД>'
     go
     sp_configure 'allow updates', 0
     go
     reconfigure with override
     go

2. Создать новый файл журнала транзакций командой

     DBCC REBUILD_LOG(<Имя поврежденной БД>,'<Путь до нового .ldf файла>')

3. Если все нормально, то там же выполнить

     sp_configure 'allow updates', 1
     go
     reconfigure with override
     go
     use master
     go
     sp_dboption '<Имя поврежденной БД>', 'dbo use only', 'false'
     go
     sp_dboption '<Имя поврежденной БД>', 'single user', 'true'
     go
     use <Имя поврежденной БД>
     go
     DBCC CHECKDB('<Имя поврежденной БД>', REPAIR_ALLOW_DATA_LOSS) with NO_INFOMSGS
     go

4. Если все в порядке, то

     sp_dboption '<Имя поврежденной БД>', 'single user', 'false'
     go
     use master
     go
     sp_configure 'allow updates', 0
     go
     reconfigure with override
     go

для MS SQL Server 2005 SP2

1. Изменить режим БД на Emergency (это нужно для получения возможности работать с БД без обработки файлов журнала транзакций) запросом:

     alter database <Имя поврежденной БД> set emergency
     go

2. Выполнить проверку целостности БД (ВНИМАНИЕ: создание нового файла журнала транзакций произойдет только если БД находится в режиме Emergency):

     alter database <Имя поврежденной БД> set single_user
     go
     DBCC CHECKDB (<Имя поврежденной БД>, REPAIR_ALLOW_DATA_LOSS) with NO_INFOMSGS
     go

3. Перевести БД в многопользовательский режим:

     alter database <Имя поврежденной БД> set multi_user
     go


После проделанных действий рекомендуется перенести все важные данные в другую БД и сделать ее резервную копию.