テスト DB に突然行がありません。私たちは彼らを取り戻したい。
今日データベースに起こったことをすべてふるいにかける方法はありますか? 各 SQL ステートメント? この種のものはトランザクションログにあると思いますが、それを表示する方法がわかりません。
削除操作を元に戻す方法はありますか?
ところで: はい、バックアップはありますが、削除の原因も見つけたいと思います...
テスト DB に突然行がありません。私たちは彼らを取り戻したい。
今日データベースに起こったことをすべてふるいにかける方法はありますか? 各 SQL ステートメント? この種のものはトランザクションログにあると思いますが、それを表示する方法がわかりません。
削除操作を元に戻す方法はありますか?
ところで: はい、バックアップはありますが、削除の原因も見つけたいと思います...
[遅い答えですが、うまくいけば便利です]
トランザクションログを使用して削除された行を回復する方法がありますが、サードパーティのツールを使用し、データベースのみが完全回復モードになっている場合に限ります。
デル(以前のQuest)にはToad for SQL Serverがあり、ApexSQLにはApexSQLLogとApexSQLRecoverがあり、t-logを読み取ってデータを回復することもできます。残念ながら、RedGateからのLogRescueは、SQLServer2000のログのみを読み取ることができます。
文書化されていないdbcclogコマンドを使用してt-logを読み取る方法もあります。詳細については、こちらをご覧ください。
すでにデータベースのバックアップがあることを考慮して、これらを別のデータベースに復元し、市場に存在する多くのデータ比較ツールの1つを使用して、不足しているデータを本番データベースに挿入できます。もちろん、これはバックアップを作成する前にデータの削除を回復することしかできません。
Red Gate の料金を支払うのではなく、無料バージョンの ChronicDB を試してみます。
Red Gateの一部のツールでこれを行うことができますが、コストがかかります。SQL Log Rescueを見てください。
そうしないと、復元を実行したくなります。
これを行うには、サードパーティのツールが必要です。ツールは、何が起こったかを確認できるように、トランザクション ログに移動してログ エントリを表示できる必要があります。私はこれらのツールを使用したことがありませんが、手始めに Red Gate の SQL Log Rescue を試してみます。試してみる:
Rollback
SQL Server のコマンドを使用して、トランザクションを元に戻すことができます。ただし、トランザクションがトランザクション内で実行された場合、トランザクションをロールバックできることを知っておく必要がありますBegin
。