I hope all of you had a great winter break! Did you spent some time learning something new? I, personally managed to spend about 4 hours on some Oracle training labs about Multitenant Architecture and things you can do with PDBs. The online labs were a great resource, however, I realized that I needed to go back to the documentation, and read/learn about PDBs in more detail. As I was progressing
through these labs, questions were popping up in my head, what is this, what would happen if I do that…how about that…
Which made me think that there must be more DBAs in the world asking the same questions. With that in mind, I thought you might enjoy a mini series on the multitenant architecture.
In the coming weeks, I will post a series of articles about the Multitenant Architecture, in short easy to read format. To get this series started…I will need to begin with the basics, with an overview of the multitenant architecture. You might be very familiar with the terminologies and the topic.
When you hear that a database is configured in a Multitenant Architecture, it means that the database is setup and functions as a Multitenant Container database, aka CDB.
A Container Database (CDB) can have zero, one or many pluggable databases, or PDBs, which are created by users or DBAs.
A Pluggable Database (PDB) is a collection of schemas, schema objects, non-schema objects, users, tablespaces, etc. You can think of the PDB as a pre-CDB database, or non-CDB database, only from the database content perspective, and not memory/background processes perspective.
Databases prior to 12c were all non-CDBs. The non-CDB architecture was deprecated since 12.1.0.2, and in 20c and up, the non-CDB database is no longer an option, meaning you cannot create a non-CDB database.
What are the components of a CDB?
Did you know that you could have 5 component types in a CDB? Not all of them must be present in the CDB! You might have CDBs with all of the components present, and you might have CDBs with only a few of these components. However, some components must be part of the CDB. Let’s find out which ones!
- The Root Container, which is named CDB$ROOT. All the pluggable databases belong to the root container, or are plugged into the root.
The root container has the Oracle metadata (data dictionary), and common users.