順番:不適切なディスク追加が原因のRAC障害
最近、本番ライブラリがダウンしました
データベースがハングアップする理由は、データベースのファイルシステムに対応するディスクがすべてドロップされているためです。,ただし、バックグラウンドログを参照してください
今-00204このエラー,または百度、ヤン長老の記事を見ました,だから収入は私のブログに行きます,
次の障害が発生した場合、RACの下にディスクを不適切に追加すると、データベースがダウンします。。
これは、実稼働環境の実際のメンテナンスプロセスです。,RACテスト環境のスペースが不足しているため,だから計画する
ASM拡張スペース,ただし、ASMに新しいディスクスペースを追加するときにエラーが発生しました,そのような問題はたくさんあります
また、ユーザーの本番環境で遭遇する可能性があります。
スペース拡張の操作手順は次のとおりです。:
ASMデバイスを管理するためにRAC環境のノード1でDBCAツールを開始しました;
新しく追加されたrawデバイスはASMグラフィカルインターフェイスでは表示されないため;
rootユーザーは、オペレーティングシステム上のOracleユーザーにrawデバイスへのアクセスを許可します。;
現時点では,これらのrawデバイスは、グラフィカルインターフェイスの候補ディスクからすでに確認できます。;
rawデバイスは、グラフィカルインターフェイスを介してディスクグループに追加されます。
しかし、この操作は2つのエラーを引き起こしました:それぞれORA-15032とORA-15075です。。
まず、これら2つのエラーがOracleの公式ドキュメントでどのように説明されているかを確認します。:
ORA-15032: すべての変更が実行されたわけではありません
原因: 少なくとも1つのALTERDISKGROUPアクションが失敗しました.
アクション: と一緒に発行された他のメッセージを確認してください この要約エラー.
ORA-15075: ディスク(s) クラスタ全体では表示されません
原因: ALTER DISKGROUP ADD DISKコマンドは、次の可能性のあるディスクを指定しました
RACクラスター構成内の1つ以上のノードによって検出されない.
アクション: GV $ OSM_DISKから、問題の原因となっているディスクを特定します。
固定ビュー. デバイスとストレージのオペレーティングシステムのアクセス許可を確認します
ディスクを識別できないRACクラスター内の各ノードのサブシステム構成.
実際、ORA-15075エラーの情報は十分に明白です。このエラーに基づく分析では、すばやく見つけることができるはずです。
問題の原因。しかし、他の事故のために,問題を解決する方向の逸脱につながる。
このエラーは奇妙な現象を引き起こしました:エラーメッセージから判断する,操作に失敗しました,しかし、検査の結果、これらの裸のデバイスが見つかりました
DBCAのASM構成で表示されます。
これらの2つのエラーメッセージがチェックされているとき,同僚から、ノード2のインスタンスに接続できなかったと言われました。
オペレーティングシステムのコマンド検査により、データベースインスタンス2がシャットダウンされていることがわかりました。,ただし、このノードのASMインスタンスはまだ存在します。
この現象の奇妙さはそれです:ASMの操作によるエラー,現在のASMインスタンスにエラーはありません,しかし、別のものがあります
データベースインスタンスがシャットダウンされます。
次のようにアラートファイルを確認してください,重要な情報は、ファイルアクセスの制御にエラーがあることを示しています:
$ 尾 -500 アラート*
ノードのリスト:
……
木3月 29 17:25:36 2007
成功: ディスクDISK_0017(17.4042303525) ディスクグループDISKに追加
成功: ディスクDISK_0018(18.4042303520) ディスクグループDISKに追加
成功: ディスクDISK_0019(19.4042303521) ディスクグループDISKに追加
成功: ディスクDISK_0020(20.4042303522) ディスクグループDISKに追加
成功: ディスクDISK_0021(21.4042303523) ディスクグループDISKに追加
成功: ディスクDISK_0022(22.4042303524) ディスクグループDISKに追加
木3月 29 17:29:45 2007
成功: ディスクグループDISKがマウント解除されました
成功: ディスクグループDISKがマウント解除されました
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_lmon_2789.trcのエラー:
今-00202: 制御ファイル:’+ DISK / testrac / control01.ctl’
ORA-15078: ASMディスクグループが強制的にマウント解除されました
木3月 29 17:29:46 2007
LMON: エラーによるインスタンスの終了 204
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_pmon_2754.trcのエラー:
今-00204: 読み取りエラー(ブロック , # ブロック ) 制御ファイルの
木3月 29 17:29:46 2007
システム状態ダンプはローカルインスタンス用に作成されます
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_lms1_2797.trcのエラー:
今-00204: 読み取りエラー(ブロック , # ブロック ) 制御ファイルの
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_lms0_2793.trcのエラー:
今-00204: 読み取りエラー(ブロック , # ブロック ) 制御ファイルの
システム状態はトレースファイル/ data / oracle / admin / testrac / bdump /にダンプされました
testrac2_diag_2756.trc
木3月 29 17:29:47 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_j001_677.trcのエラー:
今-00204: 制御ファイルの読み取り中にエラーが発生しました(ピース , # ピース )
木3月 29 17:29:47 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_j000_3675.trcのエラー:
今-00204: 制御ファイルの読み取り中にエラーが発生しました(ピース , # ピース )
木3月 29 17:29:47 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_rbal_2982.trcのエラー:
今-00204: 読み取りエラー(ブロック , # ブロック ) 制御ファイルの
木3月 29 17:29:52 2007
LMONによってインスタンスが終了しました, pid = 2789
システムを再起動してみてください,生成されるエラーメッセージの種類を確認する,今回見た表示情報は、パラメータファイルの読み取りエラーでした。:
$ sqlplus “/ sysdbaとして”
アイドルルーチンに接続。
SQL> 起動
今-01078: システムパラメータの処理に失敗しました
今-01565: ファイル ‘+ DISK / testrac /spfiletestrac.oraの識別エラー’
ORA-17503: ksfdopn:2ファイル+ DISK / testrac /spfiletestrac.oraを開くことができませんでした
ORA-15077: 必要なディスクグループにサービスを提供しているASMインスタンスを見つけることができませんでした
SQL> シャットダウン
今-01034: ORACLEは利用できません
ORA-27101: 共有メモリレルムは存在しません
SVR4エラー: 2: そのようなファイル、又はディレクトリはありません
では、何が起こっているのでしょうか?アラームログを1行ずつ注意深く分析すると,実際、アラートファイルにはすでに
明らかにエラーの原因が含まれています:
成功: ディスクグループDISKがマウント解除されました
成功: ディスクグループDISKがマウント解除されました
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_lmon_2789.trcのエラー:
今-00202: 制御ファイル:’+ DISK / testrac / control01.ctl’
ORA-15078: ASMディスクグループが強制的にマウント解除されました
木3月 29 17:29:46 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_lmon_2789.trcのエラー:
今-00204: 読み取りエラー(ブロック 35, # ブロック 1) 制御ファイルの
今-00202: 制御ファイル:’+ DISK / testrac / control01.ctl’
ORA-15078: ASMディスクグループが強制的にマウント解除されました
ASMディスクグループは最初にDISMOUNTされました,したがって、もちろん、後でASM内のファイルへのアクセスに問題が発生します。,
のみログを読んだとき,注意が目立ちやすい、わかりやすい、おなじみのアトラクション,見落とされがち
本当の問題,これは人間の選択的注意です:
ファイル/data/oracle/admin/testrac/bdump/testrac2_j001_677.trcのエラー:
今-00204: 制御ファイルの読み取り中にエラーが発生しました(ピース , # ピース )
木3月 29 17:29:47 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_j000_3675.trcのエラー:
今-00204: 制御ファイルの読み取り中にエラーが発生しました(ピース , # ピース )
木3月 29 17:29:47 2007
ファイル/data/oracle/admin/testrac/bdump/testrac2_rbal_2982.trcのエラー:
今-00204: 読み取りエラー(ブロック , # ブロック ) 制御ファイルの
木3月 29 17:29:52 2007
LMONによってインスタンスが終了しました, pid = 2789
このORA-204エラーメッセージを参照してください,これが問題の原因であることは当然のことと考えてください。
実際、その後の起動エラーメッセージを確認すると、問題が発生していることがわかります。:
ORA-15077: 必要なディスクグループにサービスを提供しているASMインスタンスを見つけることができませんでした。
Oracleの公式ドキュメントでは、このエラーについて次のように説明しています。:
ORA-15077: 必要なディスクグループにサービスを提供しているASMインスタンスを見つけることができませんでした
原因: インスタンスは、指定された操作を実行できませんでした。
必要なASMインスタンスを割り当てない.
アクション: ASMインスタンスを起動し、必要なディスクグループをマウントします.
このケースに遭遇したとき,同時に別の思考の罠にも遭遇した:以前にバグに遭遇しました,このバグ
重要なエラーメッセージもORA-17503です。: ksfdopn:2 ファイル+ DISK / testrac /を開くことができませんでした
spfiletestrac.ora。したがって、上記の重要な情報を無視します,そして、焦点をバグに移します,そして今回出会ったと思う
問題は前回に関連している可能性があります。
パラメータファイルが読み取れません,どうやるか?その時、私はローカルのpfileファイルを使ってデータベースを起動しようとしました:
SQL> 起動pfile = / export / home / oracle / inittestrac2.ora
ORACLEルーチンが開始されました。
システムグローバル領域全体 2147483648 バイト
固定サイズ 2030296 バイト
可変サイズ 503317800 バイト
データベースバッファ 1627389952 バイト
バッファのやり直し 14745600 バイト
今-00205: ?????????, ??????, ???????
エラーが発生した後,再び誤解された,ORAを確認してください-00205エラーメッセージ。
今-00205: 制御ファイルの識別エラー, 詳細については、アラートログを確認してください
原因: 指定された名前とサイズの制御ファイルが見つかりませんでした.
アクション: すべての制御ファイルがオンラインであり、それらが同じファイルであることを確認してください
システムがコールドスタート時に作成したこと.
制御ファイル自体に問題がないことが判明するまで-インスタンス1は正常に実行されています。その時だけ私は自分自身に気づきました」迷う」。
すべてのエラーメッセージとエラーの原因を注意深く確認してください-ディスクグループを追加する操作,ついに問題を発見
本当の理由:ベアデバイスを認証する場合,ノード1でのみ許可されます,そしてノード2ではありません
承認,したがって、ノード1のDBCAによって構成されたASMインスタンスは、rawデバイスをディスクグループに正常に追加できます。,にいる間
権限がないため、ノード2で同じ操作を行う,ディスクグループDISMOUNTに導かれました,最終的にデータベースにつながりました
インスタンスのシャットダウン。
したがって、ノード2のベアデバイスを承認します。,ASMインスタンスを再起動します,問題が解決しました。
$ その –
パスワード:
サンマイクロシステムズ株式会社. SunOS 5.8 ジェネリックパッチ10月 2001
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s1
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s3
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s4
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s5
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s6
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad6s7
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s1
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s3
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s4
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s5
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s6
# オラクルをchown:oinstall / dev / rdsk / c2t500601603022E66Ad7s7
$ sqlplus “/ assysdba”
SQL> シャットダウン
今-01507: データベースがロードされていません
ORACLEルーチンが閉じられました。
$ srvctl stop asm -nracnode2
$ srvctl start asm -nracnode2
$ sqlplus “/ assysdba”
アイドルルーチンに接続。
SQL> 起動
ORACLEルーチンが開始されました。
システムグローバル領域全体 2147483648 バイト
固定サイズ 2030296 バイト
可変サイズ 469763368 バイト
データベースバッファ 1660944384 バイト
バッファのやり直し 14745600 バイト
データベースがロードされます。
データベースはすでに開いています。
もともと非常に単純だった質問たくさんの問題。このレッスンは、問題を解決するときに冷静に分析して判断する必要があることを示しています,
そうしないと、他の情報に邪魔されて迷うことがよくあります,これは問題を解決する際の迂回につながります。
特に,迷う過程にある場合,破壊的または不可逆的な操作を実行しました,運用・保守
事故。それを見ることができます,DBAは診断中です、問題を分析して対処するとき,頭をすっきりと落ち着かせることの重要性。
DBAの友達と一緒に励ます。
元の: https://blog.csdn.net/qq_34556414/article/details/80844431