<< Click to Display Table of Contents >> SQL server 2000 |
![]() ![]() ![]() |
Проверить находится ли база в состоянии Suspect можно следующим образом: Пуск-Все программы-Microsoft SQL Server-Enterprise manager. Откроется окно SQL Server Enterprise Manager в этом окне раскроется еще одно окно Console root\Microsoft SQL Servers. В данном окне необходимо развернуть пункты так как указано на рисунке (Рис.1).
Рис.1
Одна из баз будет называется примерно так HoteysoftDB. Возле надписи в скобках будет указано Suspect.
Примечание: чаще всего база переходит в состояние Suspect при автоматическом сохранении базы при выходе из программы Торгсофт, в случае когда в настройках самой программы указано, что сохранение базы должно происходить при выходе из программы, а компьютер был выключен сразу после выхода из программы. Также, база может переходить в состояние Suspect, если неожиданно пропало электропитание.
После того как Вы убедились, что Ваша база данных находится в состоянии Suspect, необходимо зайти в Пуск - Все программы - Microsoft SQL Server - Query Analyzer. Откроется окно (Рис.2)
Рис.2
Укажите все так как указано на рисунке и нажмите на кнопку ОК. Откроется окно (Рис.3)
Рис.3
В пустое окно необходимо вставить следующий текст:
use master
go
Разрешаем прямое изменение системных таблиц:
sp_configure 'allow updates',1
go
reconfigure with override
go
Для сброса признака Suspect выполняем в БД master ХП sp_resetstatus:
sp_resetstatus 'Название Вашей базы данных'
go
А теперь запретим прямое изменение системных таблиц:
sp_configure 'allow updates',0
go
reconfigure with override
go
После этого статус Suspect должен сброситься.
Команды необходимо выполнять поочередно следующим образом:
1) use master
go
2) sp_configure 'allow updates',1
go
reconfigure with override
go
3) sp_resetstatus 'Название Вашей базы данных'
go
4) sp_configure 'allow updates',0
go
reconfigure with override
go
Примечание: Приведенные выше команды в окне Query Analyzer необходимо выделить мышью и нажать на кнопку Execute Query. Внизу окна должны появляться информативные сообщения об успешном, либо не успешном выполнении той или иной команды.
После этого выполняем следующую команду:
Use master
go
sp_configure 'allow updates', 1
reconfigure with override
go
Далее данную команду:
update sysdatabases set status= 32768 where name = '<Название Вашей базы данных>'
После этого следует перезапустить SQL Server (Пуск - Программы - Microsoft SQL Server - Service Manager. В открывшемся окне нажмите на кнопку Stop, затем Start\Continue), База должна перейти в состояние Emergency mode.
Дальше выполняем команду:
USE <Название Вашей базы данных>
GO
sp_dboption '<Название Вашей базы данных>', 'single_user', 'true' ЛИБО alter database Название Вашей БД set SINGLE_USER
go
DBCC CHECKDB('<Название Вашей базы данных>', REPAIR_ALLOW_DATA_LOSS)
go
Если все в порядке, то:
sp_dboption '<Название Вашей базы данных>', 'single_user', 'false'
go
Use master
go
sp_configure 'allow updates', 0
go
Далее необходимо перейти к SQL Server Enterprise Manager (Рис.1). Тут Вам следует создать новую базу для того, чтобы данные из восстановленной БД скопировать в новую пустую.