Войти

Показать полную графическую версию : MS SQL 2005 Standard, проблема с БД 1С.


__sa__nya
22-04-2009, 12:59
Доброе время суток. Есть MS SQL 2005 Standard, на котором закреплены БД для 1С. К одной из таких БД невозможно получить доступ: в списке БД на ней стоит восклицательный знак, рядом с именем в скобках написано (Suspect). Хотел восстановить логическую целостность с помощью DBCC CHECKDBF (DBCC CHECKDB ('8.1')), но при выполнении запроса выдается следующая ошика:

Msg 926, Level 14, State1, Line1
Database '8.1' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
Думал что возможно что-то не так с SQL на этой машине, поставил SQL на другую, пробовал приаттачить, при прикреплении произошла следующая ошибка:

SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0xbefe5da5; actual: 0x530a5da1). It occurred during a read of page (1:2251394) in database ID 5 at offset 0x0000044b504000 in file 'G:\check_base\8.1.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Так же, думал, что SQL сам что-нибудь исправляет в этой базе, раз она помечена "подозрительной", оставил на ночь, эффекта не дало.
Подскажите пожалуйста как можно реанимировать базу.

kim-aa
22-04-2009, 18:17
__sa__nya,
1) А полная архивная копия базы есть?

2) Перед началом операций восстановления убедитесь что у вас нет проблем с накопителем (жестким диском).

Delirium
23-04-2009, 01:47
А если поковырять результаты этого (http://www.google.ru/search?hl=ru&q=sql+2005+suspect+base&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=) поиска?

В частности, интересна статья на http://www.sqlusa.com/bestpractices2005/markedsuspect/

__sa__nya
23-04-2009, 07:16
kim-aa, полная копия базы есть, но довольно староватая, с дисками проблем нет, проверяли.
Delirium, вчера в google целый день рылись, все более-менее внятные посты говорят, что нужно пробовать DBCC CHECKDB, а как я писал выше, такое не проканывает, еще натыкались на такой код:

EXEC sp_resetstatus ‘yourDBname’;
ALTER DATABASE yourDBname SET EMERGENCY
DBCC checkdb(’yourDBname’)
ALTER DATABASE yourDBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (’yourDBname’, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE yourDBname SET MULTI_USER

- Он тоже не проканывает, ругается на стрку "ALTER DATABASE '8.1' SET EMERGENCY' (имя проблемной БД 8.1, и SQL говорит, что синтаксическая ошибка в программе, пробовали имя указывать в кавычках, без кавычек, в скобках - и ничего). Есть возможность применить DBCC CHECKDB к неприсоединенной БД? Если есть, то как?

Delirium
23-04-2009, 08:23
__sa__nya, а что, если остановить MS SQL и переименовать файлы mdf, ldf на другое имя? типа Base8 ?И попробовать подцепить ее. Может, действительно, имя не нравится?

__sa__nya
23-04-2009, 10:04
Delirium, при подцепливании базы выходит ошибка, о которой писал выше.




© OSzone.net 2001-2012