プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70107-04
目次へ移動
目次

前
次

D.3 DDLオブジェクトのインストール

次の手順に従って、Oracle GoldenGate DDLキャプチャをサポートするデータベース・オブジェクトをインストールします。

注意:

Active Data Guard環境で、Extractをクラシック・モードで使用してキャプチャする場合、DDLオブジェクトがスタンバイではなくソース・データベースにインストールされている必要があります。

  1. Oracle GoldenGate DDLオブジェクトを含めるスキーマを選択します。このスキーマは大文字と小文字を区別しません。
  2. Oracle GoldenGateスキーマに次の権限を付与します。
    GRANT EXECUTE ON utl_file TO schema;
    
  3. Oracle GoldenGate DDLスキーマに対するデフォルト表領域を作成します。この表領域は、DDLスキーマ専用である必要があります。他のスキーマと共有できません。
  4. DDL表領域に対してAUTOEXTENDONに設定し、そのサイズをGGS_DDL_HIST表およびGGS_MARKER表の拡張に対応できるサイズに設定する必要があります。特に、GGS_DDL_HIST表はDDLアクティビティ全体に比例して増加します。
  5. (オプション)DDL表領域が一杯になった場合にユーザーDDLアクティビティが失敗するようにするには、params.sqlスクリプトを編集してddl_fire_error_in_triggerパラメータをTRUEに設定します。DDL表領域が一杯になった場合、ExtractはDDLをキャプチャできないため、DDLを停止することで表領域のサイズを拡張する時間ができ、DDLキャプチャが失われることを防ぎます。ただし、表領域のサイズをこのように管理する場合、ビジネスの混乱を防ぐためにビジネス・アプリケーションとExtractを絶えず監視する必要があります。ベスト・プラクティスは、まず第一に表領域を適切なサイズに設定し、表領域が一杯にならないようにAUTOEXTENDONに設定することです。

    警告:

    編集する前にparams.sqlスクリプトのバックアップをとり、元の状態を保持してください。

  6. GLOBALSファイルを作成します(あるいは、既存のものを編集します)。
    EDIT PARAMS ./GLOBALS

    注意:

    EDIT PARAMSで、単純なテキスト・ファイルが作成されます。EDIT PARAMS後にファイルを保存すると、Oracle GoldenGateディレクトリのルートに拡張子なしのGLOBALS(大文字)という名前で保存されます。ファイルの名前や場所を変更しないでください。

  7. GLOBALSファイルで、次のパラメータをGLOBALSファイルに追加することで、DDLスキーマ名を指定します。
    GGSCHEMA schema_name
    
  8. (オプション)表D-1に示すその他のオブジェクトの名前を変更するには、残りのインストールを進める前に変更する必要があります。そうしない場合、Oracle GoldenGateのDDL処理を停止してDDLオブジェクトを再インストールする必要があります。データベース・オブジェクトのデフォルト名を受け入れることをお薦めします。表D-1に示す名前(スキーマを除く)を変更するには、次のいずれか、または両方を実行します。
    • params.sqlスクリプトにすべての名前の変更を記録します。このスクリプトを編集して適切なパラメータを変更します。このスクリプトを実行しないでください。

    • 表D-2に記載されている名前をGLOBALSファイルにリストします。使用する正しいパラメータは、表の「パラメータ」列に示されます。


      表D-2 DDLオブジェクト名を変更するためのGLOBALSパラメータ

      オブジェクト パラメータ

      マーカー表

      MARKERTABLE new_table_name脚注 1

      履歴表

      DDLTABLE new_table_name


      脚注1

      これらの表の名前は修飾しないでください。これらの表のスキーマ名は、GGSCHEMAで指定されたスキーマ、またはGLOBALSGGSCHEMAを指定していない場合は現在のユーザーのスキーマです。

  9. トリガーベースのDDLレプリケーションでOracleの不可視索引を一意の識別子として認識できるようにするには、params.sqlスクリプトで次のパラメータをTRUEに設定します。
    define allow_invisible_index_keys = 'TRUE' 
    
  10. GLOBALSファイルとparams.sqlファイルを保存して閉じます。
  11. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。
  12. SQL*Plusのセッション、ビジネス・アプリケーションのセッション、Oracle GoldenGateのプロセスのセッションおよびOracleを使用するその他のソフトウェアのセッションなどのすべてのOracleセッションを終了します。新しいセッションの開始を回避します。
  13. SQL*Plusを実行し、SYSDBA権限を持つユーザーでログインします。この権限は、Oracleに必要なSYSスキーマへのDDLトリガーのインストールに必要です。他のすべてのDDLオブジェクトは、手順1で作成したスキーマにインストールされます。
  14. marker_setup.sqlスクリプトを実行します。プロンプトが表示されたらOracle GoldenGateスキーマの名前を入力し、[Enter]を押してスクリプトを実行します。このスクリプトによって、Oracle GoldenGate DDLマーカー・システムのサポートがインストールされます。
    @marker_setup.sql
    
  15. ddl_setup.sqlスクリプトを実行します。手順1で構成したDDLスキーマの名前を指定するよう求められます。(注意: このスキーマの表領域が他のユーザーと共有されている場合、ddl_setup.sqlは失敗します。ただし、デフォルト表領域のAUTOEXTENDONに設定(推奨設定)されていない場合、失敗しません。)
    @ddl_setup.sql
    
  16. role_setup.sqlスクリプトを実行します。プロンプトが表示されたら、DDLスキーマ名を入力します。このスクリプトによって、DDL同期に必要なロールが削除および作成され、Oracle GoldenGate DDLオブジェクトに対するDML権限が付与されます。
    @role_setup.sql
    
  17. 作成されたロール(デフォルト名はGGS_GGSUSER_ROLE)をすべてのOracle GoldenGate Extractのユーザーに付与します。プロセスに異なるユーザー名がある場合、複数の付与が必要になることがあります。
    GRANT role TO user;
    
  18. ddl_enable.sqlスクリプトを実行してDDLトリガーを有効にします。
    @ddl_enable.sql

オプションのパフォーマンス・ツールをインストールして使用する手順

DDLトリガーのパフォーマンスを改善するには、ddl_pinスクリプトをデータベースの起動の一部にします。次のように、Oracle GoldenGateのDDLユーザー名を指定してそれを起動する必要があります。

@ddl_pin DDL_user

このスクリプトによって、トリガーで使用されるPL/SQLパッケージがメモリーにピン留めされます。SQL*Plusからこのスクリプトを実行する場合、Oracle GoldenGateインストール・ディレクトリからSYSDBAとして接続します。このスクリプトはOracleのdmbs_shared_poolシステム・パッケージに依存するため、ddl_pinを使用する前にそのパッケージをインストールしてください。