2009-07-30 2 views
2

Проблема заключается в следующем:Просмотреть все журналы транзакций в SQL Server 2008

t0: Insert is made into my database 
t1: Delete is executed 
t2: Full backup is made 
t3: Transaction log backup is made 

Как я могу восстановить удаленные записи после t3 (который сейчас)? Я хочу, чтобы база данных находилась в состоянии между t0 и t1. Уровень журнала был заполнен.

Редактирование: Я уже запускал DBCC LOG (DB-Name, 3), но журнал, похоже, усечен. Есть только 10 предметов, хотя должны быть тысячи.

ответ

4

Для воспроизведения журнала вы всегда начинаете с полного журнала, применяете дифференциалы, а затем резервные копии журнала. Строка времени всегда переходите от полной резервной копии, а не назад. Итак, чтобы перейти в состояние после t0 (т. Е. Восстановить удаленную запись), вы начинаете с полной резервной копии, которая была сделана , до t0, а затем применяйте резервные копии журнала с остановкой при t0.

+0

Могу ли я также просмотреть все действия, которые произошли между t0 и t1? – usr

+1

Чтобы просмотреть активность, которая произошла между t0 и t1, вы остановите восстановление журнала в момент t1. См. Http://msdn.microsoft.com/en-us/library/ms179451.aspx –

3

Lance,

журнала транзакций не предназначен для просмотра транзакций. Это не такой журнал. Кроме того, когда вы делали резервную копию журнала транзакций, это могло бы усечь файл журнала, поскольку информация была скопирована в файл.

Также стоит упомянуть, что когда вы помещаете базу данных в модель полного восстановления, она фактически остается в простом режиме, пока вы не выполните полную резервную копию базы данных. Поэтому, если резервная копия не была сделана до t0, вы не сможете вернуться в это состояние.

Роб

4

Хотя не является идеальным решением, которое вы можете попробовать восстановить резервную копию базы данных в отдельную базу данных, сравнивать базы данных и сделать необходимые изменения вручную.

Другой способ - использовать сторонний регистратор транзакций транзакций, такой как ApexSQL Log.