Поиск по этому блогу

13 сентября 2011 г.

Как восстановить базу данных MS SQL, если нет журнала транзакций?


Приводится последовательность действий с помощью которой можно вернуть работоспособность базы данных 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
  12. Выполняем:
    Use master 
           go 
           sp_configure 'allow updates', 0 
           go 
  13. Перезапускаем SQL сервер (на всякий случай, хотя и не обязательно)
После выполнения этих, не очень сложных, манипуляций ваша база данных должна заработать.

источник:
http://www.bkyca.net/k0080.html

http://www.izcity.com/data/soft/article644.htm