SSブログ

SAP ERP 6.0 EHP4 on Oracle RAC ⑬ [SAP]

SAP ERP 6.0 EHP4 on Oracle RAC です。
前々回から改めて sapinst で Database Instance のインストールを開始しています。
Database Instance の入力を全て完了して坦々とインストールが進行するところまで来て、Create database でエラーとなりました。
54m.jpg

・Database Istance インストールの続き2
今回のインストールは ERP6.0 EHP4 の Database Instance Oracle なので、インストールのログは以下のフォルダに出力されます。
/tmp/sapinst_instdir/BS2008/ERP604/AS-ABAP/ORA/DISTRIBUTED/DB
そこにある sapinst.log がメインのログになります。
sapinst.log から今回は srvctl.log にさらに詳細なログが出力されていました。
srvctl.log は Oracle RAC でデータベースの起動,停止,DBの作成等で使用するコマンド srvctl のログです。
実はこの srvctl はシェルで出来ている様で、そのシェルの中で起動されているコマンド dirname や uname が見つからないという事らしいです。
RHEL6 では /usr/bin や /bin に PATH が通っていれば見つからないという事はないはずなので、基本的なコマンドへのパスが通っていない様です。
sapinst が srvctl を呼び出す時に PATH を渡していない様です。
55m.jpg
いつかきっと直るのでしょうが、今すぐ sapinst を直す事は難しいので、当面の対応としてテキストであるシェルの srvctl の方に PATH を追加する事にします。
srvctl は $ORACLE_HOME/bin にありますが、Database Instance と Oracle Grid の両方にあります。sapinst で使用するのは Database Instance の方です。
56m.jpg
srvctl に PATH=/bin:/usr/bin を追加します。
57m.jpg
この状態で sapinst を Retry で再開します。
59m.jpg
その後 Import ABAP で暫く時間がかかってインストールが完了します。
61m.jpg

・Database Istance インストール後処理
後処理というか、不足部分の補足と注意事項です。
SID や ORACLE_HOME 等は環境に応じて読み替えて下さい。

[ログインスクリプト]
oracle ユーザでログオンした時に ORACLE_HOME とか ORACLE_SID といった環境変数はセットされません。
Oracleを操作する時には環境変数が必要となるので、予めスクリプトを用意しておくと良いと思います。

#!/bin/csh
#ASMノード1用環境変数設定 asmenv.csh
setenv ORACLE_SID +ASM1
setenv ORACLE_HOME /oracle/GRID/112
setenv PATH "$PATH":"$ORACLE_HOME"/bin

#!/bin/csh
#E64ノード1用環境変数設定 e64env.csh
setenv ORACLE_SID E64001
setenv ORACLE_HOME /oracle/E64/112
setenv PATH "$PATH":"$ORACLE_HOME"/bin

それぞれを必要に応じてロードします。
source e64env.csh

[データベースの起動/停止]
環境変数を設定設定後に実行します。
ステイタスの確認
srvctl status database -d E64
起動
srvctl start database -d E64
停止
srvctl stop database -d E64

sapinst で Database Instance をインストール直後は 非クラスタモードで Oracle が起動されている様なので、status を実行しても not running になってます。
ps -ef | grep E64 でプロセスの稼働を確認出来ます。ps -ef | grep ora だと Grid の +ASM インスタンスも出てくるのでまぎわらしい。
sapinst で Database Instance をインストール直後は稼働しているノードで以下を実行して一旦 Database Instance を停止します。

setenv ORACLE_SID E64
setenv ORACLE_HOME /oracle/E64/112
setenv PATH "$PATH":"$ORACLE_HOME"/bin
sqlplus / as sysdba
SQL>shutdown
SQL>exit

[ノード2の調整]
Oracle のインストール先とORACLE_HOMEを別にしたため、sapinst を実行していないノード2以降のノードにORACLE_HOME配下にOracleの実体がなく、Oracleを起動しようとしても起動出来ない状態になってます。
ノード2以降のノードで以下を実行してORACLE_HOME配下にOracleの実体が見れる様にします。
cd /oracle/E64
rm -r 112
ln -s 11204 112

先の環境変数を設定後、Oracleを起動します。
ノード2では ORACLE_SID の末尾が 1 → 2 になります。
srvctl start database -d E64

[アーカイブモード変更]
アーカイブモードへの変更は mount モードで行いますが、RACでは srvctl の database 起動オプションを付けて mount モードで起動します。

#状態チェック
srvctl status database -d E64
#DB停止
srvctl stop database -d E64
srvctl status database -d E64
#マウントモードで起動
srvctl start database -d E64 -o mount
srvctl status database -d E64

sqlplus / as sysdba
SQL> --アーカイブモード変更
SQL> alter database noarchivelog;
SQL> --アーカイブモード確認
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination +ARCH/e64/oraarch
Oldest online log sequence 253
Current log sequence 256
SQL> exit

#DB停止
srvctl stop database -d E64
srvctl status database -d E64
#DB起動
srvctl start database -d E64
srvctl status database -d E64

また、RACの全ノードが起動可能な状態でなけれはなりません。ノードの一部が壊れて起動出来ない状態ではアーカイブモード/ノーアーカイブモードの変更は出来ません。

[パスワードファイル作成]
Oracleユーザが SYSDBA,SYSOPER,SYSASM権限でログオンする時に必要になるファイルです。
SAPのBRTOOLSでは system ユーザに SYSDBA と SYSOPER が必要になります。
ファイルの格納場所は $ORACLE_HOME/dbs で、ファイル名は orapw<ORACLE_SID> になります。
RACの場合、sapinst ではなぜか作成されず、パスワードファイル名もORACLE_SIDに001や002が含まれるためノード毎に異なるという特徴があります。
最初に orapwd コマンドでノード1でパスワードファイルを作成します。このコマンドの実行時に SYSユーザのパスワードが必要です。ORACLE_SID は E64001 になります。
orapwd file=$ORACLE_HOME/dbs/orapwE64001

system ユーザに権限を付与します。
sqlplus / as sysdba
SQL> grant sysdba to system;
SQL> grant sysoper to system;
SQL> exit

Oracleを停止し、パスワードファイルを各ノードへコピーします。
ノード毎に ORACLE_SID が異なるので名前を変えてコピーします。
srvctl stop database -d E64
scp $ORACLE_HOME/dbs/orapwE64001 ノード2:$ORACLE_HOME/dbs/orapwE64002
srvctl start database -d E64

[初期化パラメータファイル]
init>SID<.ora と spfile>SID<.ora です。
通常は $ORACLE_HOME/dbs に格納しますが、RAC では ASMの共有部 +DATA/>SID< に格納します。
そのため、以下はNGです。これだと spfile は $ORACLE_HOME/dbs に作成されてしまいます。
create spfile from pfile='xxxxxx';
なので、以下の様に ASM上に作成する様にファイルの場所を指定します。
create spfile='+DATA/>SID</spfile>SID<.ora' from pfile='xxxxxx';

ちなみに sapinst で Database Instance をインストールした直後の $ORACLE_HOME/dbs/init>SID<.ora は以下の様になってます。
#Generate initsid.ora for ASM spfile
spfile = (+DATA/E64/spfileE64.ora)

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

SAP ERP 6.0 EHP4 on ..新宿御苑 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。