(作業中)
1.概要
一般的なクラスタソフトウェアでは、
仮想IPやデータベースアプリケーションなどを
リソースグループとしてまとめ、本番サーバに障害が発生した場合に
待機サーバへリソースグループ単位でフェイルオーバーします。
Netvaultは、サポートされているフェイルオーバークラスタ構成では
クラスタの仮想IPに対してNetVault仮想クライアントを構成します。
NetVault仮想クライアントが実際に稼働しているのが本番サーバか待機サーバかをチェックし
稼働しているサーバ側のNetVaultクライアントとアプリケーションプラグインにより
バックアップを継続するような仕組みになります。
Oracle SEHAでは、
クラスタソフトウェアは、Grid Infrastructureの1コンポーネントのOracle ClusterWere(OCW)になります。
仮想IPは、Grid InfrastructureのVIPを利用しますが、Grid Infrastructureには2種類のVIP(ノードVIPとSCAN VIP)があります。
ノードVIPは各ノードに構成され、
SCAN(Single Client Access Name) VIPはクラスタのいずれかのノードで起動しデフォルトでは3つ構成します。
Oracle SEHAでは、
一般的なクラスタソフトとは異なり、リソースグループの概念がありません。
VIPとデータベースはリソースグループとしてまとめることはできません。
それぞれ独立してフェイルオーバー・移動します。
たとえば、srvctlコマンドインタフェースで、データベースだけ待機サーバへ移動することもできます。
NetVaultの仮想クライアントは、一般的なクラスタソフトのリソースグループ単位のフェイルオーバーを想定して設計されているため
Oracle SEHAの、VIPとデータベースが独立して移動するパターンに対応できません。
上述のOracle SEHAのVIP(各ノードのVIPとデフォルト3つのSCAN VIP)のどれかを仮想クライアントとして構成した場合、
そのVIPとバックアップ対象のデータベースが同一のノードで動作していればバックアップは可能ですが
VIPとデータベースが別のノードで動作している場合、バックアップは失敗します。
2.構成
3.テスト
3-1 NetVault仮想クライアントの作成
Oracle SEHAのSCAN VIPを、仮想クライアントとして登録します。
3-2 本番サーバでバックアップジョブ実行
SCAN VIPとOracleインスタンスが本番サーバで稼働していることを確認 | |
[oracle@o83o198p ~]$ srvctl status scan -all SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node o83o198p [oracle@o83o198p ~]$ srvctl status database -d orcl Instance orcl is running on node o83o198p |
|
バックアップジョブを実行すると、SCANVIPが本番サーバo83o198pで稼働していることを確認後、本番サーバo83o198pのNetVaultクライアントでジョブが実行される | |
ジョブは正常終了する |
3-3 待機サーバにVIPとDBフェイルオーバーしてバックアップジョブ実行
フェイルオーバーはコマンド手動実行srvctl relocateまたは本番サーバ停止 [oracle@o83o198p ~]$ srvctl relocate database -db orcl -node o83o198s [oracle@o83o198p ~]$ srvctl relocate scan -scannumber 1 -node o83o198s |
|
SCAN VIPとOracleインスタンスが待機サーバで稼働していることを確認 | |
[oracle@o83o198s ~]$ srvctl status scan -all SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node o83o198s [oracle@o83o198s ~]$ srvctl status database -d orcl Instance orcl is running on node o83o198s |
|
バックアップジョブを実行すると、SCANVIPが本番サーバo83o198sで稼働していることを確認後、本番サーバo83o198sのNetVaultクライアントでジョブが実行される | |
|
3-4 待機サーバにVIP、本番サーバにDBフェイルオーバーしてバックアップジョブ実行
3-3の状態からOracleインスタンスのみコマンド手動実行srvctl relocate [oracle@o83o198p ~]$ srvctl relocate database -db orcl -node o83o198p |
|
SCAN VIPは待機サーバ、Oracleインスタンスが本番サーバで稼働していることを確認 | |
[oracle@o83o198p ~]$ srvctl status scan -all SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node o83o198s [oracle@o83o198p ~]$ srvctl status database -d orcl Instance orcl is running on node o83o198p |
|
バックアップジョブを実行すると、SCANVIPが待機サーバo83o198sで稼働していることを確認後、待機サーバo83o198sのNetVaultクライアントでジョブが実行されるが、 Oracleインスタンスは本番サーバに移動しているため、待機サーバではORA-01034 Oracle not Availableになり、ジョブが失敗する |
|