OBをトコトン極める

Oracle バックアップを取ったスキーマと比較する

  • 2017.12.05
  • 株式会社システムインテグレータ
Oracle バックアップを取ったスキーマと比較する

2つのデータベース環境の差分をみて作業をする。意外とこのケースは有るかと思います。

データベースを使用するアプリケーション開発を行う際、スキーマを全てコピーしてそれをバックアップ環境として運用する場合があります。問題が発生した際にオブジェクトの内容を比較してバックアップ環境から開発環境へリストアします。

また、テスト環境と本番環境を分けて開発することも多いです。しかし、管理が甘いと本番環境に載せていないプログラムがあり、エラーが発生なんてこともあります。

2つの環境のオブジェクトを簡単に比較してくれるものがあれば、上記の問題を解決できます。しかしSQLでは比較が難しいです。ではどうするか・・・。そんなあなたにSI Object Browserです!!

SI Object Browserでは2つの環境を比較しオブジェクトが存在しているか否か、内容が一致するか否かを確認する画面があります。テーブルやストアドプログラムの管理をしている担当の方は一度この機能で確認してみましょう。

今回はスキーマ間の比較をしていきたいと思います。

comp001.png

オブジェクト比較画面

 

オブジェクト比較を使うには

メイン画面上部のツールバーボタンから開きます。
(メインメニューの[ツール] – [オブジェクト比較]からでも開くことができます。)


comp002.png

オブジェクト比較ボタン

開きましたら赤枠の部分で比較対象の場所を選択します。

初期表示の所有者「(全て)」とは接続しているデータベースの全スキーマを比較対象とするという意味になります。今回はスキーマ間の比較を行いたいと思いますので所有者コンボボックスを比較対象のものに変更します。

comp003.png

オブジェクト比較の初期表示

比較先1、比較先2の所有者(スキーマ)を選択します。

comp004.png

所有者コンボボックス変更

次は[表示するオブジェクトの条件]を選択します。
今回は全てにチェックを入れますが、用途によっては絞り込んだ方が分かりやすいです。

comp005.png

表示するオブジェクトの条件を確認

 

最後にどのオブジェクトを表示するか選択します。
初期表示ではテーブル・ビュー・ストアドプログラムなど、全てを表示します。
比較対象のオブジェクトが決まっている場合は絞り込んだ方が表示までの時間が短縮できます。

comp006.png

表示するオブジェクトの種類を確認

 

全ての設定が終わったら実行します。

comp007.png

実行


比較結果がリストアップされました。
リストの[比較結果]列より、現在、オブジェクトがどちらに存在しているのか、両方の環境に存在している場合は内容が一致しているか否かが、表示されます。
(※内容に関しての比較は定義内容に関してです。テーブルのデータは比較しませんのでご注意ください。)

comp001.png

実行完了

オブジェクトを比較しよう

具体的に何が違うのか確認する場合は対象のオブジェクトを選択してダブルクリックします。
(右クリックメニューの[開く]ボタンでも同様です。)

comp008.png

選択オブジェクトをダブルクリック

比較された2つのオブジェクトの定義情報が開きます。

comp009.png

定義情報を比較

 

いかがだったでしょうか。今回はスキーマ間の比較で話を進めましたが、異なるデータベース間の比較も可能です。本番環境にオブジェクトを移行する際は、是非ご利用ください。

いまさら聞けない Oracleの基本

いまさら聞けない Oracleの基本