ヘッダーをスキップ
Oracle Database管理者リファレンス
11gリリース1(11.1) for Linux and UNIX-Based Operating Systems
E05786-05
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 Oracleソフトウェアの停止と起動

この章では、Oracle Databaseプロセスを識別する方法と、プロセスを停止および再起動する基本的な方法について説明します。また、Oracle Databaseの起動と停止を自動化する方法についても説明します。次の項目について説明します。

2.1 Oracleプロセスの停止と起動

この項では、Oracleプロセスを停止および起動する方法について説明します。次の項目について説明します。

2.1.1 Oracle Databaseインスタンスおよび自動ストレージ管理インスタンスの停止と起動

この項では、Oracle Databaseインスタンスおよび自動ストレージ管理インスタンスを停止および起動する方法について説明します。

Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスの停止


注意:

自動ストレージ管理を使用して記憶域を管理しているOracle Databaseインスタンスをすべて停止するまで、自動ストレージ管理インスタンスは停止しないでください。

Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスを停止するには、次の手順を実行します。

  1. 停止するインスタンスのSIDおよびOracleホーム・ディレクトリを識別する場合は、次のコマンドを実行します。

    Solarisの場合

    $ cat /var/opt/oracle/oratab
    

    その他のオペレーティング・システムの場合

    $ cat /etc/oratab
    

    oratabファイルには、次のような行が含まれています。これによって、システム上の各データベース・インスタンスまたは自動ストレージ管理インスタンスのSIDおよび対応するOracleホーム・ディレクトリを識別します。

    sid:oracle_home_directory:[Y|N]
    

    注意:

    自動ストレージ管理インスタンスのSIDには、1文字目にプラス記号(+)を使用することをお薦めします。

  2. デフォルト・シェルに応じてoraenvまたはcoraenvスクリプトを実行し、停止するインスタンスの環境変数を設定します。

    • Bourne、BashまたはKornシェルの場合

      $ . /usr/local/bin/oraenv
      
    • Cシェルの場合

      % source /usr/local/bin/coraenv
      

    プロンプトが表示されたら、インスタンスのSIDを指定します。

  3. 次のコマンドを実行し、インスタンスを停止します。

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

    インスタンスの停止後、SQL*Plusを終了できます。

Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスの再起動


注意:

データベース・インスタンスで記憶域管理に自動ストレージ管理を使用している場合は、データベース・インスタンスを起動する前に、自動ストレージ管理インスタンスを起動する必要があります。

Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスを再起動するには、次の手順を実行します。

  1. 必要に応じて前述の手順1と2を繰り返し、環境変数ORACLE_SIDおよびORACLE_HOMEを設定して、起動するインスタンスのSIDおよびOracleホーム・ディレクトリを識別します。

  2. 次のコマンドを実行し、インスタンスを起動します。

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

    インスタンスの起動後、SQL*Plusを終了できます。

2.1.2 Oracle Cluster Services Synchronizationデーモンの停止と起動

Oracle Cluster Services Synchronizationデーモンを停止するには、次のコマンドを実行します。

AIXの場合

/etc/init.cssd stop

HP-UXの場合

/sbin/init.d/init.cssd stop

その他のプラットフォームの場合

/etc/init.d/init.cssd stop

Cluster Services Synchronizationデーモンを起動するには、次のコマンドを実行します。

$ORACLE_HOME/bin/localconfig reset

このコマンドは、Oracle Cluster Services Synchronizationデーモンを停止して再起動します。

2.1.3 Oracle Net Listenerの停止と起動

この項では、Oracle Net Listenerを停止および起動する方法について説明します。

Oracle Net Listenerの停止

Oracle Net Listenerを停止するには、次の手順を実行します。

  1. 停止するOracle Net Listenerのリスナー名とホーム・ディレクトリを判別する場合は、次のコマンドを実行します。

    $ ps -ef | grep tnslsnr
    

    このコマンドは、システムで稼働中のOracle Net Listenerのリストを表示します。このコマンドの出力は、次のようになります。

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

    このサンプルでは、出力listenername1listenername2がリスナーの名前です。

  2. 必要に応じて環境変数ORACLE_HOMEを設定し、停止するリスナーのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home1
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home1
      
  3. 次のコマンドを実行し、Oracle Net Listenerを停止します。

    $ $ORACLE_HOME/bin/lsnrctl stop listenername
    

    注意:

    リスナー名がデフォルトのLISTENERの場合、このコマンドで名前を指定する必要はありません。

Oracle Net Listenerの再起動

Oracle Net Listenerを起動するには、次の手順を実行します。

  1. 必要に応じて環境変数ORACLE_HOMEを設定し、起動するリスナーのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home1
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home1
      
  2. 次のコマンドを実行し、Oracle Net Listenerを再起動します。

    $ $ORACLE_HOME/bin/lsnrctl start [listenername]
    

    リスナー名の指定は、リスナー名がデフォルトのリスナー名LISTENERと異なる場合にのみ必要となります。リスナー名は、listener.oraファイルに記述されています。このファイルの内容を表示するには、次のコマンドを実行します。

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

2.1.4 Oracle Ultra Searchの停止と起動

この項では、Oracle Ultra Searchを停止および起動する方法について説明します。

Oracle Ultra Searchの停止

Oracle Ultra Searchを停止するには、次の手順を実行します。

  1. 必要に応じて環境変数ORACLE_HOMEを設定し、Oracle Ultra SearchのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home
      
  2. 次のコマンドを実行し、Oracle Ultra Searchを停止します。

    $ $ORACLE_HOME/bin/searchctl stop
    

Oracle Ultra Searchの起動

Oracle Ultra Searchを起動するには、次の手順を実行します。

  1. 必要に応じて環境変数ORACLE_HOMEを設定し、Oracle Ultra SearchのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home
      
  2. 次のコマンドを実行し、Oracle Ultra Searchを起動します。

    $ $ORACLE_HOME/bin/searchctl start
    

2.1.5 Oracle Enterprise Manager Database Controlの停止と起動

この項では、Oracle Enterprise Manager Database Controlを停止および起動する方法について説明します。

Oracle Enterprise Manager Database Controlの停止

Oracle Enterprise Manager Database Controlを停止するには、次の手順を実行します。

  1. デフォルト・シェルに応じてoraenvまたはcoraenvスクリプトを実行し、停止するDatabase Controlで管理されているデータベースの環境を設定します。

    • coraenvスクリプトの場合

      % source /usr/local/bin/coraenv
      
    • oraenvスクリプトの場合

      $ . /usr/local/bin/oraenv
      
  2. 次のコマンドを実行し、Database Controlを停止します。

    $ $ORACLE_HOME/bin/emctl stop dbconsole
    

Oracle Enterprise Manager Database Controlの起動

Database Controlを起動するには、次の手順を実行します。

  1. 環境変数ORACLE_SIDおよびORACLE_HOMEを設定し、起動するDatabase ControlのSIDおよびOracleホーム・ディレクトリを識別します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home
      $ ORACLE_SID=sid
      $ export ORACLE_HOME ORACLE_SID
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home
      % setenv ORACLE_SID sid
      
  2. 次のコマンドを実行し、Database Controlを起動します。

    $ $ORACLE_HOME/bin/emctl start dbconsole
    

2.1.6 Oracle Management Agentの停止と起動

Oracle Enterprise Manager Grid Controlを使用して複数のOracle製品を中央から管理する場合は、Oracle Management Agentが各ホスト・システムにインストールされている必要があります。通常、Oracle Management Agentは固有のOracleホーム・ディレクトリにインストールされます。

この項では、Oracle Management Agentを停止および起動する方法について説明します。

Oracle Management Agentの停止

Oracle Management Agentを停止するには、次の手順を実行します。

  1. 次のコマンドを実行し、Oracle Management AgentのOracleホーム・ディレクトリを判別します。

    $ ps -ef | grep emagent
    

    このコマンドは、Oracle Management Agentプロセスに関する情報を表示します。このコマンドの出力は、次のようになります。

    94248 ?? I 0:00.18 oracle_home/agent/bin/emagent ...
    
  2. 必要に応じて環境変数ORACLE_HOMEを設定し、Oracle Management AgentのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home
      
  3. 次のコマンドを実行し、Oracle Management Agentを停止します。

    $ $ORACLE_HOME/agent/bin/emctl stop agent
    

Oracle Management Agentの起動

Oracle Management Agentを起動するには、次の手順を実行します。

  1. 必要に応じて環境変数ORACLE_HOMEを設定し、Oracle Management AgentのOracleホーム・ディレクトリを指定します。

    • Bourne、BashまたはKornシェルの場合

      $ ORACLE_HOME=oracle_home
      $ export ORACLE_HOME
      
    • Cシェルの場合

      % setenv ORACLE_HOME oracle_home
      
  2. 次のコマンドを実行し、Oracle Management Agentを起動します。

    $ $ORACLE_HOME/agent/bin/emctl start agent
    

2.2 停止と起動の自動化

Oracle Databaseは、システムの起動時に自動的に起動し、停止時に自動的に停止するようにシステムを構成することをお薦めします。データベースの起動と停止を自動化することによって、データベースの不正な停止を防ぐことができます。

データベースの起動と停止を自動化するには、$ORACLE_HOME/binディレクトリにあるdbstartおよびdbshutスクリプトを使用します。これらのスクリプトは、oratabファイル内の同じエントリを参照します。したがって、同じデータベース・セットに適用されます。たとえば、dbstartスクリプトによって、sid1sid2およびsid3を自動的に起動し、dbshutスクリプトによって、sid1のみを停止することはできません。ただし、dbstartスクリプトがまったく使用されていない場合は、dbshutスクリプトを使用してデータベース・セットの停止を指定することはできます。これを実行するには、システムの停止ファイルにdbshutエントリを追加し、システムの起動ファイルからdbstartエントリを除外します。


関連項目:

システムの起動と停止の手順については、オペレーション・システムのドキュメントにあるinitコマンドを参照してください。

2.2.1 その他のオペレーティング・システムにおけるデータベースの起動と停止の自動化

dbstartおよびdbshutスクリプトを使用してデータベースの起動と停止を自動化するには、次の手順を実行します。

  1. rootユーザーでログインします。

  2. プラットフォームのoratabファイルを編集します。

    ファイルを開くには、次のいずれかのコマンドを使用します。

    • Solarisの場合

      # vi /var/opt/oracle/oratab
      
    • AIX、HP-UXおよびLinuxの場合

      # vi /etc/oratab
      

    oratabファイル内のデータベース・エントリは、次の形式で表示されます。

    SID:ORACLE_HOME:{Y|N|W}
    

    この例の値YおよびNは、スクリプトでデータベースの起動または停止を実行するかどうかを指定します。最初に、停止と起動を自動化するデータベースごとに、データベースのインスタンス識別子(SID)を判別します。これは、最初のフィールドのSIDで識別されます。次に、最後のフィールドをそれぞれYに変更します。

    dbstartを設定すると、自動ストレージ管理インストールを使用している単一インスタンスのデータベースの起動を自動化できます。自動ストレージ管理はOracle Clusterwareによって自動的に起動されます。これは、自動ストレージ管理クラスタのデフォルトの動作です。これを実行する場合は、データベースおよび自動ストレージ管理インストールのoratabエントリを変更して、3番目のフィールドに値WおよびNをそれぞれ設定する必要があります。これらの値は、自動ストレージ管理インスタンスの起動後にのみ、dbstartがデータベースを自動的に起動するように指定します。


    注意:

    新規データベース・インスタンスをシステムに追加する場合、これらのインスタンスを自動的に起動するには、oratabファイルでインスタンスのエントリを編集する必要があります。

  3. オペレーティング・システムに応じ、ディレクトリを次のいずれかに変更します。

    プラットフォーム プラットフォーム固有の初期化ファイルのディレクトリ
    AIX /etc
    LinuxおよびSolaris /etc/init.d
    HP-UX /sbin/init.d

  4. dboraというファイルを作成し、次の行をこのファイルにコピーします。


    注意:

    環境変数ORACLE_HOMEの値を、各インストールのOracleホーム・ディレクトリに変更します。また、環境変数ORACLEの値を、Oracleホーム・ディレクトリにインストールされているデータベースの所有者のユーザー名(通常は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
          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
    

    注意:

    このスクリプトで停止できるのは、パスワードが設定されていないOracle Net Listenerのみです。また、リスナー名がデフォルトのLISTENERではない場合、stopおよびstartコマンドでリスナー名を指定する必要があります。
    $ORACLE_HOME/bin/lsnrctl {start|stop} listener_name
    

  5. dboraファイルのグループをOSDBAグループ(通常はdba)に変更し、その権限を750に設定します。

    # chgrp dba dbora
    # chmod 750 dbora
    
  6. 次のように、dboraスクリプトへのシンボリック・リンクを、適切な起動レベルのスクリプト・ディレクトリに作成します。

    プラットフォーム シンボリック・リンク・コマンド
    AIX
    # ln -s /etc/dbora /etc/rc.d/rc2.d/S99dbora
    # ln -s /etc/dbora /etc/rc.d/rc0.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