Configure a Multitenant Container Database

Oracle GoldenGate with Oracle Database allows each pluggable database (PDB) to have Extract registered for a specific PDB, which is called a per-PDB Extract.

The following diagram shows the configuration for different approaches in a multitenant container database configuration:

Description of pdb_extract_feedbk.png follows
Description of the illustration pdb_extract_feedbk.png

There are two approaches to configure an Extract for an Oracle multitenant database.
  • Approach 1: Adding Extract directly from the PDB. This approach is useful when Extract captures from isolated PDBs, managing ownership and responsibility at the PDB level.

  • Approach 2: Adding Extract in the root container and referencing the associated PDBs This approach is useful when Extract captures data from multiple PDBs.

If you use Approach 1, you can create a per-PDB Extract by connecting as the local PDB user (for example, ggadmin) and then register this Extract with the PDB. As you are already logged in as the PDB user, the container clause is not required. Similarly, the SOURCECATALOG and two-part naming convention is adequate.

If you use Approach 2, you can connect to the root container with the common database user c##ggadmin and create Extract for specific PDBs. This Extract needs to be registered for the specific PDB using the container clause. The container clause might contain a single or multiple PDBs.

Note:

Even if you use a root-level Extract, you need the user credentials for each PDB from which you need to capture. The hearbeat table also resides in the individual PDBs.

To set up an Extract, see Add a Primary Extract.

Considerations for Multitenant Container Database Configuration

Consider the following guidelines when configuring a multitenant container databases for data replication using Oracle GoldenGate:

  • The different pluggable databases in the multitenant container database can have different character sets. Oracle GoldenGate captures data from any multitenant database with different character sets into one trail file and replicates the data without corruption due to using different character sets.

  • To create and register a per-PDB Extract, you will need to connect to the PDB user such as ggadmin created for PDB-level access. Use the USERIDALIAS parameter to configure a SQL*Net connection string such as ggadmin@pdbeast. You do not need the container clause or the SOURCECATALOG to set up the per-PDB Extract.

  • To add a user for the root container, Extract must connect to the root container (cdb$root) as a common user in order to interact with the logmining server. To specify the root container, use the appropriate SQL*Net connect string for the database user that you specify with the USERIDALIAS parameter, such as c##ggadmin@dbeast.

  • To support source CDB 12.2, Extract must specify the trail format as release 12.3. Due to changes in the redo logs, to capture from a multitenant database that is Oracle 12.2 or higher, the trail format release must be 12.3 or higher.

  • DDL replication works as a normal replication for multitenant databases.

See Add Database Credentials to add a multitenant container database user in Oracle GoldenGate credentials. See Grant User Privileges for Oracle Database 21c and Lower depending on the Oracle database installation that you need to configure.