Восстановление базы данных
Содержание
Восстановления из резервной копии
Для восстановления базы данных из резервной копии можно воспользоваться утилитой 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
После проделанных действий рекомендуется перенести все важные данные в другую БД и сделать ее резервную копию.