データベース・オブジェクト名の修飾
オブジェクト名はパラメータ・ファイルで完全修飾されている必要があります。つまり、Oracle GoldenGateのパラメータ構文への入力で指定する名前だけでなく、すべての名前(SQLEXEC
入力として指定するSQLプロシージャまたは問合せ内の名前や、ユーザー・イグジット入力の名前の他、パラメータ・ファイルに入力するその他すべての名前)の指定が修飾されている必要があります。
Oracle GoldenGateでは、データベースに応じて、2つの部分からなるオブジェクト名と3つの部分からなるオブジェクト名がサポートされています。
2つの部分からなる名前
ほとんどのデータベースでは、2つの部分からなる名前のみを次の形式で指定する必要があります。
owner.object
例: HR.EMP
説明:
owner
は、スキーマまたはデータベースです(データベース・オブジェクトを格納する論理ネームスペースの定義方法によって異なる)。object
は、表またはその他のサポートされるデータベース・オブジェクトです。
Oracle GoldenGateで2つの部分からなる名前がサポートされるデータベースと、それぞれの適切なネーミング規則を次に示します。
-
Db2 for i:
schema.object
およびlibrary/file(member)
-
Db2 LUW:
schema.object
-
z/OS上のDB2:
schema.object
-
MySQL:
database.object
-
Oracle Database (CDB以外のデータベース):
schema.object
-
SQL Server:
schema.object
-
Teradata:
database.object
3つの部分からなる名前
Oracle GoldenGateでは、ダウンストリームExtractを使用する場合のみ、Oracleコンテナ・データベースに対して3つの部分からなる名前がサポートされます。ただし、Oracle GoldenGateでは、通常、Oracleデータベース用のPDBごとのExtractのみがサポートされます。
ソースOracleコンテナ・データベースから取得する場合には、3つの部分からなる名前が必要です(1つのExtractグループが複数のコンテナから取得する可能性があるため)。したがって、ExtractのTABLE
文では、各オブジェクトまたは複数のオブジェクトに対して、コンテナ名とスキーマ名を指定する必要があります。
3つの部分からなるOracle CDB名は次のように指定します。
container.schema.object
例: PDBEAST.HR.EMP
複数のコンテナまたはカタログからのデータの適用
複数のソース・コンテナまたはカタログから取得したデータをターゲットOracleコンテナ・データベースに適用するには、3つおよび2つの部分からなる名前の両方が必要です。MAP
文のMAP
部分では、各ソース・オブジェクトがコンテナまたはカタログに関連付けられている必要があります(TABLE
文の場合と同様)。これにより、ユーザー(およびReplicat)は、複数のソース・コンテナまたはカタログから適切なターゲット・オブジェクトにデータを正しくマップできます。一方、MAP
文のTARGET
部分で必要なのは、2つの部分からなる名前のみです。これは、Replicatが同時に接続可能なターゲット・コンテナまたはカタログは1つのみなので、schema.owner
という修飾子で十分だからです。複数のターゲット・コンテナまたはカタログに対応するには、複数のReplicatグループが必要です。ターゲット・コンテナまたはカタログは、TARGETDB
パラメータで指定します。
デフォルトのコンテナまたはカタログの指定
パラメータ・ファイルでSOURCECATALOG
パラメータを使用すると、それ以降のTABLE
、MAP
(またはOracle SEQUENCE
)の各指定に対して、デフォルトのカタログを指定できます。
次の例は、SOURCECATALOG
を使用して、region
およびjobs
オブジェクトにpdbeast
というデフォルトのOracle PDBを指定し、appraisal
オブジェクトにpdbwest
というデフォルトのPDBを指定する方法を示しています。pdbeast
のオブジェクトは3つの部分からなる完全修飾名で指定されているため、デフォルトのカタログを指定する必要はありません。
TABLE pdbeast.hr.emp*;
SOURCECATALOG pdbeast
TABLE region.country*;
TABLE jobs.desg*;
SOURCECATALOG pdbwest
TABLE appraisal.sal*;