Oracle Database 管理者リファレンス 10g リリース2(10.2) for UNIX Systems B19278-06 |
|
この章では、Oracle Databaseプロセスを識別する方法と、プロセスを停止および再起動する基本的な方法について説明します。また、Oracle Databaseの起動と停止を自動化する方法についても説明します。次の項目について説明します。
この項では、Oracleプロセスを停止および起動する方法について説明します。次の項目について説明します。
特定のシェル制限がOracleプロセスの実行に必要な値に設定されていることを確認するには、システムがローカル・システムである場合でも、ssh
、rlogin
またはtelnet
コマンドを使用して、プロセスを起動するシステムに接続する必要があります。このコマンドの構文は、次のとおりです。
$ ssh localhost
この項では、Oracle Databaseインスタンスおよび自動ストレージ管理インスタンスを停止および起動する方法について説明します。
Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスを停止するには、次の手順を実行します。
Solarisの場合
$ cat /var/opt/oracle/oratab
その他のオペレーティング・システムの場合
$ cat /etc/oratab
oratab
ファイルには、次のような行が含まれています。これによって、システム上の各データベース・インスタンスまたは自動ストレージ管理インスタンスのSIDおよび対応するOracleホーム・ディレクトリを識別します。
sid:oracle_home_directory:[Y|N]
oraenv
またはcoraenv
スクリプトを実行し、停止するインスタンスの環境変数を設定します。
プロンプトが表示されたら、インスタンスのSIDを指定します。
$ sqlplus /nolog SQL> CONNECT SYS/sys_password as SYSDBA SQL> SHUTDOWN NORMAL
インスタンスの停止後、SQL*Plusを終了できます。
Oracle Databaseインスタンスまたは自動ストレージ管理インスタンスを再起動するには、次の手順を実行します。
ORACLE_SID
およびORACLE_HOME
を設定して、起動するインスタンスのSIDおよびOracleホーム・ディレクトリを識別します。
$ sqlplus /nolog SQL> CONNECT SYS/sys_password as SYSDBA SQL> STARTUP
インスタンスの起動後、SQL*Plusを終了できます。
Oracle Cluster Services Synchronization(CSS)デーモンを停止するには、次のコマンドを実行します。
AIXの場合
/etc/init.cssd stop
その他のプラットフォームの場合
/etc/init.d/init.cssd stop
CSSデーモンを起動するには、次のコマンドを実行します。
$ORACLE_HOME/bin/localconfig reset
このコマンドは、Oracle CSSデーモンを停止して再起動します。
この項では、Oracle Net Listenerを停止および起動する方法について説明します。
Oracle Net Listenerを停止するには、次の手順を実行します。
Mac OS Xの場合
$ ps -ax | grep tnslsnr
その他のプラットフォームの場合
$ 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
このサンプルでは、出力listenername1
とlistenername2
がリスナーの名前です。
ORACLE_HOME
を設定し、停止するリスナーのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/lsnrctl stop listenername
Oracle Net Listenerを起動するには、次の手順を実行します。
ORACLE_HOME
を設定し、起動するリスナーのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/lsnrctl start [listenername]
リスナー名の指定は、リスナー名がデフォルトのリスナー名LISTENER
と異なる場合にのみ必要となります。リスナー名は、listener.ora
ファイルに記述されています。このファイルの内容を表示するには、次のコマンドを実行します。
$ more $ORACLE_HOME/network/admin/listener.ora
この項では、iSQL*Plusを停止および起動する方法について説明します。
iSQL*Plusを停止するには、次の手順を実行します。
ORACLE_HOME
を設定し、iSQL*PlusのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/isqlplusctl stop
iSQL*Plusを起動するには、次の手順を実行します。
ORACLE_HOME
を設定し、起動するiSQL*PlusインスタンスのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/isqlplusctl start
この項では、Oracle Ultra Searchを停止および起動する方法について説明します。
Oracle Ultra Searchを停止するには、次の手順を実行します。
ORACLE_HOME
を設定し、Oracle Ultra SearchのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/searchctl stop
Oracle Ultra Searchを起動するには、次の手順を実行します。
ORACLE_HOME
を設定し、Oracle Ultra SearchのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/bin/searchctl start
この項では、Oracle Enterprise Manager Database Controlを停止および起動する方法について説明します。
Oracle Enterprise Manager Database Controlを停止するには、次の手順を実行します。
oraenv
またはcoraenv
スクリプトを実行し、停止するDatabase Controlで管理されているデータベースの環境を設定します。
$ $ORACLE_HOME/bin/emctl stop dbconsole
Database Controlを起動するには、次の手順を実行します。
ORACLE_SID
およびORACLE_HOME
を設定し、起動するDatabase ControlのSIDおよびOracleホーム・ディレクトリを識別します。
$ $ORACLE_HOME/bin/emctl start dbconsole
Oracle Enterprise Manager Grid Controlを使用して複数のOracle製品を中央から管理する場合は、Oracle Management Agentが各ホスト・システムにインストールされている必要があります。通常、Oracle Management Agentは固有のOracleホーム・ディレクトリにインストールされます。
この項では、Oracle Management Agentを停止および起動する方法について説明します。
Oracle Management Agentを停止するには、次の手順を実行します。
$ ps -ef | grep emagent
このコマンドは、Oracle Management Agentプロセスに関する情報を表示します。このコマンドの出力は、次のようになります。
94248 ?? I 0:00.18 oracle_home/agent/bin/emagent ...
ORACLE_HOME
を設定し、Oracle Management AgentのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/agent/bin/emctl stop agent
Oracle Management Agentを起動するには、次の手順を実行します。
ORACLE_HOME
を設定し、Oracle Management AgentのOracleホーム・ディレクトリを指定します。
$ $ORACLE_HOME/agent/bin/emctl start agent
Oracle Databaseは、システムの起動時に自動的に起動し、停止時に自動的に停止するようにシステムを構成することをお薦めします。データベースの起動と停止を自動化することによって、データベースの不正な停止を防ぐことができます。
データベースの起動と停止を自動化するには、$ORACLE_HOME/bin
ディレクトリにあるdbstart
およびdbshut
スクリプトを使用します。これらのスクリプトは、oratab
ファイル内の同じエントリを参照します。したがって、同じデータベース・セットに適用されます。たとえば、dbstart
スクリプトによって、sid1
、sid2
およびsid3
を自動的に起動し、dbshut
スクリプトによって、sid1
のみを停止することはできません。ただし、dbstart
スクリプトがまったく使用されていない場合は、dbshut
スクリプトを使用してデータベース・セットの停止を指定することはできます。これを実行するには、システムの停止ファイルにdbshut
エントリを追加し、システムの起動ファイルからdbstart
エントリを除外します。
dbstart
およびdbshut
スクリプトを使用してデータベースの起動と停止を自動化するには、次の手順を実行します。
root
ユーザーでログインします。
oratab
ファイルを開きます。
# vi /etc/oratab
oratab
ファイル内のデータベース・エントリは、次の形式で表示されます。
SID:ORACLE_HOME:{Y|N}
この例のY
またはN
は、スクリプトでデータベースの起動または停止を実行するかどうかを指定します。最初に、停止と起動を自動化するデータベースごとに、データベースのインスタンス識別子(SID)を検索します。これは、最初のフィールドのSID
で識別されます。次に、最後のフィールドをそれぞれYに変更します。
/Library/StartupItems/Oracle
ディレクトリを作成し、ディレクトリをこれに変更します。
# mkdir -p /Library/StartupItems/Oracle # cd /Library/StartupItems/Oracle
Oracle
という起動スクリプトを作成します。
#!/bin/bash # source the common startup script . /etc/rc.common # Change the value of ORACLE_HOME to specify the correct Oracle home # directory for the installation ORACLE_HOME=/Volumes/u01/app/oracle/product/10.2.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 export ORACLE_HOME PATH # Set shell limits for the Oracle Database ulimit -c unlimited ulimit -d unlimited ulimit -s 65536 StartService() { if [ -f $ORACLE_HOME/bin/tnslsnr ] ; then ConsoleMessage "Starting Oracle Net" su $ORACLE -c "$ORACLE_HOME/bin/lsnrctl start" fi ConsoleMessage "Starting Oracle Databases" su $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" } StopService() { ConsoleMessage "Stopping Oracle Databases" su $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" if [ -f $ORACLE_HOME/bin/tnslsnr ] ; then ConsoleMessage "Stopping Oracle Net" su $ORACLE -c "$ORACLE_HOME/bin/lsnrctl stop" fi } RestartService() { StopService StartService } RunService "$1"
StartupParameters.plist
という起動項目パラメータ・リスト・ファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Description</key> <string>Oracle Database Startup</string> <key>Provides</key> <array> <string>Oracle Database</string> </array> <key>Requires</key> <array> <string>Disks</string> </array> <key>Uses</key> <array> <string>Disks</string> <string>Network</string> <string>NFS</string> </array> <key>OrderPreference</key> <string>Late</string> </dict> </plist>
# chown root:wheel * # chmod 700 *
dbstart
およびdbshut
スクリプトを使用してデータベースの起動と停止を自動化するには、次の手順を実行します。
root
ユーザーでログインします。
oratab
ファイルを編集します。ファイルを開くには、次のいずれかのコマンドを使用します。
oratab
ファイル内のデータベース・エントリは、次の形式で表示されます。
SID:ORACLE_HOME:{Y|N|W}
この例の値Y
およびN
は、スクリプトでデータベースの起動または停止を実行するかどうかを指定します。最初に、停止と起動を自動化するデータベースごとに、データベースのインスタンス識別子(SID)を判別します。これは、最初のフィールドのSID
で識別されます。次に、最後のフィールドをそれぞれY
に変更します。
dbstart
を設定すると、自動ストレージ管理インストールを使用している単一インスタンスのデータベースの起動を自動化できます。自動ストレージ管理はOracle Clusterwareによって自動的に起動されます。これは、自動ストレージ管理クラスタのデフォルトの動作です。これを実行する場合は、データベースおよび自動ストレージ管理インストールのoratab
エントリを変更して、3番目のフィールドに値W
およびN
をそれぞれ設定する必要があります。これらの値は、自動ストレージ管理インスタンスの起動後にのみ、dbstart
がデータベースを自動的に起動するように指定します。
プラットフォーム | 初期化ファイルのディレクトリ |
---|---|
AIX |
|
LinuxおよびSolaris |
|
HP-UXおよびTru64 UNIX |
|
dbora
というファイルを作成し、次の行をこのファイルにコピーします。#! /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/10.2.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') if [ "$PLATFORM" = "Linux" ] ; then touch /var/lock/subsys/dbora fi $ORACLE_HOME/bin/dbstart $ORACLE_HOME & ;; 'stop') $ORACLE_HOME/bin/dbshut $ORACLE_HOME & ;; *) echo "usage: $0 {start|stop}" exit ;; esac # exit
dbora
ファイルのグループをOSDBAグループ(通常はdba
)に変更し、その権限を750に設定します。
# chgrp dba dbora # chmod 750 dbora
dbora
スクリプトへのシンボリック・リンクを、適切な起動レベルのスクリプト・ディレクトリに作成します。