データベース・オブジェクト名の修飾
オブジェクト名はパラメータ・ファイルで完全修飾されている必要があります。つまり、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 AI Database (非CDBデータベース): schema.object
-
SQL Server: schema.object
-
Teradata: database.object
3つの部分からなる名前
Oracle GoldenGateでは、ダウンストリームExtractを使用する場合のみ、Oracleコンテナ・データベースに対して3つの部分からなる名前がサポートされます。ただし、Oracle GoldenGateでは、通常、Oracle AI Database用の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*;