If you asked a selection of people, “What is an Oracle database?” you’d probably get a range of answers as there is some confusion about what exactly it is and people often mix up their terminology.
Oracle Database Tutorial
In this article, the first in a series of introductory Oracle training articles that will eventually form a complete Oracle DBA training course, I’m going to explain the difference between an Oracle database server, an Oracle database and an Oracle instance.
The Oracle Database Server
An Oracle database server consists of two elements:
- An Oracle database.
- An Oracle instance.
Each of these elements is made up of multiple elements themselves – see the diagram below for a full picture of the Oracle database architecture. Each part of the architecture will be covered in detail throughout this series of DBA 101 articles.
The Oracle database is basically the physical files on disk that store the actual data and also the meta-data. The files that store the actual data are called datafiles. Other files include the database control files and the redo logs. We’ll cover these in more details in the next article in this series.
As we delve deeper into our study of Oracle in later articles, we’ll see that the database consists of both physical and logical structures:
- Physical structures are actual tangible structures such as data blocks on disk, and extents (groups of data blocks).
- Logical structures are conceptual elements such as tablespaces, tables and indexes.
For now, you really just need to understand that the database consists of the physical files on disk.
The second component of a database server is the Oracle instance. This consists of the memory structures used when the database server is running, and the Oracle background processes.
The background processes are the programs that handle the actual running of the database such as the Process Monitor and the Database Writer.
Every time an instance is started a shared memory area called the System Global Area, or SGA for short, is allocated and the background processes are started.
The instance is then associated with a specific database (i.e. specific datafiles on disk). This is known as mounting the database. The database is then ready to be opened, which in turn makes it accessible to users.
Each instance is associated with just one database. If you have more than one database on a server, there is a separate instance for each one.
Again, we’ll cover the Oracle instance in more depth in a later article. For now, you just need to know that the instance consists of the memory structures and the background processes.
To summarise the key points to take away from this article:
- An Oracle database server consists of the Oracle database and the Oracle instance.
- The database is the actual physical files on disk.
- The instance is the memory structures and the background processes.
- When an instance is started it, it is associated with a specific database. This is called mounting the database.
- An instance is associated with one, and only one, specific database – an instance cannot be shared.
In the next article, which you can read here, we’ll cover the Oracle database memory structures in more detail.