RDS for Oracle architecture - Amazon Relational Database Service

RDS for Oracle architecture

The multitenant architecture enables an Oracle database to function as a multitenant container database (CDB). A CDB can include customer-created pluggable databases (PDBs). A non-CDB is an Oracle database that uses the traditional architecture, which can't contain PDBs. For more information about the multitenant architecture, see Oracle Multitenant Administrator’s Guide.

For Oracle Database 19c, create a DB instance either as a CDB or a non-CDB. The architecture is a permanent characteristic that you can't change later. For versions other than Oracle Database 19c, the architecture is always non-multitenant. For more information, see Creating an Amazon RDS DB instance.

Currently, RDS for Oracle supports a subset of multitenant architecture called the single-tenant architecture. In this case, your CDB contains only one PDB. The single-tenant architecture uses the same RDS APIs as the non-CDB architecture. Your experience with a non-CDB is mostly identical to your experience with a PDB. You can't access the CDB itself.

The following sections explain the principal differences between the non-multitenant and single-tenant architectures. For more information, see Limitations of a single-tenant CDB.

Database creation and connections in a single-tenant architecture

When you create a CDB, specify the DB instance identifier just as for a non-CDB. The instance identifier forms the first part of your endpoint. The system identifier (SID) is the name of the CDB. The SID of every CDB is RDSCDB. You can't choose a different value.

In the single-tenant architecture, you always connect to the PDB rather than the CDB. Specify the endpoint for the PDB just as for a non-CDB. The only difference is that you specify pdb_name for the database name, where pdb_name is the name you chose for your PDB. The following example shows the format for the connection string in SQL*Plus.

sqlplus 'dbuser@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'

User accounts and privileges in a single-tenant architecture

In the Oracle multitenant architecture, all users accounts are either common users or local users. A CDB common user is a database user whose single identity and password are known in the CDB root and in every existing and future PDB. In contrast, a local user exists only in a single PDB.

The RDS master user is a local user account in the PDB. If you create new user accounts, these users will also be local users residing in the PDB. You can't use any user accounts to create new PDBs or modify the state of the existing PDB.

The rdsadmin user is a common user account. You can run Oracle for RDS packages that exist in this account, but you can't log in as rdsadmin. For more information, see About Common Users and Local Users in the Oracle documentation.

Parameters in a single-tenant architecture

CDBs have their own parameter classes and different default parameter values. The CDB parameter classes are as follows:

  • oracle-ee-cdb-19

  • oracle-se2-cdb-19

You specify parameters at the CDB level rather than the PDB level. The PDB inherits parameter settings from the CDB. For more information about setting parameters, see Working with DB parameter groups.

Snapshots in a single-tenant architecture

Snapshots work the same in a single-tenant and non-multitenant architecture. The only difference is that when you restore a snapshot, you can only rename the PDB, not the CDB. The CDB is always named RDSCDB. For more information, see Oracle Database considerations.