This topic could fill an entire book, but for our purposes here, we’ll focus on the most important aspects. This article highlights concepts and provides a general overview of the players that deliver this proprietary database management system. These players fall into three main categories:
- Shared memory A section of the host server’s memory through which all the data passes and the applications’ code is stored and executed
- System support infrastructure A mix of background and foreground processes that perform the tasks required to facilitate the application interaction with the 12c database
- Operating system files A suite of no less than ten files that play individual roles as the database runs
The next three sections address these players and provide a bird’s-eye view of what they do.
Shared memory is nothing more than a newfangled name for what was and is sometimes still referred to as RAM—random access memory. As the 12c database is started, a handful of entries in its system parameter file contribute to the size of memory allocated to the instance. Many adopters of the Oracle technology use the words “database” and “instance” synonymously. There is a fundamental difference between the two:
- A database is an assortment of files that store data plus a handful of worker files that facilitate application access.
- An instance is a segment of shared memory and support processes that provide the capability for applications to work with the data stored in the database. Once the instance is started, the following areas of shared memory play a role in database management activities:
- The system global area, or SGA, contains data and control information from a single database instance.
- The program global area, or PGA, is part of the memory allocated to a 12c instance as it is started. Unlike the memory in the SGA, PGA memory is not shared. It contains data and control information specific to server processes, not the instance as a whole.
- The user global area, or UGA, is memory associated with each user session. Even though it is allocated from PGA memory, the UGA is discussed as one of the four main memory components.
- Software code areas are where SQL code is prepared for execution and sits in memory until used.
It would be impossible to get into the details of each of these components; as you encounter the memory structures that support a running Oracle instance, the terminology will not be brand new. Figure 1 is a graphical representation of the bullet points just discussed with minimal drill-down.
FIGURE 1. Overview of shared memory components for a 12c database
Oracle Database 12c offers two approaches for memory management—manual or auto:
- Auto memory management A maximum amount of memory that can be used is defined, and the instance self-manages the size of the assortment of SGA components. This approach is recommended by Oracle and first appeared in Oracle9i around the turn of the century; it is referred to as automatic shared memory management (ASMM).
- Manual memory management The administrator specifies fixed sizes for the components that make up the SGA; each component size is specified in the system parameter file as the 12c instance starts.
Interaction with the database through the instance is brokered by system support processes introduced next.
System Support Processes
These processes are initiated automatically as an Oracle instance is started. Each one plays a role in the management of application interaction with the data. A full set of 12c processes from a running instance appears in Figure 2.
FIGURE 2. Background processes that support the 12c database
Table 1 presents some detail on the role played by each one of the highlighted processes.
The suite of background processes that you see on a running Oracle Database 12c may differ from what was discussed in this section. Some processes only appear when certain functionality of 12c is being used. The next section wraps up the architecture discussion by giving some insight into the system files that support the 12c database.
Operating System Files
A minimum of 11 files are created for the traditional Oracle instance. Table 2 lists the role of each.
Figure 3 illustrates the makeup of these operating system files, the barebones minimum as discussed in Table 2.