SSブログ

SAP ERP 6.0 EHP4 on Oracle RAC ⑯ [SAP]

SAP ERP 6.0 EHP4 on Oracle RAC です。
前回から Oracle Clusterware を使用した ASCS のインストールを行っています。
前回最後は ASCS のインストールがエラーになったところで終わっています。
29m.jpg
これは仮想ホスト名でインストールを開始したにもかかわらず、仮想ホストのIPがインストールしているサーバに割り当たっていない事が原因です。
このIPはクラスタの仮想IPになる予定で、SAPCTL を使ってこれから Oracle Clasterware で仮想IPを作る予定です。

・SAPCTLインストール
SAPNote000149627 に添付する sapctl_v7.tgz をダウンロードして解凍します。
tar -xvf sapctl_v7.tgz
解凍したもののなかに ガイド sapctl_v7.pdf があるので、これを見つつインストールします。

まずフォルダ作成
# mkdir /usr/sap/sapctl
# mkdir /usr/sap/sapctl/bin
# mkdir /usr/sap/sapctl/log
# mkdir /usr/sap/sapctl/perl
フォルダの下で解凍します。
# cd /usr/sap/sapctl/bin
# tar -xvf sapctl_v7.tgz
Oracle GRID Home (今回は/oracle/GRID/112) のツールへのリンクの作成とコピーをします。
# ln -s <GRID HOME>/bin/crsctl /usr/sap/sapctl/bin/crsctl
# ln -s <GRID HOME>/bin/crsctl.bin /usr/sap/sapctl/bin/crsctl.bin
# cp -r <GRID HOME>/perl/* /usr/sap/sapctl/perl
SAP管理者に権限を割り当てます。
# chown -R <sid>adm:sapsys /usr/sap/sapctl
# chmod -R 775 /usr/sap/sapctl
33.JPG
このSAPCTL で Oracle Clasterware に SAP用の仮想IP等のリソースを作成したり、SAPの起動/停止を行いますが、作成は root で、起動/停止は SAP管理者<sid>adm で行います。

・SAPリソース作成
root で実施します。
今回の流れだとASCSが中途半端に起動されているので停止します。
# su - <sid>adm
> sapcontrol -nr 00 -function Stop
> sapcontrol -nr 00 -function StopService
> exit
インストールした SAPCTLにPATHを通します。
# export PATH="$PATH":/usr/sap/sapctl/bin
以下の様に指定して作成しますが、ASCSの場合、なぜか必ずERSも指定しないとクラスタリソースの作成出来ません。
ERSはローカルのサービスなので各ノードにインストールして良くてクラスタ化する必要はなく、ここで指定する意味も分かりません。
今回はERSはまだインストールしてませんが、特にエラーにはなりません。無駄なクラスタリソースが出来るだけです。
ASCSはインストールしていないとエラーになります。
# sapctl create -sapsid E64 -if eth0 -nm 255.255.255.0 -net 192.168.240.0 -nodes atlas,daphnis -abapvip 192.168.240.73 -abapmsport 3600 -abapenq ASCS00 -abaprep ERS10
35.JPG
状態の確認は以下になりますが…
# sapctl status all -sapsid <SID>
あんまり詳しくないので、Oracle Clusterware のリソースの状態を表示する以下が良いと思います。
# export PATH="$PATH":<GRID HOME>/bin
# crsctl status resource
resource.jpg

・ASCS後処理
SWPMでASCSをインストールしたノード以外のノードでASCSを起動出来る様にするために、いくつかのファイルをコピーします。
# scp -p /usr/sap/sapservices <ノード2>:/usr/sap/sapservices
# scp -p /etc/services <ノード2>:/etc/services

ASCSのスタートプロファイルを調整します。
/usr/sap/<SID>/SYS/profile にある START_ASCSnn_<仮想サーバ> の Restart_Program_nn を Stat_Program_nn に変更します。
今回は以下を変更しました。
Restart_Program_00 = local $(_MS) pf=$(_PF)

Start_Program_00 = local $(_MS) pf=$(_PF)

Restart_Program_01 = local $(_EN) pf=$(_PF)

Start_Program_01 = local $(_EN) pf=$(_PF)

SAPの起動/停止は<sid>admで行うので、SAPCTLへのPATHの追加をします。
<sid>adm のホームディレクトリにある、.sapenv_<ホスト名> に追加します。
特に決まりがある訳でもないので以下の場所に追加しました。
set _SAPCTL=/usr/sap/sapctl/bin
set _DEF_EXE="$_DEF_EXE1 $_DEF_EXE2 $_SAPCTL"
sapenv.jpg
全ノードで実施します。

SWPMのsapinstが途中だったので、完了させたい場合は以下を実施します。
# su - <sid>adm
> crsctl start resource sap.<SID>.startsrv -n <ノード1>
> exit
sap.<SID>.startsrv と sap.<SID>.abapvip がノード1でONLINEになっているのを確認します。
# crsctl status resource
SWPMがエラーのまま残っている場合は
Retry を実行します。
37m.jpg
終了させていた場合は sapinst を起動して、
# sapinst SAPINST_USE_HOSTNAME=<仮想ASCSホスト>
前回と同じメニューのASCS Instance を選択します。
15m.jpg
Connect with the old option を選択します。
sapinst_restart.jpg
完了します。
38m.jpg
クラスタでない状態で起動しているので停止させます。
# su - <sid>adm
> sapcontrol -nr nn -function Stop

・ASCS起動/停止/フェイルオーバー
起動は以下になります。
# su - <sid>adm
> sapctl start abapenq -sapsid <SID>
停止は以下になります。
停止では startsrv と abapvip は停止されません。
# su - <sid>adm
> sapctl stop abapenq -sapsid <SID>
フェイルオーバーは以下になります。
(ERSが無い場合にフェイルオーバーした場合は、ロックが解除されるので、APサーバは全て再起動させる必要があります。)
# su - <sid>adm
> sapctl relocate -sapsid <SID> -abapenq ASCSnn -to <別ノード>

Oracleの crsctl にはフェイルオーバーというコマンドは無いのですが、リソースの起動ノードの指定は出来ます。
停止して、起動時に別ノードを指定するという操作になる様です。
sapctl のフェイルオーバーは上記で実現している様です。
sapctl には起動時にノードを指定するオプションが無かったり、startsrv だけを指定するオプションが無かったりします。
完全に停止するには以下になります。
# su - <sid>adm
> sapctl stop abapenq -sapsid <SID>
> setenv PATH "$PATH":<GRID HOME>/bin
> crsctl stop resource sap.<SID>.ASCSnn.startsrv
> sapctl stop abapvip -sapsid <SID>
起動は abapenq を起動すると、依存関係で abapvip と startsrv も起動される様です。

起動とフェイルオーバー
起動とフェイルオーバー.jpg
起動後のリソースの状態
リソースの状況.jpg

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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