MSCSでのOracle9iパッチ [DBMS]
MSCSのクラスタ環境下でのOracle9iのパッチ適用です。
OracleのドキュメントにはRACの話はあるのですが、MSCS環境下でのドキュメントがなぜか少なかったりします。
Oracleから言わせると、特に特記する事ではないという認識なんだろうと思ってるのでしょうが、実際に手順としては違う操作が存在します。
その不親切さが問題ですが、独自に考えてみる事にしました。
9.2.0.5→9.2.0.8 です。通常手順はこちら→ http://blog.so-net.ne.jp/ojaoki/2008-02-02 を参考に願います。
まず、Oracleを停止します。
↓はクラスタアドミニストレータですが、Oracleは Oracle Fail Safe Manager を使用して停止します。
Oracle Fail Safe Manager でないと、nomal や immediate でOFFLINE に出来ないので注意です。
OracleのMSCS環境では Oracle Service for MSCS というのがありますのでこれもオフラインにします。
その他、WindowsのサービスでOracle関連のサービスと、Distributed Transaction Coordinator を止めます。
それと、MSCSのサービス Cluster Service も止めます。MSCS自身がOracleのDLLをロードしているので止めないとパッチを適用出来ません。
OUIからセットアップして適用する箇所は同一です。
後処理で Oracle を起動する必要があるのですが、クラスタの Oracle を起動するのではなく、ローカルの Oracle を起動します。
まず、Cluster Service を起動します。これは、データベースの入っているディスクを使える様にするためです。同時に、フェイルオーバして他のノードに移っている時は自分のところにフェイルバックさせます。
ローカルのOracleのサービスを起動します。
OracleMSCSService ではなく OracleService と OracleTNSListnerFslio ではなく OracleTNSListner を起動します。
コマンドプロンプトからOracleをMIGRATEモードで起動します。
この後の catpatch.sql と utlrp.sql の実行は一緒です。
最後にシャットダウンして、ローカルのサービスを停止して、クラスタのリソースをオンラインにします。
2つ目以降のノードでは、各種サービスを停止して、OUIによる適用までを実施します。
ローカルのOracleサービスを起動して適用する catpatch.sql と utlrp.sql は実施しません。共有しているデータベース内の変更は1箇所で行います。
コメント 0