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
The architecture is a permanent characteristic that you can't change later. The architecture requirements are as follows:
- Oracle Database 21c
-
You must create the instance as a CDB.
- Oracle Database 19c
-
You can create the instance as either a CDB or non-CDB.
- Oracle Database 12c
-
You must create the instance as a non-CDB.
For more information, see Creating an Amazon RDS DB instance.
Currently, Amazon RDS 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.
Topics
- Database creation and connections in a single-tenant architecture
- Database upgrades in a single-tenant architecture
- User accounts and privileges in a single-tenant architecture
- Parameters in a single-tenant architecture
- Snapshots in a single-tenant architecture
- Data migration in a single-tenant architecture
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
)))'
Database upgrades in a single-tenant architecture
You can upgrade a CDB to a different Oracle Database release. For example, you can upgrade a DB instance from Oracle Database 19c to Oracle Database 21c. You can't upgrade a non-CDB to a CDB.
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
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-21
-
oracle-se2-cdb-21
-
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.
Data migration in a single-tenant architecture
RDS for Oracle doesn't support unplugging and plugging in PDBs. For more information about migrating data, see Importing data into Oracle on Amazon RDS.