ここでは、Oracleデータベース の設定変更、Oracleデータベースのパッチ適用、Oracleデータベースのバックアップ・リカバリーなど、メンテナンス時の操作について説明します。
クラスタシステムにおいては、Oracleデータベースの起動・停止と Oracleデータベースのデータが格納されている共用ディスク装置の活性/非活性制御が連動して行われます。
userApplication 運用中、PRIMECLUSTER Wizard for Oracle は、Oracleデータベースを監視します。Oracleデータベースを手動停止すると、PRIMECLUSTER Wizard for Oracle は、Oracleデータベースに異常が発生したとみなすため、Oracleインスタンスの再起動や待機ノードへの切替えが発生します。
userApplication 停止中は、共用ディスク装置が非活性になり、共用ディスク装置へのアクセスができない状態になります。
そのため、Oracle コールドバックアップなどメンテナンス作業のために Oracleデータベースを手動で制御する必要がある場合は、事前に userApplication を保守モードにし、Oracle インスタンス、リスナーの監視を一時的に中断する必要があります。
一般的な手順
Oracle データベースのメンテナンス時の一般的な手順を以下に示します。メンテナンスを行うノードにて実施してください。
userApplication の起動
設定変更を行う Oracle インスタンスリソースが含まれている userApplication が停止している場合は、起動してください。
保守モード/監視中断
userApplication を保守モードに移行してください。
次に hvoradisable コマンドで Oracle インスタンスリソース、リスナーリソースの監視を中断してください。
保守モード移行/監視中断の確認
保守モードへの移行や監視中断が正常に行われたことを確認してください。
(参考 “4.1 hvoradisable - リソース監視の中断” - 注意)
Oracle Restartの設定有効化
スタンバイ運用でASMを使用する構成で、かつ以下の作業を実施する場合は、Oracle Restartの設定を有効にしてください。
DBCAでディスクグループを選択する場合
srvctl start asm
srvctl start database
srvctl start listener
Oracle Restartの設定を有効にするには以下のコマンドをGridユーザーで実行してください。
srvctl enable asm srvctl enable listener [-l <listener_name>] srvctl enable database -d <db_unique_name>
DBCAでディスクグループを選択する場合は、Oracle Restart上でOracle ASM、ディスクグループの状態がONLINEである必要があります。以下のコマンドをGridユーザーで実行してください。
crsctl status resource -t srvctl start asm (Oracle ASMがOFFLINEの場合) srvctl start diskgroup -g <ディスクグループ名> (ディスクグループがOFFLINEの場合)
ASMやディスクグループがすでに実行中です、というメッセージが出力される場合がありますが、問題ありませんのでメッセージを無視してください。
Oracle データベースに依存するリソースの停止
Oracle データベースに依存するリソースがある場合は、手動で停止してください。
Oracle データベースの停止
Oracle インスタンス、リスナーを手動停止してください。
Oracle データベースのメンテナンス
Oracle データベースの設定変更、Oracle データベースのパッチ適用、Oracleデータベースのバックアップ・リカバリーなどの操作を行ってください。
Oracle データベースの起動
メンテナンス完了後、Oracle インスタンスを手動起動してください。マルチテナント機能を使用したデータベースの場合はPDBも手動起動してください。リスナーも停止していた場合は再起動してください。
次の手順へ進む前に、Oracle インスタンス、リスナーが正常に動作していることを確認してください。Oracle インスタンスは OPEN 状態で起動している必要があります。マルチテナント機能を使用したデータベースの場合は、PDBのOPEN_MODEが“READ WRITE”になっている必要があります。
Oracle Restartの設定無効化
「4. Oracle Restartの設定有効化」を実施した場合は、以下のコマンドをGridユーザーで実行してOracle Restartの設定を変更してください
srvctl disable asm srvctl disable listener [-l <listener_name>] srvctl disable database -d <db_unique_name>
Oracle データベースに依存するリソースの起動
Oracle データベースに依存するリソースを停止した場合は、手動で起動してください。
監視再開/保守モード解除
hvoraenable コマンドで Oracle インスタンスリソース、リスナーリソースの監視を再開してください。
次に userApplication の保守モードを解除してください。
監視再開/保守モード解除の確認
監視再開や保守モードの解除が正常に行われたことを確認してください。
(参考 “4.2 hvoraenable - リソース監視の再開” - 注意)
参考
監視中断・再開について
userApplication を起動したまま Oracle データベースを停止するには、PRIMECLUSTER Wizard for Oracle の “監視中断” 機能を使用します。
“監視中断” 機能では、Oracle リソース監視のみが停止されます。そのため Oracle データベース以外のリソース故障が発生するとフェイルオーバが発生しますので注意してください。
Oracle RAC について
Oracle RAC のリソースを制御する場合は、srvctl コマンドや SHUTDOWN コマンドなどを使用せず、RMS の userApplication に対して操作を行ってください。これらのコマンドを使用すると、PRIMECLUSTER にて異常と判断してリカバリーが実行される場合があります。これらのコマンドを実行したい場合は、userApplication を保守モードにして実行してください。
userApplication の保守モードについて
userApplication を保守モードに移行すると、リソース異常は無視されるようになります。つまり、Oracle データベースを手動停止させても、再起動やフェイルオーバが発生しません。これにより、Oracle リソースを含めた全てのリソースのメンテナンスを実施することができます。詳細は、「PRIMECLUSTER RMS 導入運用手引書」 の「5.4.11 保守モードの使用法」 を参照してください。
Oracle インスタンス、リスナーの監視中断・再開について
hvoradisable および hvoraenable コマンドを使って、Oracle インスタンスおよびリスナーの監視を中断・再開することができます。
userApplication の保守モードだけでは、監視用の Oracle セッションが残ったままの状態となります。ここでさらに Oracle インスタンスリソースの監視を中断することで、セッションが切断されます。これにより、Oracle データベース手動停止の際に SHUTDOWN コマンドを NORMAL オプションで実行することができます。
Oracle インスタンス、リスナーの監視中断・再開についての詳細は、“4.1 hvoradisable - リソース監視の中断”, “4.2 hvoraenable - リソース監視の再開” を参照してください。
注意
監視の再開
リソースの監視を中断した後、Oracle インスタンス、リスナーを手動停止した場合、監視を再開する前に、Oracle インスタンス、リスナーの手動起動を行ってください。マルチテナント機能を使用したデータベースの場合はPDBも手動起動してください。起動されないまま監視を再開すると、リソース異常が発生する場合があります。
監視中断中のリソースの状態について
hvoradisable コマンドによりリソースの監視が正しく中断された場合、リソースの状態は Warning になります。
本手順と Oracle Database のドキュメントを参照し、運用環境やメンテナンス要件に合わせて、メンテナンス手順を計画してください。
手順2「保守モード/監視中断」では、必ず、hvoradisableコマンドでOracleインスタンスリソース、リスナーリソースの監視を中断してください。
hvoradisableコマンドを実行しなかった場合、以下のような動作を引き起こす場合があります。
PRIMECLUSTER Wizard for Oracleの監視モジュールはOracle Databaseのライブラリを使用して動作しています。監視モジュールが動作している状態でOracleデータベースのパッチ適用などの作業を行うと、Oracle Databaseのライブラリを更新できずパッチ適用に失敗することがあります。このため監視を中断して監視モジュールを停止してください。
保守モードへの移行だけを実行した場合は、フェイルオーバーなどの動作は行いませんが、監視モジュールによるOracleインスタンスリソース、リスナーリソースの監視は動作しています。この状態でリソースが停止すると内部的に異常を検出するため、状態不整合や意図せぬ動作を引き起こす場合があります。