[[PrimeKarte]] > Oracle Real Application Clusters(RAC)
*目次 [#l5c16d5b]
#contents
*Oracle RACとは [#x551701a]
OracleのDBクラスタです。下記病院で導入しています。&br;
2台のサーバが共通のストレージを参照しているため、片方のサーバがハード障害などで停止した場合も、システムが停止しません。
-市立湖西病院(10gR2)
-榛原総合病院(10gR2)
-菊川市立総合病院(10gR2)
-沼津市立病院(10gR2)
-静岡医療センター(10gR2)
-西脇病院(10gR2)
-焼津市立総合病院(10gR2)
-静岡市立静岡病院(11gR2)
-フジ虎ノ門整形外科病院(11gR2)
*導入 [#fb058a9d]
ストレージの設計・構築からOracleのインストールまでFWESTが担当しています。&br;
西脇病院のみOracleのインストールをSBSが担当しました。
*保守 [#e591f135]
**Oracle10gR2の場合 [#b124fe39]
***Oracleサービスの状態確認方法 [#ab67b8cc]
+telnet(TeraTermなど)でOracleユーザでログインする。
+下記コマンドを実行する。
【コマンド】
/home/oracle/scripts/cstat.ksh
【結果】(***は3桁の病院コード)
HA Resource Target State
----------- ------ -----
ora.srvh***db01.ASM1.asm ONLINE ONLINE on srvh***db01
ora.srvh***db01.LISTENER_SRVH***DB01.lsnr ONLINE ONLINE on srvh***db01
ora.srvh***db01.gsd ONLINE ONLINE on srvh***db01
ora.srvh***db01.ons ONLINE ONLINE on srvh***db01
ora.srvh***db01.vip ONLINE ONLINE on srvh***db01
ora.srvh***db02.ASM2.asm ONLINE ONLINE on srvh***db02
ora.srvh***db02.LISTENER_SRVH***DB02.lsnr ONLINE ONLINE on srvh***db02
ora.srvh***db02.gsd ONLINE ONLINE on srvh***db02
ora.srvh***db02.ons ONLINE ONLINE on srvh***db02
ora.srvh***db02.vip ONLINE ONLINE on srvh***db02
ora.toro.db ONLINE ONLINE on srvh***db02
ora.toro.toro1.inst ONLINE ONLINE on srvh***db01
ora.toro.toro2.inst ONLINE ONLINE on srvh***db02
ora.toro.toro_balance.cs ONLINE ONLINE on srvh***db02
ora.toro.toro_balance.toro1.srv ONLINE ONLINE on srvh***db01
ora.toro.toro_balance.toro2.srv ONLINE ONLINE on srvh***db02
ora.toro.toro_node01.cs ONLINE ONLINE on srvh***db01
ora.toro.toro_node01.toro1.srv ONLINE ONLINE on srvh***db01
ora.toro.toro_node02.cs ONLINE ONLINE on srvh***db02
ora.toro.toro_node02.toro2.srv ONLINE ONLINE on srvh***db02
*異常がある場合、StateがOFFLINEなどになる
***Oracle起動手順 [#t2a6d44d]
-両方のサーバを停止させた場合、再起動してもサービスは自動起動しません。手動で起動させる必要があります。
+telnet(TeraTermなど)でOracleユーザでログインする。
+Oracleサービスの状態確認方法で、Oracleサービスの起動を確認する。
+インスタンス(ora.toro.toro*.inst)まで起動したら、下記コマンドを実行する。
【コマンド】
srvctl start service -d toro -s toro_balance,toro_node01,toro_node02
【結果】
クライアントからOracleに接続できるようになる
+Oracleサービスの状態確認方法で、Oracleサービスが全て起動したことを確認する。
***Oracle両ノード停止手順 [#bd4552d1]
-両方のサーバを停止させる場合、クラスタを停止させないとサーバが再起動してきます。
+telnet(TeraTermなど)でOracleユーザでログインする。
□【片方!!】のノードで以下を実施
【コマンド】(***は3桁の病院コード 例:012)
1.サービス停止(oracleユーザ)
srvctl stop service -d toro -s toro_balance,toro_node01,toro_node02
2.インスタンス停止(oracleユーザ)
srvctl stop instance -d toro -i toro2
srvctl stop instance -d toro -i toro1
3.データベース停止(oracleユーザ)
srvctl stop database -d toro
4.ASM停止(oracleユーザ)
srvctl stop asm -n srvh***db02
srvctl stop asm -n srvh***db01
5.listener,gsd,ons,vip停止(oracleユーザ)
srvctl stop nodeapps -n srvh***db02
srvctl stop nodeapps -n srvh***db01
□【両方!!】のノードで以下を実施
1.rootユーザに切り替える
su -
2.クラスタ停止
crsctl stop crs
3.サーバシャットダウン
shutdown -h now
***Oracle片ノード停止手順 [#cc5241bd]
-メモリの修理などで、片方のサーバをを停止させる時に、サーバが勝手に再起動してこないようにする
+telnet(TeraTermなど)でOracleユーザでログインする。
例)DBサーバ片ノード(node1)を停止する場合
□node1で以下を実施
【コマンド】(***は3桁の病院コード 例:012)
1.node1からnode2へサービス(toro_node01)を移動(oracleユーザ)
srvctl relocate service -d toro -s toro_node01 -i toro1 -t toro2
2.インスタンス停止(oracleユーザ)
srvctl stop instance -d toro -i toro1
3.ASM停止(oracleユーザ)
srvctl stop asm -n srvh***db01
4.listener,gsd,ons,vip停止(oracleユーザ)
srvctl stop nodeapps -n srvh***db01
5.oracleクラスタ停止(rootユーザ)
crsctl stop crs
6.サーバシャットダウン
shutdown -h now
----【メモリ交換作業など】----
□サーバ起動後、node1で以下を実施
【コマンド】
7.node2へ移動していたtoro_node01をnode1へ戻す
srvctl relocate service -d toro -s toro_node01 -i toro2 -t toro1
**Oracle11gR2の場合 [#z69d52a6]
***Oracleサービスの状態確認方法 [#kc1aef38]
+telnet(TeraTermなど)でOracleユーザでログインする。
+下記コマンドを実行する。
【コマンド】
/data/u0/u01/app/11.2.0/grid/bin/crsctl status resource -t
【結果】(***は3桁の病院コード)
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH_DG.dg
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.DATA_DG.dg
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.LISTENER.lsnr
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.OCR_DG.dg
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.REDO1_DG.dg
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.REDO2_DG.dg
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.asm
ONLINE ONLINE srvh041db01 Started
ONLINE ONLINE srvh041db02 Started
ora.gsd
OFFLINE OFFLINE srvh041db01
OFFLINE OFFLINE srvh041db02
ora.net1.network
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.ons
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
ora.registry.acfs
ONLINE ONLINE srvh041db01
ONLINE ONLINE srvh041db02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE srvh041db02
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE srvh041db01
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE srvh041db01
ora.cvu
1 ONLINE ONLINE srvh041db01
ora.oc4j
1 OFFLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE srvh041db02
ora.scan2.vip
1 ONLINE ONLINE srvh041db01
ora.scan3.vip
1 ONLINE ONLINE srvh041db01
ora.srvh041db01.vip
1 ONLINE ONLINE srvh041db01
ora.srvh041db02.vip
1 ONLINE ONLINE srvh041db02
ora.toro.db
1 ONLINE ONLINE srvh041db01 Open
2 ONLINE ONLINE srvh041db02 Open
ora.toro.toro_balance.svc
1 ONLINE ONLINE srvh041db01
2 ONLINE ONLINE srvh041db02
ora.toro.toro_node01.svc
1 ONLINE ONLINE srvh041db01
ora.toro.toro_node02.svc
1 ONLINE ONLINE srvh041db01
1 ONLINE ONLINE srvh041db02
*異常がある場合、StateがOFFLINEなどになる
+ノード2が停止している場合はこんな感じ
[oracle@srvh025db01a ~]$ /data/u0/u01/app/11.2.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH_DG.dg
ONLINE ONLINE srvh025db01a
ora.DATA_DG.dg
ONLINE ONLINE srvh025db01a
ora.LISTENER.lsnr
ONLINE ONLINE srvh025db01a
ora.OCR_DG.dg
ONLINE ONLINE srvh025db01a
ora.REDO1_DG.dg
ONLINE ONLINE srvh025db01a
ora.REDO2_DG.dg
ONLINE ONLINE srvh025db01a
ora.asm
ONLINE ONLINE srvh025db01a Started
ora.gsd
OFFLINE OFFLINE srvh025db01a
ora.net1.network
ONLINE ONLINE srvh025db01a
ora.ons
ONLINE ONLINE srvh025db01a
ora.registry.acfs
ONLINE ONLINE srvh025db01a
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE srvh025db01a
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE srvh025db01a
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE srvh025db01a
ora.cvu
1 ONLINE ONLINE srvh025db01a
ora.oc4j
1 OFFLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE srvh025db01a
ora.scan2.vip
1 ONLINE ONLINE srvh025db01a
ora.scan3.vip
1 ONLINE ONLINE srvh025db01a
ora.srvh025db01a.vip
1 ONLINE ONLINE srvh025db01a
ora.srvh025db02a.vip
1 ONLINE INTERMEDIATE srvh025db01a FAILED OVER
ora.toro.db
1 ONLINE ONLINE srvh025db01a Open
2 ONLINE OFFLINE Instance Shutdown
ora.toro.toro_balance.svc
1 ONLINE ONLINE srvh025db01a
2 ONLINE OFFLINE
ora.toro.toro_node01.svc
1 ONLINE ONLINE srvh025db01a
ora.toro.toro_node02.svc
1 ONLINE ONLINE srvh025db01a
[oracle@srvh025db01a ~]$
***Oracle起動手順 [#ua3322eb]
-基本自動起動です。手動で起動しなければならない場合
-telnet(TeraTermなど)でOracleユーザでログインする。
1.OS起動(各ノード同時ではなく、順番に起動するのが推奨)
2.CRSデーモンまで自動起動されます。
3.データベースの起動(ノード1[選択した1ノード] ※oracle、またはgridユーザで実行
$ srvctl start database -d toro
4.CRSサービスの移動(ノード1[選択した1ノード]から実行する)
※DBインスタンスの起動順序によって、デフォルトとは異なるノードに
CRSサービスが配置される場合があります。
そのため、「優先/使用可能」構成に合わせて、CRSサービスをデフォルトの位置に移動する。
例)サービスtoro_node2をtoro1からtoro2へ移動する
$ srvctl relocate service -d toro -s toro_node02 -i toro1 -t toro2
-Oracleサービスの状態確認方法で、Oracleサービスが全て起動したことを確認する。
***Oracle両ノード停止手順 [#t826afe5]
-両方のサーバを停止させる場合、クラスタを停止させないとサーバが再起動してきます。
-telnet(TeraTermなど)でOracleユーザでログインする。
1.CRSサービスの停止(ノード1[選択した1ノード]から実行する) ※oracle、またはgridユーザで実行
$ srvctl stop service -d toro -s toro_balance,toro_node01,toro_node02
2.データベースの停止(ノード1[選択した1ノード]から実行する) ※oracle、またはgridユーザで実行
$ srvctl stop database -d toro
3.CRSデーモンの停止("各ノード" からrootユーザで実行する)
# /data/u0/u01/app/11.2.0/grid/bin/crsctl stop crs
★CRSデーモンを停止することにより、"上記以外のリソース"が全て停止する。
ここで、asmやscanなどのリソースも停止されます。
※1〜3の手順は、下記スクリプトを用意してますので代用可能です。(oracleユーザで実行)
ノード1:/etc/init.d/dbora1 stop
ノード2:/etc/init.d/dbora2 stop
4.OSシャットダウン(各ノード)
# shutdown -h now
***Oracle片ノード(node2)停止手順 [#q9ab363e]
telnet(TeraTermなど)でOracleユーザでログインする。
1.サービスtoro_node2をtoro2からtoro1へ移動する
$ srvctl relocate service -d toro -s toro_node02 -i toro2 -t toro1
2.CRSデーモンの停止("node2" からrootユーザで実行する)
# /data/u0/u01/app/11.2.0/grid/bin/crsctl stop crs
3.OSシャットダウン(node2)
# shutdown -h now