A technical troubleshooting blog about Oracle with other Databases & Cloud Technologies.

Oracle Instance and Database Startup Sequence

4 min read

Typically, you manually start an instance, and then mount and open the database, making it available for users. You can use the SQL*Plus STARTUP command, Oracle Enterprise Manager (Enterprise Manager), or the SRVCTL utility to perform these steps.

To start a database instance using Oracle Net, the following must be true:

  • * The database is statically registered with an Oracle Net listener.
  • * Your client is connected to the database with the SYSDBA privilege.

The listener creates a dedicated server, which can start the database instance.

1. Instance started without mounting database --> The instance is started, but is not yet associated with a database.

2. Database mounted --> The instance is started and is associated with a database by reading its control file. The database is closed to users.

3. Database open --> The instance is started and is associated with an open database. The data contained in the data files is accessible to authorized users.

Database startup and shutdown are powerful administrative options that are restricted to users who connect to Oracle database with administrator privileges.

The following special system privileges enable access to a database instance even when the database is not open:
• SYSDBA
• SYSOPER
• SYSBACKUP
• SYSDG
• SYSKM
How an Instance Is Started ?

When Oracle Database starts an instance, it proceeds through stages.

The stages are as follows:

1. Searches for a server parameter file in a platform-specific default location and, if not found, for a text initialization parameter file (specifying STARTUP with the SPFILE or PFILE parameters overrides the default behavior)

2. Reads the parameter file to determine the values of initialization parameters

3. Allocates the SGA based on the initialization parameter settings

4. Starts the Oracle background processes

5. Opens the alert log and trace files and writes all explicit parameter settings to the alert log in valid parameter syntax .At this stage, no database is associated with the instance. Scenarios that require a
NOMOUNT state include database creation and certain backup and recovery operations.
How a Database Is Mounted ?

The instance mounts a database to associate the database with this instance.

To mount the database, the instance obtains the names of the database control files specified in the CONTROL_FILES initialization parameter and opens the files. Oracle Database reads the control files to find the names of the data files and the online redo log files that it will attempt to access when opening the database.

In a mounted database, the database is closed and accessible only to database administrators. Administrators can keep the database closed while completing specific maintenance operations. However, the database is not available for normal operations.

If Oracle Database allows multiple instances to mount the same database concurrently, then the CLUSTER_DATABASE initialization parameter setting can make the database available to multiple instances. Database behavior depends on the setting:

• If CLUSTER_DATABASE is false (default) for the first instance that mounts a database, then only this instance can mount the database.

• If CLUSTER_DATABASE is true for the first instance, then other instances can mount the database if their CLUSTER_DATABASE parameter settings are set to true. The number of instances that can mount the database is subject to a predetermined maximum specified when creating the database.
How a Database Is Opened ?

Opening a mounted database makes it available for normal database operation.

Any valid user can connect to an open database and access its information. Usually, a database administrator opens the database to make it available for general use.

When you open the database, Oracle Database performs the following actions:

• Opens the online data files in tablespaces other than undo tablespaces If a tablespace was offline when the database was previously shut down, then the tablespace and its corresponding data files will be offline when the database reopens.

• Acquires an undo tablespace .

If multiple undo tablespaces exists, then the UNDO_TABLESPACE initialization parameter designates the undo tablespace to use. If this parameter is not set, then the first available undo tablespace is chosen.

• Opens the online redo log files

Oracle STARTUP command

The basic syntax of the STARTUP command is as follows:

SQL> STARTUP;

ORACLE instance started.

Total System Global Area 2550136832 bytes
Fixed Size                  3835304 bytes
Variable Size             738200152 bytes
Database Buffers         1795162112 bytes
Redo Buffers               12939264 bytes

To start up a database instance in the NOMOUNT stage, you use the following command:

SQL> STARTUP NOMOUNT;

To bring the database to the next stage, you use the ALTER DATABASE statement. For example, this statement brings the database from the NOMOUNT to the MOUNT stage:

SQL> ALTER DATABASE MOUNT;

Bring the database to the OPEN stage by using the ALTER DATABASE command:

SQL> ALTER DATABASE OPEN;