2 Stopping and Starting Oracle Software

This chapter describes how to identify Oracle Database processes, and provides basic information about how to stop and restart them. It also describes how to set up automatic startup and shutdown of the Oracle Database. It contains the following sections:

2.1 Stopping and Starting Oracle Processes

This section describes how to stop and start Oracle processes. It contains the following topics:

2.1.1 Stopping and Starting Oracle Database and Automatic Storage Management Instances

This section describes how to stop and start Oracle Database and Automatic Storage Management instances.

Stopping an Oracle Database or Automatic Storage Management Instance

Caution:

Do not stop an Automatic Storage Management instance until you have stopped all Oracle Database instances that use that Automatic Storage Management instance to manage their storage.

To stop an Oracle Database or Automatic Storage Management instance:

  1. To identify the SID and Oracle home directory for the instance that you want to shut down, run the following command:

    On Solaris:

    $ cat /var/opt/oracle/oratab
    

    On other operating systems:

    $ cat /etc/oratab
    

    The oratab file contains lines similar to the following, which identify the SID and corresponding Oracle home directory for each database or Automatic Storage Management instance on the system:

    sid:oracle_home_directory:[Y|N]
    

    Note:

    Oracle recommends that you use the plus sign (+) as the first character in the SID of Automatic Storage Management instances.
  2. Depending on the default shell, run the oraenv or coraenv script to set the environment variables for the instance that you want to shut down:

    • Bourne, Bash, or Korn shell:

      $ . /usr/local/bin/oraenv
      
    • C shell:

      % source /usr/local/bin/coraenv
      

    When prompted, specify the SID for the instance.

  3. Run the following commands to shut down the instance:

    $ sqlplus
    SQL> CONNECT SYS as SYSDBA
    Enter password: sys_password
    SQL> SHUTDOWN NORMAL
    

    After the instance shuts down, you can quit SQL*Plus.

Restarting an Oracle Database or Automatic Storage Management Instance

Caution:

If the database instance uses Automatic Storage Management for storage management, then you must start the Automatic Storage Management instance before you start the database instance.

To restart an Oracle Database or Automatic Storage Management instance:

  1. If required, repeat Steps 1 and 2 of the preceding procedure to set the ORACLE_SID and ORACLE_HOME environment variables to identify the SID and Oracle home directory for the instance that you want to start.

  2. Run the following commands to start the instance:

    $ sqlplus
    SQL> CONNECT SYS as SYSDBA
    Enter password: sys_password
    SQL> STARTUP
    

    After the instance starts, you can exit from SQL*Plus.

2.1.2 Stopping and Starting Oracle Cluster Services Synchronization Daemon

To stop the Oracle Cluster Services Synchronization daemon, run the following command:

On AIX:

/etc/init.cssd stop

On HP-UX:

/sbin/init.d/init.cssd stop

On other platforms:

/etc/init.d/init.cssd stop

To start the Cluster Services Synchronization daemon, run the following command:

$ORACLE_HOME/bin/localconfig reset

This command stops the Oracle Cluster Services Synchronization daemon and then restarts it.

2.1.3 Stopping and Starting an Oracle Net Listener

This section describes how to stop and start an Oracle Net listener.

Stopping Oracle Net Listener

To stop an Oracle Net listener:

  1. Run the following command to determine the listener name and Oracle home directory for the Oracle Net listener that you want to stop:

    $ ps -ef | grep tnslsnr
    

    This command displays a list of the Oracle Net listeners running on the system. The output of this command is similar to the following:

    94248 ?? I 0:00.18 oracle_home1/bin/tnslsnr listenername1 -inherit
    94248 ?? I 0:00.18 oracle_home2/bin/tnslsnr listenername2 -inherit
    

    In this sample output, listenername1 and listenername2 are the names of the listeners.

  2. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for the listener that you want to stop:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home1
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home1
      
  3. Run the following command to stop the Oracle Net listener:

    $ $ORACLE_HOME/bin/lsnrctl stop listenername
    

    Note:

    If the name of the listener is the default name, LISTENER, then you do not have to specify the name in this command.

Restarting Oracle Net Listener

To start an Oracle Net listener:

  1. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for the listener that you want to start:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home1
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home1
      
  2. Run the following command to restart the Oracle Net listener:

    $ $ORACLE_HOME/bin/lsnrctl start [listenername]
    

    You must specify the listener name only if it is different from the default listener name, LISTENER. The listener name is mentioned in the listener.ora file. To display the contents of this file, run the following command:

    $ more $ORACLE_HOME/network/admin/listener.ora
    

2.1.4 Stopping and Starting Oracle Ultra Search

This section describes how to stop and start Oracle Ultra Search.

Stopping Oracle Ultra Search

To stop Oracle Ultra Search:

  1. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for Oracle Ultra Search:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home
      
  2. Run the following command to stop Oracle Ultra Search:

    $ $ORACLE_HOME/bin/searchctl stop
    

Starting Oracle Ultra Search

To start Oracle Ultra Search:

  1. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for Oracle Ultra Search:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home
      
  2. Run the following command to start Oracle Ultra Search:

    $ $ORACLE_HOME/bin/searchctl start
    

2.1.5 Stopping and Starting Oracle Enterprise Manager Database Control

This section describes how to stop and start Oracle Enterprise Manager Database Control.

Stopping Oracle Enterprise Manager Database Control

To stop Oracle Enterprise Manager Database Control:

  1. Depending on the default shell, run the oraenv or coraenv script to set the environment for the database managed by the Database Control that you want to stop:

    • coraenv script:

      % source /usr/local/bin/coraenv
      
    • oraenv script:

      $ . /usr/local/bin/oraenv
      
  2. Run the following command to stop the Database Control:

    $ $ORACLE_HOME/bin/emctl stop dbconsole
    

Starting Oracle Enterprise Manager Database Control

To start Database Control:

  1. Set the ORACLE_SID and ORACLE_HOME environment variables to identify the SID and Oracle home directory for the database control that you want to start:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home
      $ ORACLE_SID=sid
      $ export ORACLE_HOME ORACLE_SID
      
    • C shell:

      % setenv ORACLE_HOME oracle_home
      % setenv ORACLE_SID sid
      
  2. Run the following command to start the Database Control:

    $ $ORACLE_HOME/bin/emctl start dbconsole
    

2.1.6 Stopping and Starting Oracle Management Agent

If you are using Oracle Enterprise Manager Grid Control to manage multiple Oracle products from a central location, then you must have an Oracle Management Agent installed on each host system. Typically, the Oracle Management Agent is installed in its own Oracle home directory.

This section describes how to stop and start Oracle Management Agent.

Stopping Oracle Management Agent

To stop Oracle Management Agent:

  1. Run the following command to determine the Oracle home directory for Oracle Management Agent:

    $ ps -ef | grep emagent
    

    This command displays information about the Oracle Management Agent processes. The output of this command is similar to the following:

    94248 ?? I 0:00.18 oracle_home/agent/bin/emagent ...
    
  2. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for the Oracle Management Agent:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home
      
  3. Run the following command to stop Oracle Management Agent:

    $ $ORACLE_HOME/agent/bin/emctl stop agent
    

Starting Oracle Management Agent

To start Oracle Management Agent:

  1. If required, set the ORACLE_HOME environment variable to specify the appropriate Oracle home directory for Oracle Management Agent:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • C shell:

      % setenv ORACLE_HOME oracle_home
      
  2. Run the following command to start Oracle Management Agent:

    $ $ORACLE_HOME/agent/bin/emctl start agent
    

2.2 Automating Shutdown and Startup

Oracle recommends that you configure the system to automatically start Oracle Database when the system starts, and to automatically shut it down when the system shuts down. Automating database startup and shutdown guards against incorrect database shutdown.

To automate database startup and shutdown, use the dbstart and dbshut scripts, which are located in the $ORACLE_HOME/bin directory. The scripts refer to the same entries in the oratab file, which are applied on the same set of databases. You cannot, for example, have the dbstart script automatically start sid1, sid2, and sid3, and have the dbshut script shut down only sid1. However, you can specify that the dbshut script shuts down a set of databases while the dbstart script is not used at all. To do this, include a dbshut entry in the system shutdown file, but do not include the dbstart entry from the system startup files.

See Also:

The init command in the operating system documentation for more information about system startup and shutdown procedures

2.2.1 Automating Database Startup and Shutdown on Other Operating Systems

To automate database startup and shutdown by using the dbstart and dbshut scripts:

  1. Log in as the root user.

  2. Edit the oratab file for the platform.

    To open the file, use one of the following commands:

    • On Solaris:

      # vi /var/opt/oracle/oratab
      
    • On AIX, HP-UX, and Linux:

      # vi /etc/oratab
      

    Database entries in the oratab file are displayed in the following format:

    SID:ORACLE_HOME:{Y|N|W}
    

    In this example, the values Y and N specify whether you want the scripts to start or shut down the database, respectively. For each database for which you want to automate shutdown and startup, first determine the instance identifier (SID) for that database, which is identified by the SID in the first field. Then, change the last field for each to Y.

    You can set dbstart to autostart a single-instance database that uses an Automatic Storage Management installation that is auto-started by Oracle Clusterware. This is the default behavior for an Automatic Storage Management cluster. If you want to do this, then you must change the oratab entry of the database and the Automatic Storage Management installation to use a third field with the value W and N, respectively. These values specify that dbstart auto-starts the database only after the Automatic Storage Management instance is started.

    Note:

    If you add new database instances to the system and automate startup for them, then you must edit the entries for those instances in the oratab file.
  3. Change directory to one of the following depending on the operating system:

    Platform Initialization File Directory
    AIX /etc
    Linux and Solaris /etc/init.d
    HP-UX /sbin/init.d

  4. Create a file called dbora, and copy the following lines into this file:

    Note:

    Change the value of the ORACLE_HOME environment variable to an Oracle home directory for the installation. Change the value of the ORACLE environment variable to the user name of the owner of the database installed in the Oracle home directory (typically, oracle).
    #! /bin/sh  -x
    #
    # Change the value of ORACLE_HOME to specify the correct Oracle home
    # directory for your installation.
    
    ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
    #
    # Change the value of ORACLE to the login name of the
    # oracle owner at your site.
    #
    ORACLE=oracle
    
    PATH=${PATH}:$ORACLE_HOME/bin
    HOST=`hostname`
    PLATFORM=`uname`
    export ORACLE_HOME PATH
    #
    if [ ! "$2" = "ORA_DB" ] ; then
       if [ "$PLATFORM" = "HP-UX" ] ; then
          remsh $HOST -l $ORACLE -n "$0 $1 ORA_DB"
          exit
       else
          rsh $HOST -l $ORACLE  $0 $1 ORA_DB
          if [ "$PLATFORM" = "Linux" ] ; then
              touch /var/lock/subsys/dbora
          fi
          exit
       fi
    fi
    #
    case $1 in
    'start')
            $ORACLE_HOME/bin/dbstart $ORACLE_HOME &
            ;;
    'stop')
            $ORACLE_HOME/bin/dbshut $ORACLE_HOME &
            ;;
    *)
            echo "usage: $0 {start|stop}"
            exit
            ;;
    esac
    #
    exit
    

    Note:

    This script can only stop Oracle Net listener for which a password has not been set. In addition, if the listener name is not the default name, LISTENER, then you must specify the listener name in the stop and start commands:
    $ORACLE_HOME/bin/lsnrctl {start|stop} listener_name
    
  5. Change the group of the dbora file to the OSDBA group (typically dba), and set the permissions to 750:

    # chgrp dba dbora
    # chmod 750 dbora
    
  6. Create symbolic links to the dbora script in the appropriate run-level script directories as follows.

    Platform Symbolic Links Commands
    AIX
    # ln -s /etc/dbora /etc/rc.d/rc2.d/S99dbora
    # ln -s /etc/dbora /etc/rc.d/rc2.d/K01dbora
    
    HP-UX
    # ln -s /sbin/init.d/dbora /sbin/rc3.d/S990dbora
    # ln -s /sbin/init.d/dbora /sbin/rc0.d/K001dbora
    
    Linux
    # ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
    # ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
    # ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
    
    Solaris
    # ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora
    # ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora