KNOWLEDGE

コーソルの技術情報

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

【Oracle版】移行時のデータ比較工数を削減するテーブルデータ比較・修正手順

■概要
 Toadを使うと、同一DB内、異なるDB内に保持するオブジェクトのレコード比較を簡単に行えます。
 システムリプレイスに伴うデータ移行、テストデータをコピーした際など、移行元と移行先のオブジェクト内レコード比較を
 行いたいシーンはよくあります。
 SQL文でもMINUS演算子を使うことで比較ができますが、ToadのCompare Dataを使うと誰でも簡単に
 異なるデータベースのテーブルやビュー、マテリアライズドビューのレコード比較が行えます。
 本機能に加え、データベース比較を行うCompare Databases、スキーマ比較を行うCompare Schemasを合わせて使うことで、
 システム移行時の差分チェック、検出を短時間、かつ正確に実施できます。
 是非、システム移行の効率化手段として、Toadのデータベース比較、スキーマ比較、データ比較機能を活用ください。

■利用可能エディション
 すべてのエディションで利用可能

■比較・修正手順
 1) デスクトップ上の『Toad for Oracle』アイコンをダブルクリックしToad for Oracleを起動する。

図1:Toad for Oracleアイコン

 2) DBへの接続画面が表示されたら、DB接続に必要な情報を入力して『Connect』をクリックすると、
   Toad for Oracleトップ画面が表示される。
    必要な情報
     - DBユーザ名
     - DBユーザパスワード
     - DBへの接続識別子

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

 3) Toadトップ画面が表示されたら、[Database]-[Compare]-[Data]をクリックする。

図4:Comare Data起動

 4) Compare Data画面が表示されたら、下記入力項目を設定し、『Next』をクリック(⑪)する。
   ※異なるデータベース間のオブジェクト内レコード比較を行う場合、比較対象のテーブルに主キー必須
   ※マスターとなるデータ側をソースとして指定すること
     ①ソース側DB接続を指定
     ②ソース側のオブジェクトタイプ(Table/View/Materialized View)を指定
     ③ソース側のオブジェクト所有者を指定
     ④ソース側の該当オブジェクトを指定
     ⑤ソース側の条件を絞って比較したい場合の条件を入力
      例) Where col1 < 200  ※Where条件の最後に ; を書かないこと
     ⑥ターゲット側DB接続を指定
     ⑦ターゲット側のオブジェクトタイプ(Table/View/Materialized View)を指定
     ⑧ターゲット側のオブジェクト所有者を指定
     ⑨ターゲット側の該当オブジェクトを指定
     ⑩ターゲット側の条件を絞って比較したい場合の条件を入力
   例では別DBのSCOTTユーザ配下のTEST01オブジェクトの比較を行う。

図5:対象オブジェクト選択画面

 5) Select Columns画面が表示されたら、比較したい列を限定したい場合には、列名左のチェックを外し、
  『Compare』をクリック(①)する。
   全列の比較を行う場合には、何も変更せず、『Compare』をクリック(①)する。

図6:対象列選択画面

 6) レコード比較が完了すると、Row Counts画面が表示される。
   この画面では、ソース側オブジェクトとターゲット側オブジェクトのレコード数が表示されるため、
   レコード数が一致しているかを確認する。
   例では、ソース側テーブルが1レコード多いことが確認できる。
   レコード件数確認が完了したら、『Source Only』をクリック(①)し、情報を確認する。

図7:比較結果 -レコード件数-

 7) Source Only画面では、ソース側オブジェクトだけに存在するレコードがあった場合に情報が表示される(①)。
   例では、ソース側テーブルにだけ存在する1レコードが表示されている。
   確認ができたら、『Differences』をクリック(②)し、情報を確認する。

図8:比較結果 -Source Only-

 8) Differences画面では、データに違いがあるレコードが表示される。
   ソース側と比べて違いのあるターゲット側データが黄色網掛けで表示(①)される。
   例では以下に差分が発生している。
     COL1=100のCOL2列、COL1=2000のCOL3列、COL1=4000のCOL2列、COL1=5000のCOL2列、
     COL1=7777のCOL3列、COL1=9999のCOL3列
   一通りデータ差分が確認できたら、必要に応じて差分修正を行う。
   データの差分を修正する場合、『Sync』をクリック(②)することで、ターゲット側データをソース側に合わせる形で修正できる。
   『Sync』をクリック後、”Information”が表示されたら、『Commit』をクリックし、修正を確定させる。

図9:比較結果 -レコード差分-

 9) 差分修正完了後、再度、『Compare』をクリックし、レコード比較を行う。
   比較結果で差分が無いことを確認(①)したら、『Close』をクリックして終了する。
   以上で、テーブルデータ比較・修正が完了となる。

図10:再比較結果

テーブルデータ比較・修正手順は以上です。

データ移行で本機能を活用される場合、次の確認もできますで合わせてご確認ください。
 - 移行元・移行先のデータベース比較・修正ができるCompare Databases
 - 移行元・移行先のスキーマ比較・修正ができるCompare Schemas
 - テーブルデータの重複検出・修正ができるData Duplicates
 - 誰でも簡単にできるデータポンプエクスポート(expdp)
 - 誰でも簡単にできるデータポンプインポート(impdp)
 - 任意のオブジェクトDDLを簡単に抽出できるExport DDL

Toadは30日間、フル機能で無償トライアルも可能です。
Toadに少しでも興味を持っていただけたなら、是非次のページもご参照ください。
 ・トライアルのご依頼はこちら
 ・Spotligh概要ページはこちら
 ・Spotlight on Oracle機能紹介ページはこちら
 ・Spotlight on SQL Server機能紹介ページはこちら
 ・Toad概要ページはこちら
 ・Toad for Oracle機能紹介ページはこちら
 ・Toad for SQL Server機能紹介ページはこちら
 ・Toadの製品紹介資料ダウンロードはこちら