2

問題はこれです:

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 の間の状態のデータベースが必要です。ログ レベルは Full でした。

編集: 既に DBCC LOG(DB-Name, 3) を実行しましたが、ログが切り捨てられているようです。何千もあるはずなのに、10 項目しかありません。

4

3 に答える 3

4

ログを再生するには、常に完全なログから開始し、差分を適用してからログのバックアップを適用します。タイムラインは常に完全バックアップから順方向に進み、逆方向にはなりません。したがって、t0の後の状態に到達する(つまり、削除されたレコードを回復する)には、 t0より前に作成された完全バックアップから開始し、 t0で停止してログバックアップを適用します。

于 2009-07-30T23:58:56.720 に答える
4

理想的な解決策ではありませんが、データベースのバックアップを別のデータベースに復元し、データベースを比較して、必要な変更を手動で行うことができます。

もう 1 つの方法は、 ApexSQL Logなどのサードパーティのトランザクション ログ リーダーを使用することです。

于 2013-05-14T11:10:38.000 に答える
3

ランス、

トランザクション ログは、トランザクションを表示するようには設計されていません。それは実際にはそのようなログではありません。さらに、トランザクション ログのバックアップを実行すると、情報がファイルにバックアップされるため、ログ ファイルが切り捨てられます。

また、データベースを完全復旧モデルにすると、データベースの完全バックアップを実行するまで、実際には簡易モードのままになることにも注意してください。したがって、t0 より前にバックアップが作成されていない場合、その状態に戻ることはできません。

ロブ

于 2009-07-31T04:10:30.947 に答える