Восстановить базу данных только с помощью файла LDF
Прежде всего, я знаю, как глупо не иметь никакой резервной копии. Я не могу с этим поделать, но я должен (попытаться) решить это.
У меня есть файл журнала транзакций (LDF) из базы данных SQL Server 2000, который содержит все транзакции с момента создания базы данных. Усечения не было сделано. Файл MDF пропал. Вероятно, из-за сбоя диска. Резервной копии нет. Не из исходной базы данных и не из журнала транзакций.
Я попытался связать журнал транзакций с новой чистой базой данных. Но (конечно), что не удалось, потому что SQL Server проверяет подлинность обоих файлов. Я читал о программном обеспечении, которое может читать журнал транзакций. ApexSQL, кажется, делает это. Я пытался установить пробную версию, но она выдает странные ошибки при попытке запуска программы.
Кто-нибудь знает решение для меня? Может содержать стороннее программное обеспечение, но я предпочитаю чистое решение SQL Server.
2 ответа
Так как же ушел МДФ? Диск данных был поврежден или вышел из строя?
Помимо использования стороннего инструмента, у вас не так много вариантов.
Единственное, о чем я могу думать, это присоединить LDF к фиктивной базе данных, а затем взять хвост резервной копии журнала. Но даже тогда он вам ничего не купит.
Вот основной процесс:
create database MyDatabase
go
-- run a full backup, this can be disgarded
alter database MyDatabase
set offline
go
-- go delete the mdf and ldf
alter database MyDatabase
set online
go
backup log MyDatabase
to disk = 'C:\SQL Backups\MyDatabase-tail.trn'
with no_truncate
go
Теперь у вас есть резервная копия журнала вашего файла LDF, но я не уверен, что вы можете сделать с этим оттуда.
Может быть, искать продукт, который позволяет читать файл резервной копии...
Удачи!
Это невозможно. В файле PDF есть изменения с конкретными номерами транзакций.
Даже если вы создаете совершенно новую базу данных, ТОЧНО такую же, как и в оригинале, номера транзакций в новой базе данных не будут связаны с номерами транзакций в файле ldf.
Восстановить можно только с помощью файла mdf. Связанное сообщение StackOverflow
Create database dbname
On
(
Filename= 'path where you copied files'
)
For attach;
Есть некоторые инструменты и консалтинговые фирмы, которые утверждают, что могут это сделать, возможно, они могут восстановить некоторые или даже все ваши данные. Но это невозможно сделать, используя стандартные инструменты и опыт.