| 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 |