2

これはテスト環境です。更新クエリをテストするためにいくつかのデータが必要でしたが、誤ってすべての行の列を更新して間違ったデータを取得しました。バックアップを使用してデータを前のインスタンスに復元する必要がありますか、それともトランザクションログに利用できる秘密がありますか?

前もって感謝します。

4

3 に答える 3

5

ある時点まで回復できるトランザクションログと呼ばれる非秘密のトランザクションログがあります。方法は次のとおりです...通常のdbデータである.mdfファイルとは対照的に、ldf拡張子を持つその厄介な小さなファイルはトランザクションログです。

トランザクションログ(ldf)を切り捨てたり、それ以外の方法でいじったりしない限り、探している種類の復元(元に戻す)を正確に実行できるはずです。

于 2010-11-22T19:55:43.980 に答える
2

データベースが完全復旧モードの場合は、このようなサードパーティツールを使用してトランザクションログを読み取るか、DBCCLOGコマンドを使用して自分で読み取ることができます。

dbが完全に回復している場合、大量のデータがトランザクションログに保存されますが、MSがこれに関する公式ドキュメントを磨くことはなく、回復ではなくトランザクションが正しくコミットされていることを確認することが目的であるため、簡単に読み取ることはできません。

ただし、上記のツール(残念ながら有料ツールですが試用版があります)を使用したり、DBCC LOGの結果を自分でデコードしたりするなど、回避策があります。

于 2013-04-25T03:21:01.777 に答える
1

SQLをトランザクションブロックでラップしない限り、トランザクションを開始し、ロールバックし、コミットします。これは、SQLサーバーの危険な点の1つです。Oracleを使用すると、各トランザクションを物理的にコミットする必要があります。これは、はるかに安全です。

于 2010-11-22T20:01:52.933 に答える