SQL БД "В процессе восстановления" (закончилось место на диске сервера)
Здравствуйте!
На рабочей базе вручную запустил регл. задание Пересчет итогов регистра накопления. В процессе выполнения журнал транзакций по какой-то причине раздулся, место на диске закончилось. БД перешла в состояние "В процессе восстановления".
Используется простая модель восстановления. Подскажите, пожалуйста, как вернуть базу данных в рабочее состояние?
На рабочей базе вручную запустил регл. задание Пересчет итогов регистра накопления. В процессе выполнения журнал транзакций по какой-то причине раздулся, место на диске закончилось. БД перешла в состояние "В процессе восстановления".
Используется простая модель восстановления. Подскажите, пожалуйста, как вернуть базу данных в рабочее состояние?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)Да место то уже освободил
(3)Не помогло (пишет, что база находится не в подходящем состоянии... что-то там)
В итоге, перевести в онлайн получилось только так
Предварительно база была удалена, создана заново и ей подсунут рабочий .mdf (без этих манипуляций инструкция alter не отрабатывала из-за "наличия незавершенных транзакций", кажется)
Однако, checkdb вывел следующее
И хотя БД открылась на первый взгляд без ошибок, все же не рискнул и восстановился из резервной копии (благо изменений в базе с момента ее создания минимум).
Вот теперь думаю, эти ошибки связаны с отсутствием соответствующего лога (лог не подкидывал, он пересоздался автоматически) или все таки база порушилась в процессе пересчета итогов? На восстановленной из бэкапа CHECKDB отрабатывает без ошибок...
(3)Не помогло (пишет, что база находится не в подходящем состоянии... что-то там)
В итоге, перевести в онлайн получилось только так
alt er database db set emergency
go
alt er database db set single_user
go
dbcc checkdb ('db', REPAIR_ALLOW_DATA_LOSS)
go
alt er database db set multi_user
Предварительно база была удалена, создана заново и ей подсунут рабочий .mdf (без этих манипуляций инструкция alter не отрабатывала из-за "наличия незавершенных транзакций", кажется)
Однако, checkdb вывел следующее
CHECKDB обнаружил 2779 ошибок размещения и 73409 ошибок согласованности в базе данных "db".
CHECKDB исправил 2779 ошибок размещения и 73409 ошибок согласованности в базе данных "db"".
CHECKDB исправил 2779 ошибок размещения и 73409 ошибок согласованности в базе данных "db"".
И хотя БД открылась на первый взгляд без ошибок, все же не рискнул и восстановился из резервной копии (благо изменений в базе с момента ее создания минимум).
Вот теперь думаю, эти ошибки связаны с отсутствием соответствующего лога (лог не подкидывал, он пересоздался автоматически) или все таки база порушилась в процессе пересчета итогов? На восстановленной из бэкапа CHECKDB отрабатывает без ошибок...
(5)
Да, скорее всего. ldf важный файл, не нужно его удалять без особой необходимости.
Вообще, странно, что база изначально так свалилась. Вы перезагружали или sql сервер перезапускали, когда обнаружили, что место закончилось?
Вот теперь думаю, эти ошибки связаны с отсутствием соответствующего лога
Да, скорее всего. ldf важный файл, не нужно его удалять без особой необходимости.
Вообще, странно, что база изначально так свалилась. Вы перезагружали или sql сервер перезапускали, когда обнаружили, что место закончилось?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот