Oracle® Database管理者リファレンス 12c リリース1 (12.1) for Linux and UNIX-Based Operating Systems B71275-11 |
|
前 |
次 |
この章では、Oracle Databaseプロセスを識別する方法と、プロセスを停止および再起動する基本的な方法について説明します。また、Oracle Databaseの起動と停止を自動化する方法についても説明します。内容は次のとおりです。
注意: Oracle Restartを使用する場合、コマンドライン・インタフェースであるサービス制御ユーティリティ(SRVCTL)を使用して、Oracleプロセス(データベース・インスタンス、リスナー、Oracle ASMインスタンス)を管理できます。SRVCTLを使用すると、Oracle Restart構成の管理、Oracle Restartで管理されるプロセスのステータスの確認、およびOracle Databaseなどのプロセスの開始や停止が可能です。SRVCTLは、スタンドアロン・サーバーおよびOracle Clusterwareのあるクラスタ上のOracle Restartを使用する単一インスタンス・データベースをサポートするように拡張されました。 |
関連項目: SRVCTLコマンドの詳細は、『Oracle Database管理者ガイド』および『Oracle Automatic Storage Management管理者ガイド』を参照してください。 |
この項では、Oracleプロセスを停止および起動する方法について説明します。内容は次のとおりです。
この項では、Oracle DatabaseインスタンスおよびOracle Automatic Storage Managementインスタンスを停止および起動する方法について説明します。
注意: Oracle Automatic Storage Managementインスタンスを使用して記憶域を管理しているOracle Databaseインスタンスをすべて停止するまで、Oracle Automatic Storage Managementインスタンスは停止しないでください。 |
Oracle DatabaseインスタンスまたはOracle Automatic Storage Managementインスタンスを停止するには、次の手順を実行します。
次のコマンドを実行して、停止する必要があるインスタンスのSIDおよびOracleホーム・ディレクトリを識別します。
Oracle Solarisの場合:
$ cat /var/opt/oracle/oratab
その他のオペレーティング・システムの場合
$ cat /etc/oratab
oratab
ファイルには、次のような行が含まれています。これによって、システム上の各データベース・インスタンスまたはOracle Automatic Storage ManagementインスタンスのSID
および対応するOracleホーム・ディレクトリを識別します。
$ORACLE_SID:$ORACLE_HOME:<N|Y>
注意: Oracle Automatic Storage ManagementインスタンスのSID には、1文字目にプラス記号(+)を使用することをお薦めします。 |
デフォルト・シェルに応じてoraenv
またはcoraenv
スクリプトを実行し、停止する必要があるインスタンスの環境変数を設定します。
Bourne、BashまたはKornシェルの場合
$ . /usr/local/bin/oraenv
Cシェルの場合
% source /usr/local/bin/coraenv
プロンプトが表示されたら、インスタンスのSID
を指定します。
次のコマンドを実行し、インスタンスを停止します。
$ sqlplus
SQL> CONNECT SYS as SYSDBA
Enter password: sys_password
SQL> SHUTDOWN NORMAL
インスタンスの停止後、SQL*Plusを終了できます。
注意: データベース・インスタンスで記憶域管理にOracle Automatic Storage Managementを使用している場合は、データベース・インスタンスを起動する前に、Oracle Automatic Storage Managementインスタンスを起動する必要があります。 |
Oracle DatabaseインスタンスまたはOracle Automatic Storage Managementインスタンスを再起動するには、次の手順を実行します。
Oracle Databaseは、システムの起動時に自動的に起動し、停止時に自動的に停止するようにシステムを構成することをお薦めします。データベースの起動と停止を自動化することによって、データベースの不正な停止を防ぐことができます。
データベースの起動と停止を自動化するには、$ORACLE_HOME/bin
ディレクトリにあるdbstart
およびdbshut
スクリプトを使用します。これらのスクリプトは、oratab
ファイル内の同じエントリを参照します。したがって、同じデータベース・セットに適用されます。たとえば、dbstart
スクリプトによって、sid1
、sid2
およびsid3
を自動的に起動し、dbshut
スクリプトによって、sid1
のみを停止することはできません。ただし、dbstart
スクリプトがまったく使用されていない場合は、dbshut
スクリプトを使用してデータベース・セットの停止を指定することはできます。これを実行するには、システムの停止ファイルにdbshut
エントリを追加し、システムの起動ファイルからdbstart
エントリを除外します。
関連項目: システムの起動と停止の手順については、オペレーション・システムのドキュメントにあるinit コマンドを参照してください。 |
dbstart
およびdbshut
スクリプトを使用してデータベースの起動と停止を自動化するには、次の手順を実行します。
root
ユーザーでログインします。
プラットフォームのoratab
ファイルを編集します。
ファイルを開くには、次のいずれかのコマンドを使用します。
Oracle Solarisの場合:
# vi /var/opt/oracle/oratab
IBM AIX on POWER Systems (64-Bit)およびLinuxの場合:
# vi /etc/oratab
oratab
ファイル内のデータベース・エントリは、次の形式で表示されます。
$ORACLE_SID:$ORACLE_HOME:<N|Y>
この例の値Y
およびN
は、スクリプトでデータベースの起動または停止を実行するかどうかを指定します。最初に、停止と起動を自動化するデータベースごとに、データベースのインスタンス識別子(SID)を判別します。これは、最初のフィールドのSIDで識別されます。次に、最後のフィールドをそれぞれY
に変更します。
dbstart
を設定すると、自動ストレージ管理インストールを使用している単一インスタンスのデータベースの起動を自動化できます。自動ストレージ管理はOracle Clusterwareによって自動的に起動されます。これは、自動ストレージ管理クラスタのデフォルトの動作です。これを実行する場合は、データベースおよび自動ストレージ管理インストールのoratab
エントリを変更して、3番目のフィールドに値W
およびN
をそれぞれ設定する必要があります。これらの値は、自動ストレージ管理インスタンスの起動後にのみ、dbstart
がデータベースを自動的に起動するように指定します。
注意: 新規データベース・インスタンスをシステムに追加する場合、これらのインスタンスを自動的に起動するには、oratab ファイルでインスタンスのエントリを編集する必要があります。 |
オペレーティング・システムに応じ、ディレクトリを次のいずれかに変更します。
プラットフォーム | プラットフォーム固有の初期化ファイルのディレクトリ |
---|---|
LinuxおよびOracle Solaris | /etc/init.d |
IBM AIX on POWER Systems (64-Bit) | /etc |
dbora
というファイルを作成し、次の行をこのファイルにコピーします。
注意: 環境変数ORACLE_HOME の値を変更し、インストールのOracleホーム・ディレクトリに指定します。また、環境変数ORACLE の値を、Oracleホーム・ディレクトリにインストールされているデータベースの所有者のユーザー名(通常はoracle )に変更します。 |
#! /bin/sh # description: Oracle auto start-stop script. # # Set ORACLE_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORACLE_HOME. ORA_HOME=<Type your ORACLE_HOME in full path here> ORA_OWNER=<Type your Oracle account name here> case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values # Remove "&" if you don't want startup as a background process. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" & touch /var/lock/subsys/dbora ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" & rm -f /var/lock/subsys/dbora ;; esac
注意: このスクリプトで停止できるのは、パスワードが設定されていないOracle Net Listenerのみです。また、リスナー名がデフォルトのLISTENER ではない場合、stop およびstart コマンドでリスナー名を指定する必要があります。
$ORACLE_HOME/bin/lsnrctl {start|stop} listener_name
|
dbora
ファイルのグループをOSDBAグループ(通常はdba
)に変更し、その権限を750に設定します。
# chgrp dba dbora # chmod 750 dbora
次のように、dbora
スクリプトへのシンボリック・リンクを、適切な起動レベルのスクリプト・ディレクトリに作成します。
プラットフォーム | シンボリック・リンク・コマンド |
---|---|
Oracle Solaris |
# ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora # ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora |
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 |
IBM AIX on POWER Systems (64-Bit) |
# ln -s /etc/dbora /etc/rc.d/rc2.d/S99dbora # ln -s /etc/dbora /etc/rc.d/rc0.d/K01dbora |