変更計画の使用

変更計画は、Cloud Control Database Lifecycle Management Packの新しい機能です。変更計画は、ユーザーがメタデータ変更を選択およびパッケージングして複数のデータベースにデプロイできるようにすることで、既存の変更管理コンポーネントの機能を補完し、拡張します。変更計画では、スキーマの同期化など、既存のDatabase Lifecycle Management Packツールでは十分にサポートされていないデータベース・アプリケーション開発方法がサポートされます。

変更計画は、多様な開発方法をサポートできる柔軟性を備えているだけでなく、以前はカスタム・スクリプトを使用して実行していた多数のデータベース管理タスクを自動化できる強力さも備えています。これらのタスクには、次のものが含まれます。

  • プロジェクト固有の開発の変更を、共有開発データベースから統合、テスト、本番のステージングなどの1つ以上の宛先データベースにデプロイします。

  • スタンドアロンのプロジェクト開発データベースからの開発の変更を、複数の開発データベースから変更を収集する1つの統合データベースにデプロイします。

  • 複数の開発データベースにある共通モジュールを中央の統合データベースからアップグレードします。

変更計画は、Database Lifecycle Management Packの他のツールと緊密に統合されています。具体的には、次のようになります。

  • オブジェクトを作成する変更計画の変更リクエストは、変更管理スキーマ・ベースラインからオブジェクト定義を取得できます。

  • オブジェクトを変更する変更リクエストは、変更管理のスキーマの比較でオブジェクトの内容を使用して、変更を指定できます。

  • 変更計画は、より細やかな変更の制御と変更専用の変更リクエストを可能にし、変更管理のスキーマの同期を補完します。

変更計画の使用について

変更計画を使用してオブジェクト定義を作成または変更する最初のフェーズは、変更内容を計画し、定義することです。たとえば、1つ以上のデータベース内の既存のオブジェクト定義を1つ以上変更します。あるいは、あるスキーマまたはデータベースで、別のスキーマまたはデータベースから1つ以上のオブジェクト定義を再生成します。

図24-1 変更計画のステップ


変更計画の流れ

この図は、変更計画の各ステップを示しています。変更計画は、変更リクエストの名前付きコンテナです。宛先データベースのオブジェクト定義を再生成または変更する変更リクエストを定義できます。宛先データベースは、変更計画の変更リクエストの適用先のデータベースです。変更の計画および定義ができたら、変更の影響を評価します。

特定のデータベースでの変更リクエストの影響を評価するには、変更計画とその宛先データベースに対するスクリプトと影響レポートを生成します。影響レポートには、スクリプトが宛先データベースで実行された場合に行われる変更が示されます。宛先データベースで適用できない変更リクエストも示されます。

宛先データベースで変更計画の変更リクエストを実装するには、宛先データベースでスクリプトを実行します。

変更計画の作成

この項では、変更計画を作成する別の方法について説明します。

次の方法で変更計画を作成できます。

スキーマ比較からの変更計画の作成および適用

この項では、スキーマの比較から変更計画を作成する方法について説明します。

変更計画の作成の前提条件

  • アプリケーション開発者(AD)が次の権限を持つCloud Controlユーザーであることを確認します。
    • 開発データベースおよび本番のステージング・データベース・ターゲットに対する「ターゲットの接続」権限または「任意のターゲットの接続」権限
    • 開発データベースのDBA権限
    • ジョブ・システムの作成権限(リソース権限)
    • 新しい名前付き資格証明の作成(リソース権限)
    • 変更計画に対する「リソースの編集」権限
    • 任意の場所でのコマンドの実行(ターゲット権限)
    • EM_ALL_OPERATOR権限
  • データベース管理者(DBA)が次の権限を持つCloud Controlユーザーであることを確認します。
    • 開発データベースおよび本番のステージング・データベース・ターゲットに対する「ターゲットの接続」権限または「任意のターゲットの接続」権限
    • 開発データベースのDBA権限
    • ジョブ・システムの作成権限(リソース権限)
    • 新しい名前付き資格証明の作成(リソース権限)
    • 変更計画の管理(リソース権限)
    • 任意の場所でのコマンドの実行(ターゲット権限)
    • EM_ALL_OPERATOR権限
  • 開発作業の開始時点では、開発データベースと宛先データベースが同一であることをお薦めします。たとえば、両方のデータベースを現在の製品バージョンにするか、両方のデータベースを共通の仮開発バージョンに更新します。
  • アプリケーション開発者が開発データベースに変更を加えている場合があります。変更計画の作成後、アプリケーション開発者はSQL Developerなどの外部クライアントを使用して、変更計画内の変更アイテムを作成および更新できます。詳細は、「外部クライアントを使用したEnterprise Managerでの変更計画の作成およびアクセス」を参照してください。

変更計画の作成

変更計画を作成するには、次のステップを実行します。

  1. データベース管理者(DBA)としてCloud Controlにログインします。
  2. アプリケーション・オブジェクトを含むスキーマを識別します。
  3. メタデータ・ベースライン・ウィザードを使用して、該当するスキーマを含むベースラインを定義します。最初のバージョンのベースラインを取得するジョブをスケジュールします。
  4. ベースラインを保存します。
  5. スキーマの比較ウィザードを使用して、ベースライン・バージョンと開発データベース間の比較を定義します。
  6. 最初のバージョンの比較を作成するジョブをスケジュールし、比較を保存します。
  7. スキーマ変更計画ページで、「作成」をクリックします。
  8. 変更計画の名前および説明を指定し、「OK」をクリックして変更計画を保存します。

    変更計画の作成
  9. 変更アイテム・ページで、比較から作成をクリックします。
  10. 「スキーマ比較からの変更項目の作成」ページで、以前に作成した比較バージョンを選択し、「比較の割当て」で開発データベースを「変更後」側に、本番のステージング・データベースを「変更前」側に指定して、「OK」をクリックします。

    「スキーマ比較からの変更項目の作成」ページ
  11. スキーマ比較からの変更アイテムの作成: 差分の選択ページで、次を選択します。
    • スキーマ比較のすべての差分: 比較のすべての差分を変更計画に追加する場合に選択します。
    • スキーマ比較の特定の差分: 変更計画に追加する比較の差分を選択する場合に選択します。差分を選択します。
    「終了」をクリックします。
  12. 宛先データベースに変更計画を適用するリクエストを発行します。

変更計画の適用

変更計画を適用するには、次のステップを実行します。
  1. データベース管理者(DBA)としてCloud Controlにログインします。
  2. DBAロールで、変更計画を検証して、指定されたデータベースへの適用に適しているかどうかを評価します。必要に応じて、個々の変更リクエストを削除します。
  3. スキーマ変更計画ページで、変更計画から同期を作成をクリックします。
  4. スキーマの同期ウィザードで、以前に作成した変更計画インスタンスを参照して詳細を指定します。スキーマの同期ウィザードの使用方法の詳細は、本番のステージングとの同期化を参照してください。デフォルトでは、変更から作成された同期はインタラクティブ・モードで機能します。
  5. スクリプト生成をスケジュールします。
  6. 影響レポートをチェックして、スクリプト実行をスケジュールします。
  7. 完了したスクリプト実行ジョブにエラーがないかどうかをチェックします。変更計画ジョブが失敗した場合は、次の手順を実行します。
    • 影響レポートで警告されたエラーが失敗の原因である場合、推奨されたユーザー処理を実行します。
    • 失敗の原因がソースまたは宛先データベースの状態にあり、それが手動で修正可能な場合は、問題を修正してから再び操作を実行します。
    • スクリプトの実行フェーズで失敗した場合、ジョブ詳細でスクリプトの出力を確認します。不足している権限の付与などの処理によって問題を解決できる場合は、問題をデータベースで手動で修正し、「スクリプト実行の再試行」をクリックします。
  8. エラーを修正して、変更計画作成ジョブを再び発行します。

外部クライアントを使用したEnterprise Managerでの変更計画の作成およびアクセス

Enterprise Managerでは、SQL Developerなどの外部クライアントを使用した変更計画の作成およびアクセスがサポートされています。これらのアプリケーションを使用してEnterprise Managerリポジトリに接続し、変更計画を作成して、リポジトリ内で変更アイテムの追加や更新を行うことができます。

クライアント・ユーザーのタイプは次の2つです。

  • すべての変更計画の作成およびアクセスが可能なユーザー

  • 特定の変更計画のアクセス(表示、場合によっては編集)が可能なユーザー

ステップは次のとおりです。

  1. 信頼できるクライアントによるアクセスが可能になるようリポジトリ・データベース・リスナーを構成します。リポジトリ・データベースは、信頼できないクライアントのログインからはアクセスできないようにすることをお薦めします。
  2. 外部クライアントが使用するためのEnterprise Manager管理者を設定します。

次の項では、計画の変更、およびEnterprise Managerと外部クライアントからのアクセスに関する管理者の設定方法を説明します。

変更計画に関するEnterprise Manager管理者の設定

次のステップを実行します。

  1. スーパー管理者としてEnterprise Managerにログインします。
  2. 「設定」メニューから「セキュリティ」をクリックし、「管理者」を選択します。
  3. 管理者ページで、「作成」をクリックします。
  4. 管理者の作成: プロパティ・ページで、ユーザーの「名前」と「パスワード」を指定します。これにより、指定した名前とパスワードのデータベース・ユーザー、およびEnterprise Manager管理者が作成されます。「次」をクリックします。
  5. 管理者の作成: ロール・ページで、「次へ」をクリックします。
  6. 管理者の作成: ターゲット権限ページで、「次へ」をクリックします。
  7. 管理者の作成: リソース権限ページで「変更計画セキュリティ・クラス」を選択し、「権限付与の管理」アイコンをクリックします。
  8. 管理者の作成: 権限の管理ページで、次のステップを実行します。
    • すべての変更計画に対してすべてのアクセス権を持つ管理者を作成する場合は、「リソース・タイプ権限」セクションで「変更計画の管理」を選択します。

    • 1つ以上の変更計画に対して特定のアクセス権を持つ管理者を作成する場合は、「リソース権限」セクションで「追加」を選択します。すでに作成されている変更計画のリストから1つ以上の変更計画を選択し、「選択」をクリックします。選択した計画が「リソース権限」セクションに追加されます。デフォルトでは、管理者には「変更計画の表示」権限が付与されます。これを編集して、「変更計画の編集」権限を付与することができます。

  9. 「続行」をクリックします。
  10. 「管理者の作成: 確認」ページで「終了」をクリックすると、新しい管理者が作成されます。
  11. これらの権限タイプのいずれかを使用して外部クライアントが変更計画にアクセスできるようにするには、次のステップを実行します。
    1. DBA権限を持つユーザーとしてリポジトリ・データベースにログインします。
    2. CHANGE_PLAN_USERデータベース・ロールを、新しい管理者に該当するデータベース・ユーザーに付与します(「スキーマ」Enterprise Manager管理者のユーザー、またはSQL Plusを使用)。

SQL Developerインタフェースからのスキーマ変更計画の発行

開発者がSQL Developerインタフェースを介してスキーマ変更をEnterprise Managerスキーマ変更計画に発行できるようにするには、次の手動の構成ステップを実行します。

  1. リポジトリ管理者が、SQL Developerからのリモート・データベース接続を受け入れるようリポジトリ・データベースを構成してあることを確認します。これは、リポジトリ・リスナー・プロセスを構成することで行うことができます。
  2. OMSでローカル管理者アカウントを作成します。
  3. リポジトリ・データベースでSYSとして次のSQLコマンドを実行し、ローカルOMSアカウント権限のリポジトリ・ユーザーを変更計画ユーザーにします。
    grant CHANGE_PLAN_USER to PUBLIC; 
    

    または

    grant CHANGE_PLAN_USER to <repos_user>; 
    
  4. OMSユーザーのリソース権限を編集し、変更計画を編集するためのアクセス権をユーザーに付与します。