DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Oracle複数環境でのテーブル、パッケージ比較

環境/言語:[Oracle]
分類:[その他]

Oracleで、複数スキーマ、または複数インスタンス、複数サーバに
同じような環境を構築されている方は多いと思います。

その際、全ての環境で整合性を取るために、みなさんはどのようにして
各環境の比較を行っていますか?

いつも確実に合わせる方法がなく、管理が大変でして・・・


最低限、テーブル、インデックス、トリガー、パッケージなどの
オブジェクトレベルでの比較ができればと思っています。

可能であれば、ロール、システム権限、オブジェクト権限を含めた
スキーマレベルでの比較ができればと思っています。

みなさんの管理方法や、管理ソフトなどのツールなど教えて頂ければと
思っています。

宜しくお願い致します。
DBリンクみたいなのなかったでしたっけ?
それを使ったトリガーとかがあったような気がします。

必要であれば、複数のDB完了毎に、ほかのDBに見せる為の
Viewとかも作ってたりも昔しました。

見当違いな事を言っていたらすいません。
■No22237に返信(じゅでさんの記事)
> DBリンクみたいなのなかったでしたっけ?
> それを使ったトリガーとかがあったような気がします。
>
> 必要であれば、複数のDB完了毎に、ほかのDBに見せる為の
> Viewとかも作ってたりも昔しました。
>
> 見当違いな事を言っていたらすいません。

恐らく勘違いをされておられるかと(^^;


例えば、開発環境と、本番環境のテーブル定義は同じだよね?
異なる場合は、どのテーブルのどこが異なっているかDiffしたいと
いったような感じで伝わるでしょうか?

開発環境も、用途に応じて、複数構築していたり、またソースの反映タイミングも
環境ごとに異なってくるため、全ての環境で整合性が取れているかの確認を
随時行っていきたいといった感じです。
■No22238に返信(celestiaさんの記事)
>
> 恐らく勘違いをされておられるかと(^^;
>
>
> 例えば、開発環境と、本番環境のテーブル定義は同じだよね?
> 異なる場合は、どのテーブルのどこが異なっているかDiffしたいと
> いったような感じで伝わるでしょうか?
>
> 開発環境も、用途に応じて、複数構築していたり、またソースの反映タイミングも
> 環境ごとに異なってくるため、全ての環境で整合性が取れているかの確認を
> 随時行っていきたいといった感じです。

すごく納得です。
申し訳ないです。

ちなみに、自分だと、DB定義書から、最新版DBのテーブルは起こしなおします。
その後、最新版のDB定義を使用したテーブルを作成しなおします。

そして、それを開発環境にもっていきますが、本番環境との違いについては、
1ファイル1テーブル定義とするなどしてDiffをとっています。
各定義変更によるDiffの結果を毎回差分として更新対象にしています。

トリガーなどについても同様ですね。
定義から差分を起こしておきます。

ただ、パッケージ、ロール、システム権限、オブジェクト権限については・・・orz

各ユーザ単位で、環境が違い、ソースのリリースタイミングが違うのであれば、
各ユーザ単位で、上に書いてあるようなDiffの差分を毎回リリースバージョンに
紐付けて管理するしかないような気がしないでもないです。

一部システム情報であれば、
{CREATE | ALTER} USER ... QUOTA サイズ ON 表領域名;
とか言うのを手書きで設定しておいて差分をとるというても・・・すいませんorz
現実的じゃない気がします。

やはりテーブルやViewやトリガーなどしか管理してないですね。

DOBON.NET | プログラミング道 | プログラミング掲示板