SAP ERP 6.0 EHP4 on Oracle RAC (25) [SAP]
SAP ERP 6.0 EHP4 on Oracle RAC です。
前回から Oracle RAC環境に ERS をインストールしています。
SWPMで ERS をインストールしましたが、このバージョンのSWPMでは、かなり余分な事をしてくれるので、リカバリしないとなりません。
そして ERS の確認をします。
・$ORACLE_HOME のオーナー修正
RAC環境では ora<sid> のユーザは無いのに、$ORACLE_HOME ここでは /oracle/E64 配下のフォルダとファイルのオーナーを ora<sid> に変更されてしまいます。
これが原因で oracle が起動出来なくなります。
chown -R oracle:oinstall /oracle/E64 でオーナーとグループを修正します。
$ORACLE_HOME/bin には root オーナーだったり、特別な s bit権限を持ったファイルがあったはずなので、それを修正します。
cd $ORACLE_HOME/bin
chown root:oinstall extjob jssu nmb nmhs nmo oradism
chmod 4750 extjob jssu oradism
chmod 4710 nmb nmhs nmo
chmod 6711 oracle oracleO emtgtctl2
ERSでは oracle にアクセスしないのに、なぜこんな余分な事を…
・環境変数修正
RAC環境の <sid>adm ユーザではRACのインスタンス番号を意識する必要があり、これを環境変数 $THREAD にて設定しています。
THREAD=001 等といった具合で、SIDに付いて、SID=E64001 といった感じでインスタンス毎の識別に使用されます。
しかし、この環境変数 $THREAD がRACを意識していない ERS のインストールで変更されてしまいます。
THREAD=NOPS になってしまうので、ログオンスクリプトの .sapenv_<ホスト名>.csh 及び .sapenv_<ホスト名>.sh の該当箇所を修正します。
その他、PATH等、.sapenv_<ホスト名>.csh/.sh に独自に追加した環境変数も元に戻っていますので再度追加します。
・ERS確認
エンキュー=ロックテーブルの確認は Tr.SM12 にて確認出来ます。
SMLG,RZ04,DB13,SCC4等は複数のセッションで更新が入らない様にロックがかかる様にロックテーブルに登録して制御しています。
上記トランザクションを起動した時のSM12の画面です。
この状態で、ロックテーブルを持つ ASCS を再起動すると、ロックテーブルはクリアされてしまいます。
ERS が無い状態ではクラスタでフェイルオーバーすると、ロックテーブルは維持出来ずにクリアされてしまいます。
しかしながら、ERS がインストールされている環境では、フェイルオーバーしても、生きている ERS からロックテーブルのコピーからコピーして復元するので、ロックテーブルが維持されます。
この後もSM12でロックテーブルが維持されているのが確認出来ます。
前回から Oracle RAC環境に ERS をインストールしています。
SWPMで ERS をインストールしましたが、このバージョンのSWPMでは、かなり余分な事をしてくれるので、リカバリしないとなりません。
そして ERS の確認をします。
・$ORACLE_HOME のオーナー修正
RAC環境では ora<sid> のユーザは無いのに、$ORACLE_HOME ここでは /oracle/E64 配下のフォルダとファイルのオーナーを ora<sid> に変更されてしまいます。
これが原因で oracle が起動出来なくなります。
chown -R oracle:oinstall /oracle/E64 でオーナーとグループを修正します。
$ORACLE_HOME/bin には root オーナーだったり、特別な s bit権限を持ったファイルがあったはずなので、それを修正します。
cd $ORACLE_HOME/bin
chown root:oinstall extjob jssu nmb nmhs nmo oradism
chmod 4750 extjob jssu oradism
chmod 4710 nmb nmhs nmo
chmod 6711 oracle oracleO emtgtctl2
ERSでは oracle にアクセスしないのに、なぜこんな余分な事を…
・環境変数修正
RAC環境の <sid>adm ユーザではRACのインスタンス番号を意識する必要があり、これを環境変数 $THREAD にて設定しています。
THREAD=001 等といった具合で、SIDに付いて、SID=E64001 といった感じでインスタンス毎の識別に使用されます。
しかし、この環境変数 $THREAD がRACを意識していない ERS のインストールで変更されてしまいます。
THREAD=NOPS になってしまうので、ログオンスクリプトの .sapenv_<ホスト名>.csh 及び .sapenv_<ホスト名>.sh の該当箇所を修正します。
その他、PATH等、.sapenv_<ホスト名>.csh/.sh に独自に追加した環境変数も元に戻っていますので再度追加します。
・ERS確認
エンキュー=ロックテーブルの確認は Tr.SM12 にて確認出来ます。
SMLG,RZ04,DB13,SCC4等は複数のセッションで更新が入らない様にロックがかかる様にロックテーブルに登録して制御しています。
上記トランザクションを起動した時のSM12の画面です。
この状態で、ロックテーブルを持つ ASCS を再起動すると、ロックテーブルはクリアされてしまいます。
ERS が無い状態ではクラスタでフェイルオーバーすると、ロックテーブルは維持出来ずにクリアされてしまいます。
しかしながら、ERS がインストールされている環境では、フェイルオーバーしても、生きている ERS からロックテーブルのコピーからコピーして復元するので、ロックテーブルが維持されます。
この後もSM12でロックテーブルが維持されているのが確認出来ます。
コメント 0