マルチテナント・コンテナ・データベースのフラッシュ順序
sequence.sqlスクリプトがデータベースのGoldenGate管理スキーマにデータベース・プロシージャを適用する場合、Oracle GoldenGate内でのみFLUSH SEQUENCEコマンドを使用できます。
FLUSH SEQUENCEコマンドは、初期同期化中または再同期化中に最初にExtractを起動した直後に使用します。このコマンドは、Extractがトランザクション・データの取得を開始した時点で初期REDOレコードが使用できるように、Oracle順序を更新します。通常は、現在のキャッシュが使い果されるまで、REDOは生成されません。フラッシュは、ターゲット・システムで正しい順序値に同期するために使用する初期の開始位置を、Replicatに提供します。それ以降は、Extractは、順序値の通常のキャッシュ予約に関連付けられたREDOを使用できます。
-
FLUSH SEQUENCEは、次のOracleプロシージャを使用します。データベース プロシージャ ユーザーおよび権限 ソース
updateSequenceOracle GoldenGate DDLオブジェクトの所有者、またはDDLサポートを使用しない場合は他の選択したユーザーに、
EXECUTEを付与します。ターゲット
replicateSequenceOracle GoldenGate Replicatユーザーに
EXECUTEを付与します。sequence.sqlスクリプトによって、これらのプロシージャはインストールされます。通常、このスクリプトはOracle GoldenGateのインストール・プロセスの一部として実行されますが、FLUSH SEQUENCEを使用する前に、これが実行されたことを確認してください。sequence.sqlが実行されていないと、フラッシュは失敗し、次に示すようなエラー・メッセージが生成されます。Cannot flush sequence {0}. Refer to the Oracle GoldenGate for Oracle documentation for instructions on how to set up and run the sequence.sql script. Error {1}. -
GLOBALSファイルには、プロシージャをインストールするスキーマを指定するGGSCHEMAパラメータが含まれている必要があります。このユーザーは、CONNECT、RESOURCEおよびDBA権限を持っている必要があります。 -
FLUSH SEQUENCEを使用する前に、updateSequenceプロシージャでEXECUTE権限を持つデータベース・ユーザーとして、DBLOGINコマンドを発行します。マルチテナント・コンテナ・データベースにログインしている場合、フラッシュされるシーケンスを含むプラガブル・データベースにログインします。
順序レプリケーションが必要な各PDBでOracle GoldenGateユーザーを作成するには、PDBレベルでFLUSH SEQUENCEを発行する必要があります。DBLOGINを使用してそのPDBにログインし、FLUSH SEQUENCEコマンドを実行します。
各PDBで同じスキーマを使用して、スキーマがGGSCHEMA GLOBALSパラメータ・ファイルで動作するようにすることをお薦めします。
次の例では、環境設定はOracle 21cからOracle 21cへのレプリケーション用で、統合Extract、およびOracle GoldenGate 21c (21.3.0)を使用するパラレルReplicatを使用します。
| ソースCDB | ターゲットCDB |
|---|---|
|
|
SOUTH |
|
PDB名: |
PDB名: |
|
共通ユーザー: 順序のPDBユーザー: |
PDBユーザー: |
sqlplus / as sysdba
ALTER SESSION SESSION SET CONTAINER=CERTMISSN;
CREATE USER ggate IDENTIFIED BY password DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS CONTAINER=CURRENT;
@sequence.sqlを実行しますsqlplus / as sysdba
ALTER SESSION SET CONTAINER=DBEAST;
@sequence.sqlGGADMIN GLOBALS
GGSCHEMA GGADMIN
FLUSH SEQUENCEコマンドを実行します:DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
FLUSH SEQUENCE DBEAST.HR.*
sqlplus / as sysdba
ALTER SESSION SET CONTAINER =PDBWEST;
@sequence.sqlプロンプトが表示されたら、PDBユーザー名ggadminを入力します。
これは、キャプチャ元の各PDBでも実行する必要がある@sequence.sqlスクリプトにも適用されます。