Мы используем SQL 2005 Express Edition. Мы хотим прочитать данные из файла LDF, чтобы восстановить некоторые удаленные записи.
Мы попытались использовать пробную версию ApexSQL, которая нам очень помогла. Вместо того, чтобы искать стороннее программное обеспечение, мы пытаемся понять, как читать файл журнала самостоятельно.
Как мы можем прочитать и восстановить данные из файла LDF?
Ответы:
Вам потребуется предыдущая полная резервная копия и все резервные копии журналов, сделанные с момента последней полной резервной копии
1) Возьмите хвост резервного копирования журнала
2) Найти транзакцию для удаленных записей (операция будет LOP_DELETE_ROWS для DELETE и LOP_SET_BITS & LOP_MODIFY_ROW для TRUNCATE TABLE)
3) Восстановить предыдущее полное резервное копирование и создать резервные копии журналов, а также хвост новой базы данных WITH NORECOVERY и STOPAT = 'Перед началом времени для транзакции'
Этот блог разместить обложки более подробно находя время STOPAT с помощью fn_dblog. Этот пост в блоге посвящен восстановлению данных непосредственно из журнала, но это может занять очень много времени по сравнению с моментом восстановления.
Также в этом блоге Роберта Л. Дэвиса есть пример объединения STOP и STANDBY, чтобы вы могли запрашивать состояние баз данных в разные моменты времени.
источник