Восстановление базы данных MS SQL, если нет журнала транзакций(_log.ldf)?

Проснувшись утром понедельника,получил письмо: "не работает 1Cv8,что делать" . Залез на сервер и увидел,что нету места на диске. Беглый осмотр дал понять ,что место все занято копиями 1C + распухшим BASENAME_log.ldf .
Ну я не долго думая его и грохнул (надеясь восстановить базу из копий). Моему разочарованию не было предела,когда копии остановились на 26.05.2015.
Пошел гуглить(яндексить) и наткнулся на статью "Как восстановить базу данных MSSQL, если нет журнала транзакций?"
Решил сделать запись и у себя(дабы легче было искать)

Приводится последовательность действий с помощью которой можно вернуть работоспособность базы данных MS SQL сервера, в случае отсутствия журнала транзакций.
Данная последовательность проверялась на Microsoft SQL Server 2005 и 2008.

  1. Останавливаем сервер БД. Сделать это можно из панели управления службами.
  2. Переименовываем файл данных db_name.mdf в db_name.mdf_old
  3. Запускаем сервер БД, из Managment Studio удаляем базу данных
  4. Cоздаем базу данных с таким же именем, как была, в том же месте, где и была.
  5. Останавливаем сервер БД. Подменяем файл новой базы нашим переименованным файлом. Переименовываем его обратно.
  6. Стартуем сервер.
  7. Выполняем:
           go 
           sp_configure 'allow updates', 1 
           reconfigure with override 
           go
    
  8. Выполняем:
    alter database db_name set EMERGENCY, SINGLE_USER
  9. Выполняем:
    dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS )
    Если база большая, то выполнение этой команды может занять несколько минут.
    Эта команда выдаст много сообщений, можете не вникать.
  10. Перезапускаем SQL сервер
  11. Выполняем:
    alter database db_name set ONLINE, MULTI_USER
    На этом этапе у меня возникла проблема,что база была в однопользовательском режиме и перезапуск MSSQL не помогал(Надо еще сделать рестарт "агент сервера 1С предприятия")
  12. Выполняем:
           Use master 
           go 
           sp_configure 'allow updates', 0 
           go 
  13. Перезапускаем SQL сервер (на всякий случай, хотя и не обязательно)
  14. После выполнения этих, не очень сложных, манипуляций ваша база данных должна заработать.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *