データベースの変更管理の概要

エンタープライズ・アプリケーションのライフサイクルを管理するには、開発、ステージング、本番およびテストなどの様々な目的のためにアプリケーション・データベースのコピーを複数保持する必要があります。これらの各データベースは、それぞれのプロセスに合せる必要があります。たとえば、本番データベースの場合、適切な本番用コントロール・プロシージャに必ず従う必要があります。管理者は、非認証の変更(必要な変更の承認なしで索引が削除されるなど)を検出する手段を持っている必要があります。そのような場合、本番データベースへの変更を毎日または毎週モニタリングすることが重要になります。

ライフサイクル管理のもう1つの重要な側面は、データベース・コンプライアンス(すべてのデータベースを基準となる構成に準拠させること)です。組織の標準またはベスト・プラクティスに準拠することで、データベースの効率性、メンテナンス性および運用の容易性が保証されます。

開発データベースの場合、開発者が変更を加えますが、その変更はデータベース管理者がステージング・データベースまたはテスト・データベースに統合および伝播する必要があります。その目的は、開発環境に加えられた変更を識別し、本番データベースにすでに存在する他の変更を考慮しながら、ステージング・データベースまたはテスト・データベースに同じ変更を加えることです。

通常、ほとんどのアプリケーションは、時間の経過とともにアップグレードされます。また、ほとんどのアプリケーションは、要件に合うようにビジネス・ユーザーによってカスタマイズされます。アプリケーションのカスタマイズは、通常、アプリケーション・ベンダーにより提供されるデータベース・オブジェクトまたはPL/SQLモジュールに依存します。アップグレード・スクリプトはアプリケーション・ベンダーから提供されるため、顧客はアップグレード手順が独自のカスタマイズ内容にどの程度影響するかについてほとんどわかりません。顧客は、アップグレード・データベースをテストする場合、アップグレードの前後にアプリケーション・スキーマのベースラインを取得できます。前後のベースラインを比較することで、アプリケーションにより変更されたモジュールがわかります。これにより、アプリケーションをアップグレードした結果としてカスタマイズ内容が受ける影響の程度をより正確に把握できます。

開発者およびデータベース管理者がデータベース環境の変更を管理できる変更管理の主な機能は次のとおりです。

  • スキーマ・ベースライン—ある時点におけるデータベースおよび関連データベース・オブジェクトの定義

  • スキーマ比較—ベースライン(またはデータベース)と他のベースライン(またはデータベース)間の相違の完全なリスト

  • スキーマ同期化—ベースラインのデータベース定義取得から(またはデータベースから)ターゲット・データベースに変更を移行するプロセス

  • スキーマ変更計画—特定の変更を開発環境から1つ以上のターゲット・データベースにデプロイする方法。

  • データの比較—2つのデータベース間の行データの相違のリスト。

データベースのバージョン9.x以上では、Cloud Controlを通じてデータベース・ターゲットにログインするユーザーは、データベースの取得または比較のためにSELECT ANY DICTIONARY権限およびSELECT_CATALOG_ROLEロールを保持している必要があります。スキーマの同期を実行するには、宛先データベースにログインしているユーザーにSYSDBA権限が必要です。変更計画の作成または削除を行うには、Cloud Controlユーザーは「変更計画の管理」リソース権限、EM_ALL_OPERATOR権限、ターゲットに対するVIEWおよびCONNECT権限、ジョブ・システムに対するリソースの作成権限および新規名前付き資格証明の作成リソース権限を保持している必要があります。ユーザーに、特定の変更計画に対する「表示」権限と「編集」権限を付与することもできます。

データ比較ジョブを発行する場合、参照データベースと候補データベースに対して指定されている資格証明のユーザーは、それぞれ参照オブジェクトと候補オブジェクトに対するSELECT権限を保持している必要があります。また、ユーザーには、SELECT ANY DICTIONARY、SELECT_CATALOG_ROLEおよびCREATE VIEWの各権限も必要です。LOB型の列が含まれるオブジェクトを比較する場合、実際の列値ではなく、列の暗号化ハッシュ値が比較されるため、ユーザーにSYS.DBMS_CRYPTOパッケージに対するEXECUTE権限が付与される必要があります。タイムスタンプまたはシステム変更番号(SCN)に基づいて比較を行うよう指定する場合、各データベース内の参照オブジェクトと候補オブジェクトに対するFLASHBACK権限もユーザーに直接付与されている必要があります。

また、参照データベース資格証明として指定されている資格証明のユーザーは、DBMS_COMPARISONプログラムに対するEXECUTE権限を持つDBAである必要があります。参照データベースと候補データベースが異なる場合、CREATE DATABASE LINK権限も必要です。

データベース・リンク、比較定義およびビューが、データ比較ジョブによって参照データベースに作成されることがあります。ビューが候補データベースに作成される場合があります。比較処理時に作成されるこれらのオブジェクトは、削除時に削除をスキップするオプションを指定しないかぎり、比較が削除されると削除されます。

SYSの資格証明はデータベース・リンク越しに使用できないため、リモート候補データベースにSYSとして接続してデータの比較を実行することはできません。