KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

【SQL Server版】Toadを使った誤削除したテーブルの復元

■概要
 Toadでは、Log Reader機能でトランザクションログから過去実行したDML/DDL文と実行したDML/DDL文に対するロールバック用SQLを確認することができます。
 Log Reader機能を使うと、オペレーションミス等で削除してしまったテーブルについてもトランザクションログのデータを用いて復元することが可能です。

■利用可能エディション
 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を起動する。

図1:Toad for SQL Serverアイコン

 2) DBへの接続画面が表示されたら、DB接続に必要な情報を入力して『Connect』をクリックすると、
   Toad for SQL Serverトップ画面が表示される。
    必要な情報
     - Server name
     - Authentication
     - Database

図2:DB接続情報入力画面
図3:Toad for SQL Serverトップ画面

 3) Toadトップ画面が表示されたら、メニューから[Tools] – [Administer] – [Log Reader]をクリックする。

図4:Log Reader起動

 4) Welcome to the Read Log Wizard画面 が表示されたら、『Next』をクリックする。

図5:Welcome to the Read Log Wizard画面

 5) Log type画面が表示されたら、読み込むトランザクションログを選択し、『Next』をクリックする。
   ここでは、テーブルのDROPが直近行われた処理であり、オンライントランザクションログに格納されているため、
   『 Online Transaction Log』を選択する。

図6:Log type画面

 6) Select database画面が表示されたら、DB接続に必要な情報を入力して『Next』をクリックする。
    必要な情報
     - SQL Server
     - Authentication
     - Database

図7:Select database画面

 7) Select backup files画面にて、トランザクションログのバックアップファイルを追加することができる。
   ここでは、オンライントランザクションログのみでテーブルの復元可能な情報は揃っているため、
  そのまま『Next』をクリックする。

図8:Select backup files画面

 8) Completing the Read Log Wizard画面にて、トランザクションログの読み込み結果が表示される。
   内容を確認して、『Finish』をクリックする。

図9: Completing the Read Log Wizard画面

 9) トランザクションログから過去に実行されたDML/DDLの情報が表示される。

図10:Log Readerタブ

 10) Log Readerタブの上部に表示される『Recover Table Wizard』ボタンをクリックする。

図11:Recover Table Wizard起動

 11) Welcome to the Recover Table Wizard画面にて、 『Next』をクリックする。

図12:Welcome to the Recover Table Wizard画面

 12) Select Table画面にて、 対象のテーブル名 (①)を選択し、『Next』(②)をクリックする。

図13:Select Table画面

 13) Completing the Recover Table Wizard画面にて、結果(①)を確認し、『Finish』(②)をクリックする。

図14:Completing the Recover Table Wizard画面

 14) Log Readerタブにて、新たにCREATE TABLE文(①)が実行されたことが確認できる。
   追加されたCREATE TABLE文を選択するとタブの下方で実際に実行されたSQL文(②)が確認できる。

図15:実行されたSQLの確認

 15) 復元されたテーブルのデータを見てみるとDROP TABLEにより削除される直前のデータまで復旧していることが確認できる。

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の製品紹介資料ダウンロードはこちら