Oracle RAC の日常運用と障害シナリオ
Oracleレベル: 上級所要時間: 15 分~3 時間 (シナリオによる)構築済みで稼働中の Oracle RAC (Grid Infrastructure 19c) クラスタの日常運用と障害対応: ヘルス・チェック、ノード・エビクションの診断、ノードのメンテナンス、クラスタ全体の計画停止と起動、ノードの追加と削除、サービス管理 (preferred/available、AC/TAC)、SCAN/VIP/ポート/インターコネクトの変更、OCR/OLR のバックアップとリストア、OCR と投票ファイルの移動。インストール・ガイドではありません (先に RAC のインストール)。パッチは RAC ローリング・パッチ、ディスク・グループの作業は ASM の日常運用 を参照してください。各シナリオは 診断 → セーフティネット → 実施 → 確認 → 事後作業 の順で進みます。
構成: 既存の 2~8 ノード RAC (Grid Infrastructure 19c。23ai/26ai の違いは注記を参照)
シナリオ
- クラスタのヘルス・チェック (日次 / メンテナンス前) — 何も変更しません。Clusterware スタック、リソース、OCR/投票ファイル、ASM、インターコネクト、時刻、最近のアラートを確認します。日次チェック、各メンテナンスやパッチの前、問題の報告を受けたときの最初の作業として選択します。
- ノードがクラスタから排除された、または勝手に再起動した (エビクションの診断) — 読取り専用: ノードが予期せず再起動した場合や、クラスタから排除された場合に選択します。Clusterware のアラート・ログ、ocssd.trc、OS のログ、misscount/disktimeout の値から、根本原因がネットワーク、ディスク、OS のいずれにあるかを特定します。
- メンテナンスのためにノードを停止して再起動する — ノードで OS パッチ、カーネル、ハードウェアのメンテナンスを行う場合に選択します。他のノードは稼働を続けます。そのノードのインスタンスのサービスは移動され、セッションはドレイン時間の経過後に終了します。
- クラスタ全体を計画停止して起動する — SAN やデータセンターのメンテナンスなど、全ノードを同時に停止する必要がある場合に選択します。完全停止: 全ノードですべてのデータベース、ASM、Clusterware が停止します。
- クラスタに新しいノードを追加する — 新しいサーバーをクラスタに参加させる場合に選択します (容量増強、ハードウェア更改)。無停止: 事前チェック (cluvfy)、Grid home (addnode.sh)、DB home と新しいインスタンス (dbca -addInstance)。
- クラスタからノードを削除する — サーバーをクラスタから恒久的に外す場合に選択します (返却、ハードウェア故障)。インスタンスを削除し、そのノードから DB home と Grid home を削除して、ノードをクラスタから削除します。他のノードはオープンのままです。
- サービスを追加、変更、移動、削除する — アプリケーションが接続するサービスを定義する場合、配置 (preferred/available) やフェイルオーバー設定 (TAF/Application Continuity) を変更する場合、稼働中のサービスを別のインスタンスに移動する場合に選択します。データベースはオープンのままです。
- SCAN、VIP、リスナー・ポート、インターコネクトの変更 — SCAN 名/IP、ノードの VIP、リスナー・ポート、プライベート・ネットワーク (インターコネクト) を変更する場合に選択します。インターコネクトの変更にはクラスタ全体の停止が必要です。その他の変更では短時間の接続断が発生します。
- OCR と OLR のバックアップを取得し、バックアップを確認する — 停止なし: OCR の手動バックアップ、各ノードでの OLR バックアップ、バックアップのクラスタ・ディスク外へのコピー。パッチ、ノードの追加/削除、ネットワーク変更など、リスクのある作業の前に必ず選択します。
- OCR の破損または CRS ディスク・グループの喪失: バックアップからリストアする — ocrcheck が破損を示す場合、CRSD が起動しない場合 (PROT-/PROC- エラー)、または CRS ディスク・グループが完全に失われた場合に選択します。クラスタ全体が停止します。OCR を排他モードでバックアップからリストアし、ディスク・グループが失われた場合はディスク・グループ、投票ファイル、ASM spfile を再作成します。
- 1 つのノードで Clusterware が起動しない: OLR の破損 — 他のノードは稼働しているのに、1 つのノードだけで crsctl start crs が OHASD を起動できず、ocrcheck -local が OLR エラーを返す場合に選択します。影響はそのノードだけです。OLR をバックアップからリストアします。
- OCR と投票ファイルを別のディスク・グループに移動する — 無停止: ocrconfig -add/-delete と crsctl replace votedisk。ストレージ (SAN) の入れ替え時、CRS ディスク・グループの冗長性を上げる場合、OCR を 2 つ目のディスク・グループにも書き込む場合に選択します。
開始前の確認
- 全ノードで root アクセスと、grid/oracle ユーザーのログイン・シェル (sudo -iu grid) が使えること。grid と oracle のプロファイルが Grid/DB home の環境を読み込むこと。
- 開始前にクラスタが正常であること: 全ノードで CRS がオンラインで、起動しているべきなのに停止しているリソースがないこと。そうでない場合は、先に ヘルス・チェック で問題を解消します。
- メンテナンス・ウィンドウと変更申請が承認され、アプリケーション・チームに連絡済みで、監視システムでブラックアウトが設定されていること。…この作業は 完全停止 を伴います。…
- データベースの最新の RMAN バックアップとアーカイブ・ログのバックアップがあること… (インスタンスの追加/削除で REDO スレッドと UNDO 表領域が変わります)…。
- クラスタ・ディスクの外に保存した OCR バックアップ (…) があるか、正常なディスク・グループ上の自動バックアップのパスがわかっていること。…CRS ディスク・グループ用に、… 冗長性に足りる数の空きディスクが全ノードから見える状態で用意されていること。…
- 新しいノード (…) が既存ノードと同じ OS バージョンとカーネルであること。RAC のインストール の OS 準備と ストレージ準備 が完了し、パブリック/プライベートのインタフェース名が同じで、共有 LUN がこのノードにも提供され、VIP アドレス … が未使用であること。
- 事象のおおよその発生時刻がわかっていること。AHF (TFA) がインストールされていれば診断情報の収集は 1 コマンドで行えます。なければログを手動で調べます。
ガイドのフェーズ
- クラスタのヘルス・チェック — 全ノードで Clusterware スタックを確認する · リソースの状態を一覧表示する · データベース、サービス、リスナーの状態を確認する · OCR、投票ファイル、OLR の整合性を確認する · ASM とディスク・グループの使用率を確認する · ネットワーク構成と時刻同期を確認する …
- クラスタ全体を停止する — 停止前に状態を記録する · OCR の手動バックアップを取得する (セーフティネット) · 全データベースを停止する · 全ノードで Clusterware を停止する · OHASD を停止する (…) · メンテナンス作業を行う
- クラスタ全体を起動する — Clusterware を起動する (…) · 全ノードのクラスタ参加を待つ · データベースが起動したことを確認する · 起動後にリソースを比較する
- 新しいノードの準備と事前チェック — 現在のクラスタ構成を記録する · 新しいノードの OS 準備を確認する · /etc/hosts に新しいノードを追加する (…) · grid ユーザーの SSH ユーザー等価関係を新しいノードに拡張する · oracle ユーザーの SSH ユーザー等価関係を新しいノードに拡張する · cvuqdisk RPM を新しいノードに転送する …
- Grid Infrastructure を新しいノードに拡張する — OCR の手動バックアップを取得する (セーフティネット) · Grid home を新しいノードに拡張する (addnode.sh) · orainstRoot.sh を実行する (新しいノード) · root.sh を実行する (新しいノード) · 新しいノードで grid の環境を設定する · 新しいノードをクラスタで確認する
- DB home と新しいインスタンス — DB home を新しいノードに拡張する · DB home の root.sh を実行する (新しいノード) · 新しいノードで oracle の環境を設定する · 新しいインスタンスを追加する (dbca -addInstance) · サービス構成に新しいインスタンスを追加する · 新しいインスタンスを確認する
- ノード追加後の作業 — 新しいノードの OLR バックアップを取得する · 新しい構成の OCR バックアップを取得する · 監視、バックアップ、運用の作業を更新する
- インスタンスと DB home を削除する — … からサービスを退避する (インスタンスはオープンのまま) · インスタンスを削除する (dbca -deleteInstance) · DB home のインベントリを対象ノードだけに絞る (…) · DB home を削除する (deinstall -local) (…) · 残りのノードで DB home のインベントリを更新する
- 対象ノードから Clusterware を削除する — ピン状態を確認し、必要なら解除する · Grid home を削除する (deinstall -local) (…) · ノードをクラスタ定義から削除する · 削除を確認し、残った VIP を削除する
- ノード削除後の作業 — 新しい構成の OCR バックアップを取得する · 残存物を片付けて記録を更新する
- サービス: 診断 — サービスの現在の構成を表示する
- サービス: 実施 — サービスを追加して起動する · サービスの配置と設定を変更する · 新しい配置に合わせてサービスを起動する · サービスを別のインスタンスに移動する · サービスを停止して削除
- サービス: 確認 — サービスがデータベースとリスナーで認識されていることを確認する
- ネットワーク変更: 診断とセーフティネット — 現在のネットワーク構成を記録する · OCR の手動バックアップを取得する (セーフティネット) · GPnP プロファイルのバックアップを取得する (…)
- SCAN 名 / IP を変更する — 新しい SCAN の名前解決を確認する · SCAN VIP とリスナーを新しい値で再作成する · データベースの remote_listener の設定を更新する · SCAN 経由の接続を確認する
- OCR と OLR のバックアップ — 既存の OCR バックアップとバックアップの場所を表示する · OCR の手動バックアップを取得する · 最新の手動バックアップをクラスタ外にコピーして確認する · OLR の手動バックアップを取得する (…) · ASM spfile とパスワード・ファイルもバックアップする
- OCR のリストア: 診断 — OCR の状態と Clusterware を確認する · ASM 側でディスク・グループとディスクを確認する · リストアするバックアップを確認する
- OCR のリストア: 実施 — Clusterware を停止する (…) · ノード 1 で Clusterware を排他モードで起動する · 一時パラメータ・ファイルで ASM を起動する (spfile が失われた場合) · ディスク・グループ … を再作成する · OCR をバックアップからリストアする · 投票ファイルを再作成する …
- OCR のリストア: 確認と事後作業 — クラスタと OCR を確認する · バックアップ以降の変更を確認する · 新しい OCR バックアップを取得し、根本原因を解消する