• 検索結果がありません。

Oracle インスタンスに関するトラブル

ドキュメント内 導入運用手引書 (ページ 149-153)

第6章 メッセージ一覧

A.1 Oracle インスタンスに関するトラブル

A.1.1 起動・停止に失敗

Oracle インスタンスの起動・停止に失敗した場合のトラブル事例です。

[ケース1] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

PRIMECLUSTER RMS のリソース設定が誤っている場合に発生します。

clorainfo -c コマンドを実行してリソース設定情報を確認できます。次に示す設定情報が実際の環境と一致していることを確認してくだ さい。(参考 “4.6 clorainfo - 設定情報や監視状態の表示”)

・ Oracle ユーザー名

・ OracleSID

・ PreOnlineScript などに設定したスクリプト パスが正しいこと

実行権限があること 単体で正しく動作すること

一致していなかった場合、正しい設定に変更してください。(参考 “第2章 環境設定”) [ケース2] (スタンバイ、シングルノードクラスタ)

/opt/FJSVclora/usr 配下に配置したユーザースクリプトが誤っている場合に発生します。

(スタンバイ運用の場合のみ)

これらのユーザースクリプトが正しく動作することを確認してください。

[ケース3] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle データベースの設定が誤っている場合に発生します。

Oracle データベースのアラート・ファイル等を確認し、起動・停止に失敗した原因が記録されていないか確認してください。

また、Oracle データベース単体で起動・停止が正しく行えることを確認してください。

Oracle インスタンスリソースの監視を中断させると、手動による単体操作が可能になります。

(参考“3.2.4.1 Oracle データベースを停止させる必要がある場合”)

[ケース4] (Oracle RAC スケーラブル)

Oracle Clusterware が起動していない状態で Oracle インスタンスリソースを含む userApplication を起動すると、リソースは ScriptTimeout に設定した時間(2.3.5 Oracle RAC インスタンス、リスナーリソースを含む userApplication の作成 - 手順10 を参照してください)を過ぎ

るまで Wait状態となり、それを過ぎるとリソース異常となります。

以下は、各構成パターン別の対処方法です。

・ Oracle Clusterware と Oracle RAC インスタンスを異なる userApplication に登録する構成(2.3.3の構成パターンA)の場合 まずは、Oracle Clusterware が起動しているかどうかを確認してください。

以下のコマンド実行により、Oracle Clusterware が起動しているかどうかを確認することができます。

# su - <Gridユーザー>

$ crsctl status resource

以下のメッセージが出力された場合は、Oracle Clusterware が停止している可能性があります。

CRS-0184: CRSデーモンと通信できません。

Oracle Clusterware が起動していない場合は、Oracle Clusterware が Oracle RAC インスタンスより先に起動する設定がされていな い可能性があります。

Oracle RAC インスタンスリソースの PreOnlineScript スクリプトにOracle Clusterware リソースを起動するスクリプトが設定されている かどうかを確認してください(2.3.5 Oracle RAC インスタンス、リスナーリソースを含む userApplication の作成 -手順10 - 注意 を参 照してください)。

・ Oracle Clusterware と Oracle RAC インスタンスを同一の userApplication に登録する構成(2.3.3の構成パターンB)の場合

Oracle RAC インスタンスリソースの起動に失敗している可能性があります。

Oracle RAC インスタンスリソースの設定に誤りがないかどうかを確認してください(2.3.5 Oracle RAC インスタンス、リスナーリソース を含む userApplication の作成)。

また、PRIMECLUSTER RMS のリソースや Oracle データベースの設定に誤りがないかどうかを確認してください([ケース1]、[ケー

ス3]を参照してください)。

・ Oracle Clusterwareをリソース登録しない構成(2.3.3の構成パターンC)の場合 Oracle Clusterwareが起動しているかどうかを確認してください。

Oracle Clusterware が起動しているかどうかを、以下のコマンドを実行して確認してください。

# su - <Gridユーザー>

$ crsctl status resource

以下のメッセージが出力された場合は、Oracle Clusterware が停止している可能性があります。

CRS-0184: CRSデーモンと通信できません。

リソースの Fault 状態を解除し(hvutil -c)、以下のコマンドで Oracle Clusterware を起動してください。

# <Gridユーザーの$ORACLE_HOME>/crsctl start crs

Oracle Clusterware を起動した後、userApplication を再度起動してください。

[ケース5] (Oracle RAC スケーラブル)

Oracle Clusterware が停止している状態で、userApplication またはリソースの設定変更を行った場合に発生します。

userApplication またはリソースの設定変更を行う場合は、全ノード上で Oracle Clusterware を事前に起動してください。(参考 “2.3.7 RMS 構成定義の生成と配布”を参照してください。)

A.1.2 AutoRecover やフェイルオーバが発生

Oracle インスタンスリソース異常によるリソースの AutoRecover や userApplication のフェイルオーバ、または縮退が発生した場合のト

[ケース1] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

アーカイブログ領域不足のため、監視用 SQL によるデータ更新処理がハングアップした場合に、リソース異常となる場合があります。

その後 userApplication がフェイルオーバしてもフェイルオーバ先の待機ノードでも共用ディスク上の領域不足により Oracle データベー スの起動に失敗するため、最終的に両系停止となり業務が停止する場合があります。

Oracle データベースのアラート・ファイル等を確認し、参考となる情報が記録されていないか確認してください。

以下の手順でアーカイブログをバックアップし、ディスク容量を確保してください。

1. 両ノードで、RMSを停止します。

# hvshut -a

2. 運用ノードで、アーカイブログ領域が格納されているボリュームをマウントします。

- zpoolを使用する場合

# sdxvolume -N -c <クラス名>

# zpool import -d /dev/sfdsk/<クラス名>/dsk <マウントポイント>

- zpoolを使用しない場合

# sdxvolume -N -c <クラス名> -v <ボリューム名>

# mount -F ufs /dev/sfdsk/<クラス名>/dsk/<ボリューム名> <マウントポイント>

3. 2.でマウントしたマウントポイントに移動し、アーカイブログ領域をバックアップしてください。

# cd <マウントポイント>

# mv ./<アーカイブログ領域>/<アーカイブファイル> /<退避先>/.

4. 2.でマウントした領域をアンマウントします。

- zpoolを使用する場合

# cd /

# zpool export <マウントポイント>

# sdxvolume -F -c <クラス名>

- zpoolを使用しない場合

# cd /

# umount <マウントポイント>

# sdxvolume -F -c <クラス名> -v <ボリューム名>

5. 任意の1ノードで hvcm コマンドを実行し、すべてのノードのRMSを起動します。

# hvcm -a

6. クラスタアプリケーション の Faulted 状態をクリアします。

# hvutil -c <userApplication名>

7. 任意の1ノードで hvswitch コマンドを実行し、クラスタアプリケーションを起動します。

# hvswitch <userApplication名> <SysNode名>

[ケース2] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ) 監視タイムアウトが2回連続して発生した場合にリソース異常となります。

syslog に“ERROR: 0226: Watch Timeout occurred”が出力されていれば該当します。

Oracle データベース側からの調査・対処を行ってください。

PRIMECLUSTER Wizard for Oracle による Oracle インスタンスの監視では、Oracle インスタンスから一定時間応答がなかった場合は

「監視タイムアウト」と判断します。1回目の監視タイムアウトでは、Warning 状態となるだけでリソース異常にはなりませんが、これが2回 連続して発生した場合、リソース異常と判断します。

A.1.3 Warning 状態に遷移

Oracle インスタンスは起動しているが、Oracle インスタンスリソースが Warning 状態となった場合のトラブル事例です。

[ケース1] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle SYSTEM ユーザーのパスワードが PRIMECLUSTER Wizard for Oracle に登録されていない場合や、登録されているが誤って いる場合、または正しく登録されているが有効になっていない場合に発生します。

syslog に ORA-01017 が出力されていれば本ケースに該当します。

SYSTEM ユーザーのパスワードを正しく登録し直してください。(参考 “3.3 クラスタ運用中の Oracle SYSTEM ユーザーパスワード変 更手順”)

[ケース2] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle SYSTEM ユーザーのアカウントがロックされているため、Oracle インスタンスに接続できない場合に発生します。

syslog に ORA-28000 が出力されていれば本ケースに該当します。また、以下のSQL文でSYSTEM ユーザーのアカウントの状態を参 照することでも確認できます。(account_status 列が “LOCKED(TIMED)” や “LOCKED” になっていれば該当します。)

# su - <Oracle ユーザー>

$ sqlplus /nolog SQL> connect / as sysdba

SQL> select username, account_status from dba_users;

Oracle インスタンスに sysdba 権限で接続し、SYSTEM ユーザーのアカウントロックを解除してください。

# su - <Oracle ユーザー>

$ sqlplus /nolog SQL> connect / as sysdba

SQL> alter user system account unlock;

syslog に ORA-01017 も出力されていた場合、誤ったパスワードが登録されていたために ORA-28000 が発生した可能性があります。

その場合、まず SYSTEM ユーザーのパスワードを正しく登録し直してください。(参考 “3.3 クラスタ運用中の Oracle SYSTEM ユー ザーパスワード変更手順”)

次に上記の手順でアカウントロックを解除してください。

[ケース3] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ) 監視が中断されている場合に発生します。

clorainfo -m コマンドで監視中断中かどうかを確認できます。(参考 “4.6 clorainfo - 設定情報や監視状態の表示”)

監視中断状態だった場合、対象の Oracle インスタンスが OPEN ステータスで起動していることを確認し、監視を再開してください。(参 考“4.2 hvoraenable - リソース監視の再開”)

[ケース4] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle インスタンスの監視において、監視の SQL (insert, update など) が一定時間応答しないが、Oracle インスタンスに接続ができ、

ステータスは OPEN である場合に発生します。 (監視タイムアウト)

syslog に “ERROR: 0226: Watch Timeout occurred” が出力されていれば該当します。

Oracle データベース側からの調査・対処を行ってください。

PRIMECLUSTER Wizard for Oracle による Oracle インスタンスの監視では、Oracle インスタンスから一定時間応答がなかった場合は

「監視タイムアウト」と判断します。1回目の監視タイムアウトでは、Warning 状態となるだけでリソース異常にはなりませんが、これが2回 連続して発生した場合、リソース異常と判断します。

[ケース5] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle インスタンスの監視において、max session エラー、max process エラーにより Oracle インスタンスへ接続できない場合に発生します。

syslog に ORA-00018、ORA-00020 が出力されていれば該当します。

Oracle インスタンスの SESSIONS 初期化パラメータに設定する最大セッション数や、PROCESSES 初期化パラメータに設定する最大

プロセス数には、PRIMECLUSTER Wizard for Oracle の監視用セッション分を考慮し、余裕を持った値を設定してください。詳細は、

Oracle Database のマニュアルを参照してください。

[ケース6] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)

Oracle SYSTEM ユーザーのパスワードが期限切れとなり、監視機能が Oracle インスタンスに接続できない場合に発生します。

syslog に ORA-28001 が出力されていれば本ケースに該当します。また sqlplus コマンドで SYSTEM ユーザーとして Oracle インスタ ンスに接続する際に、ORA-28001 が発生すれば該当します。

# su - <Oracle ユーザー>

$ sqlplus /nolog

SQL> connect system/password ERROR:

ORA-28001: the password has expired systemに対するパスワードを変更しています。

新規パスワード:

この場合、Oracle SYSTEM ユーザーのパスワードを変更してください。

変更後、clorapass コマンドを使って PRIMECLUSTER Wizard for Oracle への再登録を行ってください。(参考“3.3 クラスタ運用中の

Oracle SYSTEM ユーザーパスワード変更手順”)

[ケース7] (Oracle RAC スケーラブル)

Oracle RAC インスタンスの監視において、「復旧待ち時間(WFTime)」の設定が以下の場合、リソース異常になると、Oracle Clusterware

による Oracle RAC インスタンスリソースの復旧を待ち合わせる間 Warningとなります。

・ PersistentWarning

・ <秒>

「復旧待ち時間(WFTime)」の設定値は clorainfo -c コマンドで確認することができます。

(「復旧待ち時間(WFTime)」の詳細は、“2.3.5 Oracle RAC インスタンス、リスナーリソースを含む userApplication の作成” - 手順10 を 参照してください)。

Oracle データベースのアラート・ファイル等を確認し、リソース異常の原因が記録されていないか確認してください。

ドキュメント内 導入運用手引書 (ページ 149-153)