■概要
Toadでは、Log Reader機能でトランザクションログから過去実行したDML/DDL文と実行したDML/DDL文に対するロールバック用SQLを確認することができます。
Log Reader機能を使うと、オペレーションミス等で削除/更新/追加してしまったデータをトランザクションログのデータを用いて実行前の状態に戻すことが可能です。
このTipsでは例として削除してしまったデータを復元する手順を記載します。
■利用可能エディション
Toad for SQL Server Professional Edtion
Toad for SQL Server Xpert Edition
Toad for SQL Server Developer Editoin
■事前準備
Log Readerの機能を使用するためには初回実行前に以下の作業が必要です(2回目以降は不要です)。
1. SQL Server ルートディレクトリを確認します。
(SQL Server Management Studio でサーバーのプロパティから確認できます)
2. 以下フォルダの xp_LogReader.dll をコピーします。
C:\Program Files\Quest Software\Toad for SQL Server\Plugins\SqlServer\LogReader
※SQL Server が 64 bitの場合は、xp_LogReader_x64.dll をコピーします
3. SQL Server ルート\Binn フォルダにペーストします。ファイル名は xp_LogReader.dll にしてください。
4. SQL Server の master データベースで以下コマンドを実行します。
EXEC sp_addextendedproc ‘xp_qlr_version’, ‘xp_LogReader.dll’
EXEC sp_addextendedproc ‘xp_qlr_logfile’, ‘xp_LogReader.dll’
EXEC sp_addextendedproc ‘xp_qlr_loginfo’, ‘xp_LogReader.dll’
EXEC sp_addextendedproc ‘xp_qlr_logread’, ‘xp_LogReader.dll’
5. 以下コマンドでバージョン番号が返ってくれば正しくインストールされています。
EXEC master..xp_qlr_version
■データ生成手順
1) デスクトップ上の『Toad for SQL Server』アイコンをダブルクリックしToad for SQL Serverを起動する。
2) DBへの接続画面が表示されたら、DB接続に必要な情報を入力して『Connect』をクリックすると、
Toad for SQL Serverトップ画面が表示される。
必要な情報
- Server name
- Authentication
- Database
3) Toadトップ画面が表示されたら、メニューから[Tools] – [Administer] – [Log Reader]をクリックする。
4) Welcome to the Read Log Wizard画面 が表示されたら、『Next』をクリックする。
5) Log type画面が表示されたら、読み込むトランザクションログを選択し、『Next』をクリックする。
ここでは、テーブルのDROPが直近行われた処理であり、オンライントランザクションログに格納されているため、
『Online Transaction Log』を選択する。
6) Select database画面が表示されたら、DB接続に必要な情報を入力して『Next』をクリックする。
必要な情報
- SQL Server
- Authentication
- Database
7) Select backup files画面にて、トランザクションログのバックアップファイルを追加することができる。
ここでは、オンライントランザクションログのみでテーブルの復元可能な情報は揃っているため、
そのまま『Next』をクリックする。
8) Completing the Read Log Wizard画面にて、トランザクションログの読み込み結果が表示される。
内容を確認して、『Finish』をクリックする。
9) トランザクションログから過去に実行されたDML/DDLの情報が表示される。
対象のDELETE文を選択(①)すると、タブの下部で実行されたSQL(②)が確認できる。
10) Log Readerタブの上部に表示される『Undo/Redo Wizard』ボタンをクリックする。
11) Welcome to the Undo/Redo Wizard画面にて、 『Next』をクリックする。
12) Select direction画面にて、 “I would like to undo the selected operation” (①)を選択し、『Next』(②)をクリックする。
13) Script verification画面にて、『Next』をクリックする。
14) Run script画面にて、”Run immediately”(①)を選択し、『Next』(②)をクリックする。
15) Completing the Undo/Redo Wizard画面にて、エラーがないことを確認し、『Finish』をクリックする。
16) Log Readerタブにて、新たにINSERT文(①)が実行されたことが確認できる。
追加されたINSERT文を選択するとタブの下方で実際に実行されたSQL文(②)が確認できる。
17) 対象のテーブルのデータを見てみるとINSERT文が実行されて、DELETEが実行される前の状態に戻っていることが確認できる。
Log Readerによるテーブルデータをトランザクションが実行される前の状態に戻す手順は以上です。
以下のTipsもあわせてご活用ください。
- SQL Server Management Studio(SSMS)とToadの連携
- SQLを自動チューニングできるSQL Optimizer 利用手順
- Spotlight on SQL ServerでT-SQLを監視する方法
Toadは30日間、フル機能で無償トライアルも可能です。
Toadに少しでも興味を持っていただけたなら、是非次のページもご参照ください。
・トライアルのご依頼はこちら
・Spotligh概要ページはこちら
・Spotlight on Oracle機能紹介ページはこちら
・Spotlight on SQL Server機能紹介ページはこちら
・Toad概要ページはこちら
・Toad for Oracle機能紹介ページはこちら
・Toad for SQL Server機能紹介ページはこちら
・Toadの製品紹介資料ダウンロードはこちら