Overview of Oracle DB Architecture

Last updated: 5/14/2021

What’s an Oracle RDBMS ?

An Oracle RDBMS (Relational Database Management System) is a relational DBMS produced and market by Oracle Corporation. In a relational database, relationships between data items are expressed by means of tables. Don’t worry if that doesn’t make sense now – we’ll dive deeper into the relational model approach in later chapters.

Instance vs Database

At a high-level glance, we see that the Oracle RDBMS is made up of two main components – Oracle Instance and Oracle Database. These two components work together to store + retrieve data.

The Oracle Instance (instance) is a set of background process and shared memory structures. The instance is the place where Oracle RDBMS maintains volatile, non-persistent stuff. The hardware resources that support the Oracle Instance are RAM/Memory and CPU. The Oracle Instance shared memory structures borrows from the hardware RAM/Memory and the Oracle Instance background processes is powered by the hardware CPU. When the instance is started/running, you can expect to see your hardware CPU + RAM usage spike because some of it is being loaned to the Oracle Instance, however the spike is release once the instance is stopped. We commonly refer to the Oracle Instance as the “logical part” of the Oracle RDBMS.

The Oracle Database (database) is a collection of file stored on disk/hard-drive. These database files are what actually store the data. So basically, the Oracle Database is a set of files accessible (read/write) only via the Oracle Instance. Unlike the instance, a database is the place where Oracle RDBMS stores persistent/permanent stuff. As you can already assume, the hardware resource that supports that Oracle Database is disk/storage/hard-drive. As the database grows in size (stores more stuff) you can expect to see the corresponding storage to likewise grow in space usage. The Oracle Database is known as the “physical part” of the Oracle RDBMS.

To summarize – think of the Oracle Instance as the communication channel to the Oracle Database.

Human Head vs Oracle RDBSM

The Oracle RDBMS is very similar to a human head in the sense that there are many moving components working together to store, process, and retrieve data. If you were to dissect a human head, you’ll notice that there are some components that are visible and others that aren’t (although we know they exist). For now let’s call the non-visible components of the human head “logical” and the visible components “physical”.

The component that stores data permanently within the human head is the brain (or database). We can physically see the human brain if we were to dissect a persons head. Likewise, we can physically see the database files on disk – hence why we call the database the “physical component of an Oracle RDBMS”.

Although we can store data permanently in our brain (or database), we need to be able to process what people a asking/telling us inorder to input/output the data stored within our brain. This means that the human head has a component dedicated to processing stuff (or CPU). Also we know that the human head has the ability to optimize and cache data that is frequently accessed from the brain into memory (or RAM), thereby making retrieval of such frequently accessed data fast + easy. Both processing ability and memory are’nt components that we can physically see within the human head, however we know they exist. Hence why we call the instance (CPU + RAM/memory) “the logical component of an Oracle RDBMS”.

What’s the answer to 1+1 ? I’m sure you didn’t need a calculator to solve the problem. This is because “1+1” is something you’ve done frequently and therefor it’s cached in your memory. Ok, what is (25+20)/8^7 ? Don’t worry if you have to pull out a calculator for this problem. You’re unable to obtain this answer from memory because it’s not a frequent request for you. So in such a situation, you have to go get the answer from your databases. With both math questions, notice that you needed the ability to process what was being asked of you (CPU).

Your memory + processing (INSTANCE) is stopped when you are sleeping, however your brain (DATABSE) still exist. There is no communication channel to your brain (DATABASE) when your memory + processing (INSTANCE) is stopped. Have you ever tried talking to a person sleeping – their instance is down so it’s difficult for you to make request to their database.

Single Instance vs RAC Setup

As you can see from the image above, a Single Instance (SI) Oracle setup there is one communication channel (instance) that allows access to the database. SI is a simple and basic option of deploying oracle database, however it is not fault tolerant because there single point of failure. If the one instance crashes, then nobody can access the database.

Oracle Real Application Cluster (RAC) setup is a high-availability (HA) solution that allows customers to provide fault tolerance at the instance level by running multiple interconnected communication channels (instances) simultaneously while accessing a single database, thus providing clustering. There a several advantages to RAC such as scalability, load balancing, high availability, etc.

Multitenant Architecture

Oracle Multitenant Architecture is a new option introduced with Oracle Database Release 12c Enterprise Edition. As the name implies, this multitenant architecture allows multiple pluggable databases (PDB) to reside within a single container database (CDB). Please note that Oracle still supports it’s legacy architecture (called non-container database). See the image below.

Some key benefits of Oracle multitenant architecture is that it helps customers reduce IT costs by simplifying consolidation, provisioning, upgrades, etc.

References