<< 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). Тут Вам слід створити нову базу для того, щоб дані з відновленої БД скопіювати в нову порожню.