Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с восстановлением БД  [new]
Андрей1978
Member

Откуда:
Сообщений: 15
Вечер добрый! Вопрос к Гуру сайта. Сегодня лег РАйд, возникли проблемы с вылетом базы в suspect. Их решил через checkDB с параметром Repair_allow_data_loss, база запустилась, тем не менее, что то мне не понравилось, затем при запуске следующей совокупности:
ALTER DATABASE БД SET SINGLE_USER
GO
DBCC CHECKDB ('БД', repair_fast) WITH ALL_ERRORMSGS
GO
ALTER DATABASE БД SET multi_USER
GO
Выдает ошибку: Сообщение 8921, уровень 16, состояние 1, строка 2
Проверка отменена. В процессе сбора фактов была обнаружена ошибка. Возможно, база данных tempdb достигла предела памяти, или системная таблица не согласована. Проверьте предыдущие ошибки.

Искал источник, после долгих поисков нашел таблицу: CNV_ExpDataKRSB, запускал конкретно по ней DBCC CHECKTABLE ('CNV_ExpDataKRSB'), сообщение
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Сообщение 602, уровень 21, состояние 30, строка 1
Не удалось найти запись для таблицы или индекса с идентификатором секции 72057827301523456 в базе данных 11. Причиной возникновения этой ошибки может быть повреждение метаданных или ссылка на удаленную таблицу из хранимой процедуры. Удалите и повторно создайте хранимую процедуру, либо выполните инструкцию DBCC CHECKDB.
Аналогичный ответ и на SELECT *
FROM [Taxes01].[dbo].[CNV_ExpDataKRSB]

Сообщение 608, уровень 16, состояние 1, строка 2
Запись каталога не обнаружена для идентификатора секции 72057827301523456 в базе данных 8. Метаданные несогласованы. Запустите DBCC CHECKDB, чтобы выполнить проверку метаданных на повреждение.


Вопрос, что делать, т. к. Бэкап вчерашний, а потеря данных за полдня также очень чувствительна
11 ноя 13, 21:02    [15111709]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением БД  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 236
Может стоит сделать бэкап журнала, если модель восстановления full и журнал не поврежден.
Лучше бэкап с опцией no_truncate, чтобы оставить рабочую БД в исходном состоянии на случай неудачи.
Поднять вчерашний бэкап с NORECOVERY и накатить на него бэкап журнала - где-нить на другом серваке.
Получится, повторить на рабочем.

Есть еще Page Restore хотя после CHECKDB поздняк метаться наверное
11 ноя 13, 21:34    [15111792]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением БД  [new]
Андрей1978
Member

Откуда:
Сообщений: 15
Matroz
Может стоит сделать бэкап журнала, если модель восстановления full и журнал не поврежден.
Лучше бэкап с опцией no_truncate, чтобы оставить рабочую БД в исходном состоянии на случай неудачи.
Поднять вчерашний бэкап с NORECOVERY и накатить на него бэкап журнала - где-нить на другом серваке.
Получится, повторить на рабочем.

Есть еще Page Restore хотя после CHECKDB поздняк метаться наверное

основной косяк в том, что восстановление первое было проведено с repair_allow_data_loss, как следствие журнал был перестроен и данные в нем не сохранились, так что единственная возможность - восстановление косячной таблицы
11 ноя 13, 21:37    [15111799]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением БД  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 236
Единственное, что мне сообщил хелп
BOL
If, because of transaction log corruption, database recovery is unsuccessful, the transaction log is rebuilt. Rebuilding the transaction log may result in the loss of transactional consistency.

То есть журнал транзакций пересоздается только в случае повреждения этого журнала.
Иначе чекдб в отношении журнала ограничивается стандартным рековери, то есть просто откатывает незавершенные транзакции, скидывает в файл данных завершенные.
11 ноя 13, 21:59    [15111836]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить