Приводится последовательность действий с помощью которой можно вернуть работоспособность базы данных MS SQL сервера, в случае отсутствия журнала транзакций.
Данная последовательность проверялась на Microsoft SQL Server 2005 и 2008.- Останавливаем сервер БД. Сделать это можно из панели управления службами.
- Переименовываем файл данных db_name.mdf в db_name.mdf_old
- Запускаем сервер БД, из Managment Studio удаляем базу данных
- Cоздаем базу данных с таким же именем, как была, в том же месте, где и была.
- Останавливаем сервер БД. Подменяем файл новой базы нашим переименованным файлом. Переименовываем его обратно.
- Стартуем сервер.
- Выполняем:
go sp_configure 'allow updates', 1 reconfigure with override go
- Выполняем:
alter database db_name set EMERGENCY, SINGLE_USER - Выполняем:
dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS )
Если база большая, то выполнение этой команды может занять несколько минут.
Эта команда выдаст много сообщений, можете не вникать. - Перезапускаем SQL сервер
- Выполняем:
alter database db_name set ONLINE, MULTI_USER - Выполняем:
Use master go sp_configure 'allow updates', 0 go
- Перезапускаем SQL сервер (на всякий случай, хотя и не обязательно)
http://www.bkyca.net/k0080.html
http://www.izcity.com/data/soft/article644.htm