Имя: Пароль:
1C
1С v8
Как восстановить базу данных MS SQL, если нет журнала транзакций?
0 gp42
 
22.03.15
19:23
Упал сервак и удалось спасти только mdf файл.

Наткнулся на статью (http://www.bkyca.net/k0080.html)

Приводится последовательность действий с помощью которой можно вернуть работоспособность базы данных 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
Выполняем:
alt er database db_name set EMERGENCY, SINGLE_USER
Выполняем:
dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS )
Если база большая, то выполнение этой команды может занять несколько минут.
Эта команда выдаст много сообщений, можете не вникать.
Перезапускаем SQL сервер
Выполняем:
alt er database db_name set ONLINE, MULTI_USER
Выполняем:
Use master
go
sp_configure 'allow updates', 0
go
Перезапускаем SQL сервер (на всякий случай, хотя и не обязательно)
После выполнения этих, не очень сложных, манипуляций ваша база данных должна заработать

Не помогло на пункте
dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS )
пишет что не смог создать Лог файл

В системных файлах sysfiles1 не обнаружено записей исходного файла журнала. Не удалось перестроить журнал.
Сообщение 5028, уровень 16, состояние 2, строка 1
Системе не удалось активировать базу данных в достаточной мере для перестроения журнала.
Результаты DBCC для "db_name".
CHECKDB обнаружил 0 ошибок размещения и 0 ошибок согласованности в базе данных "db_name".
Сообщение 7909, уровень 20, состояние 1, строка 1
Аварийное восстановление завершилось неудачно. Требуется восстановление из резервной копии.
1 gp42
 
22.03.15
19:25
Помогите поднять базу.
2 Лефмихалыч
 
22.03.15
19:26
(0) наколотить обратно документы в соответствии с имеющейся бумажной первичкой.
Потом купить букварь про то, как правильно делать бэкапы и читать его по ролям и с выражением всем ИТ-стадом
3 ДенисЧ
 
22.03.15
19:31
sp_attach_single_file_db уже не помогает?
4 Klesk666
 
22.03.15
19:59
только сегодня сделал по этой инструкции
http://dev.by/lenta/main/vosstanovlenie-bd-v-ms-sql-server-2005
скуль 2005 и база simple
5 gp42
 
22.03.15
20:21
Спасибо за участие сабж работает.
6 gp42
 
22.03.15
20:23
И в первом посте тоже работает, только лог он создавал на том же диске где и файл базы (соответственно каталога для лога не было)