VMware 2.0 を使用して構築したCentOS5.4(64bit)のサーバーにOracle Database 11g のインストールを行う手順を紹介していきます。
Oracle Database を構築したことがない方、Linux系のサーバの扱いに慣れていない方でも、本ブログの手順どおりに実行すれば、構築できるように一つ一つ順を追って説明して行きます。
前回までに、データベースの構築し、OEMの設定、SQL*Plusの設定を完了しました。
今回は、サーバーを再起動したら、自動でOracle Database が起動するように自動起動の設定を行います。
それでは、今回の手順です。
■ Session.17 Oracle Database Server の自動起動設定
データベース、リスナー、OEMの自動起動/停止の設定を行います。
自動起動設定は、以下の2つのファイルを準備することで行えます。
インスタンスの定義ファイル /etc/oratab
サービスのスクリプト /etc/rc.d/init.d/dbora
まずは、/etc/oratab の編集を行います。
サーバーにrootユーザーでログインします。
<=(1)
[root@CentOS54VM01 ~]$ cd /etc
<=(2)
[root@CentOS54VM01 etc]$ vi oratab
# This file is used by ORACLE utilities.It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator.A new line terminates
# the entry.Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
<=(3)
orcl:/opt/app/oracle/product/11.2.0/dbhome_1:N
(1)カレントディレクトリを変更します。
(2)「vi」コマンドを使用してファイルを変更します。
(3)この行をすぐ上にある注釈に従って変更します。
ファイルの最終行を以下のように変更します。
orcl:/opt/app/oracle/product/11.2.0/dbhome_1:N
↓
<=(1)
orcl:/opt/app/oracle/product/11.2.0/dbhome_1:Y
(1)最終行のNをYにします。
oratab の編集が終わったら、次に/etc/rc.d/init.d/dbora の作成を行います。
こちらは新規(guī)に作成を行います。
dboraの設定は、自由にすることが出來ます。今回のファイル內容は一例です。
<=(1)
vi /etc/rc.d/init.d/dbora
#! /bin/bash
#
# oracle: Starting Oracle database 11g
#
# chkconfig: 345 95 94
# description: Oracle Database Server
# processname: ora_
. /etc/rc.d/init.d/functions
lockfile=/var/lock/subsys/dbora
<=(2)
ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1ORACLE=oracle
case "$1" in
'start')
if [ -f $lockfile ]; then
echo $0 already started.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $lockfile
;;
'stop')
if [ ! -f $lockfile ]; then
echo $0 already stopped.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $lockfile
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $lockfile ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
(1)「vi」コマンドを使用して、ファイルの作成を行います。
(2)ORACLE_HOMEのパスを変更している場合は、変更が必要です。
本サイトの手順通りに構築している場合は、スクリプトはそのままコピーして貼りつけても大丈夫です。
編集が終わったら、権限の変更を行います。
<=(1)
[root@CentOS54VM01 ~]$ chmod 755 /etc/rc.d/init.d/dbora
(1)「chmod」コマンドを使用して、アクセス権限を変更ます。
ここまで完了したら、スクリプトがきちんと動作するか、実行してみます。
<=(1)
[root@CentOS54VM01 ~]# /etc/rc.d/init.d/dbora start
Starting Oracle Database:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 10-4月 -2010 21:36:21
Copyright (c) 1991, 2009, Oracle.All rights reserved.
/opt/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
システム?パラメータ?ファイルは/opt/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.oraです
。
ログ?メッセージを/opt/app/oracle/diag/tnslsnr/CentOS54VM01/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS54VM01)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS54VM01)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 11.2.0.1.0 - Production
開始日 10-4月 -2010 21:36:21
稼働時間 0 日 0 時間 0 分 0 秒
トレース?レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ?ファイル /opt/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
ログ?ファイル /opt/app/oracle/diag/tnslsnr/CentOS54VM01/listener/alert/log.xml
リスニング?エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS54VM01)(PORT=1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
Processing Database instance "orcl": log file /opt/app/oracle/product/11.2.0/dbhome_1/startup.log
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.All rights reserved.
Starting Oracle Enterprise Manager 11g Database Control ....... started.
------------------------------------------------------------------
Logs are generated in directory /opt/app/oracle/product/11.2.0/dbhome_1/CentOS54VM01_orcl/sysman/log
(1)root で作成したスクリプトを引數 「start」で 実行して、動作確認を行います。
今回は、引數「start」で実行していますが、既に各サービスが起動している場合には、引數を「stop」で実行して、停止時の動作を先に確認して下さい。
各種サービスが、正常に「起動/停止」できたらスクリプトは完成です。
oracle でログインし、各種サービスの起動が正常に完了しているか確認します。
それでは、リスナーの確認からです。
[oracle@CentOS54VM01 ~]$ lsnrctl status listener
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 10-4月 -2010 21:39:52
Copyright (c) 1991, 2009, Oracle.All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS54VM01)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 11.2.0.1.0 - Production
開始日 10-4月 -2010 21:36:21
稼働時間 0 日 0 時間 0 分 0 秒
トレース?レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ?ファイル /opt/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
ログ?ファイル /opt/app/oracle/diag/tnslsnr/CentOS54VM01/listener/alert/log.xml
リスニング?エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS54VM01)(PORT=1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
上記のようなログが表示されたら、リスナーは正常に起動しています。
続いて、OEMの起動狀態(tài)を確認します。
[oracle@CentOS54VM01 ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.All rights reserved.
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory /opt/app/oracle/product/11.2.0/dbhome_1/CentOS54VM01_orcl/sysman/log
上記のようなログが表示されたら、OEMは正常に起動しています。
続いて、データベースの起動狀態(tài)を確認します。
[oracle@CentOS54VM01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 土 4月 10 21:40:32 2010
Copyright (c) 1982, 2009, Oracle.All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
に接続されました。
(orcl)SYS>
データベースにも正常に接続出來ました。(アイドリングインスタンスではなく。)
各種サービスが正常に起動出來ていることが確認できましたので、chkconfigコマンドで、サービスの自動起動設定を行います。
設定はrootで行います。
[root@CentOS54VM01 ~]# chkconfig --add dbora
[root@CentOS54VM01 ~]# chkconfig dbora on
[root@CentOS54VM01 ~]# chkconfig --list dbora
<=(1)
dbora 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(1)ランレベル、「2、3、4、5」のステータスが「on」となっていたら、設定は成功です。
さて、長かったですが、ここまででデータベースの自動起動設定は完了です。
最後は、実際にサーバーを再起動して、各種サービスが自動で起動するかの確認します。
<=(1)
[root@CentOS54VM01 ~]# shutdown -r now
(1)shutdown コマンドを「-r」オプションで実行して、サーバーを再起動しています。
再起動が完了したら、再度サービスの起動確認を行って下さい。
起動していれば、自動起動設定は成功です。
ここまでで、今回の手順は完了です。