SQL БД "В процессе восстановления" (закончилось место на диске сервера)

1. soulriwer 06.11.22 00:43 Сейчас в теме
Здравствуйте!
На рабочей базе вручную запустил регл. задание Пересчет итогов регистра накопления. В процессе выполнения журнал транзакций по какой-то причине раздулся, место на диске закончилось. БД перешла в состояние "В процессе восстановления".
Используется простая модель восстановления. Подскажите, пожалуйста, как вернуть базу данных в рабочее состояние?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. XAKEP 06.11.22 08:10 Сейчас в теме
сериал "как не нужно делать и использовать"
3. redfred 06.11.22 09:08 Сейчас в теме
RESTORE DATABASE [database_name] WITH RECOVERY
4. user1863362 06.11.22 12:55 Сейчас в теме
(3) Думаешь, это освободит место на диcке?
6. redfred 06.11.22 15:33 Сейчас в теме
(4) Думаю, что после вывода базы в нормальный режим можно сжимать лог
5. soulriwer 06.11.22 14:37 Сейчас в теме
(4)Да место то уже освободил

(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 отрабатывает без ошибок...
7. redfred 06.11.22 15:38 Сейчас в теме
(5)
Вот теперь думаю, эти ошибки связаны с отсутствием соответствующего лога


Да, скорее всего. ldf важный файл, не нужно его удалять без особой необходимости.
Вообще, странно, что база изначально так свалилась. Вы перезагружали или sql сервер перезапускали, когда обнаружили, что место закончилось?
8. soulriwer 06.11.22 17:29 Сейчас в теме
(7)Вообще, место не закончилось совсем. Когда я обнаружил, что база ушла в офлайн, на диске было свободно 10ГБ. Для информации, размер моей базы - 60ГБ, а лог в процессе выполнения регл. задания 1С раздулся до 70ГБ.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот