Oracle Exadata Database Service on Dedicated Infrastructure

この項の情報を使用して、Oracle Exadata Database Service on Dedicated Infrastructureの一般的な問題を解決します。

EFSマウント

EFSマウントの一般的なエラーを解決するには、このセクションの情報を使用します。

問題の概要:

OracleがDirect NFS (dNFS)を介してAmazon EFSにアクセスすると、ファイル・アクセス・ストール、バックアップ起動の一時停止またはEFS関連のI/Oがハングしたように見えます。オペレーティング・システムのNFSクライアントを介したアクセスを標準化して、混合クライアントの動作を削除し、データベース・ホストをEFSアクセス・モデルに合せて調整します。

ノート

Amazon EFSでは、Oracle Direct NFS (dNFS)はサポートされていません。
この問題を解決するには:
  1. dNFSを無効にします。
  2. EFS関連のoranfstabマッピングを削除します。
  3. NFSv4.1を介したカーネルのNFSアクセスを保持します。
クラスタ化されたExadata環境では、サービスを通常の操作に戻す前に、関連する各ノードおよびOracleまたはGridホームにホストレベルの変更を適用します。

Oracle Real Application Clusters(RAC)の場合

Amazon EFSファイルシステムをすべての RACノードにマウントし、各 RACインスタンスで次の手順を実行します。クラスタで複数のORACLE_HOMEインストールを使用する場合は、各ORACLE_HOMEに個別に構成を適用します。

この要件は、SCANリスナーを使用するプロセスを任意のRACインスタンスに誘導できるために存在します。EFSがインスタンスにマウントされていない場合、そのインスタンスにルーティングされた接続または操作は失敗します。

事前条件

  • Amazon EFSはマウントされ、Exadata Databaseノードから到達可能です。
  • メンテナンス・ウィンドウまたは制御された再起動を使用できます。
  • Oracleソフトウェア所有者およびSYSDBAからアクセスできます。
  • ORACLE_HOMEは、ターゲット・サーバーで正しく設定されています。
  • RACまたはマルチノードのExadataデプロイメントの場合は、影響を受ける各ノードでホスト・レベルのステップを繰り返します。

変更前の検証

  1. EFSマウントプロトコルを確認します。

    ファイル・システムがLinux NFSクライアントを介してマウントされ、NFSv4.1が使用中であることを確認します。

    mount | grep -E 'nfs4|nfsvers=4.1'
    nfsstat -m

    期待される結果: EFSマウントには、カーネルNFSクライアントに合致する NFSv4または NFSv4.1の詳細が表示されます。

  2. dNFSがアクティブかどうかを確認します。

    SQL*Plusを使用して、OracleがdNFSサーバー・マッピングをレポートするかどうかを確認します。

    sqlplus / as sysdba
    SELECT * FROM v$dnfs_servers;

    予想される結果:返される行は、dNFSがアクティブであることを示します。dNFSがすでに無効になっていることを示す行はありません。

  3. 既存のdNFSマッピングを保持します(オプション)。

    ローカル変更制御標準でリカバリ・アーティファクトが必要な場合は、現在のoranfstabファイルをバックアップしてから削除します。

    cp -p $ORACLE_HOME/dbs/oranfstab $ORACLE_HOME/dbs/oranfstab.bak 2>/dev/null ||
        true.

修正処理

  1. Oracleソフトウェア所有者に切り替えます。
    su - oracle
  2. Oracle RDBMSライブラリ・ディレクトリに移動します。
    cd $ORACLE_HOME/rdbms/lib
  3. Oracle Direct NFSを無効にします。

    ターゲットOracleホームのdNFSを無効化するOracle makeターゲットを実行します。

    make -f ins_rdbms.mk dnfs_off

    このステップでは、NFSベースのストレージ・アクセスにdNFSではなくオペレーティング・システムのNFSクライアントを使用するようにOracleに指示します。詳細については、Enabling and Disabling Direct NFS Client Control of NFSを参照してください。

  4. dNFS構成ファイルを削除します。

    oranfstabを削除して、OracleがEFS関連のdNFSマッピングを使用しないようにします。

    rm -f $ORACLE_HOME/dbs/oranfstab
  5. データベース・サービスの再起動:
    1. 単一インスタンス・データベース:変更後にインスタンスを再起動します。
      sqlplus / as sysdba
      SHUTDOWN IMMEDIATE;
      STARTUP;
    2. RACクラスタの実装: RACまたはマルチノードのExadataデプロイメントの場合は、インスタンスをオンラインにする前に、関連するすべてのノードおよび各OracleホームまたはGridホームにdNFS無効化を適用します。srvctl restartプロシージャを使用します。

変更後の検証

検証チェック コマンド/メソッド 予期される結果
dNFS無効
SELECT * FROM v$dnfs_servers;
行が選択されていません
カーネルNFSはアクティブなままです
mount | grep -E 'nfs4|nfsvers=4.1'
EFSマウントは NFSv4 / NFSv4.1として表示されたままです
機能確認 EFSパスに対して小さい読取り/書込みテストまたはRMAN検証を実行します。 操作がハングまたは拡張起動一時停止なしで完了します。
alert.log確認 このメッセージがデータベース・インスタンスのalert.logファイル(ODMで実行されているOracleインスタンス: Oracle Direct NFS ODMライブラリ・バージョン6.0)に存在するかどうかを確認します。

dNFSが無効になった後は、このメッセージがalert.log表示されないようにしてください。

それでも表示されている場合は、dNFSの無効化が正常に完了していないことを示します。

プロシージャを確認し、各ステップが正しく適用されたことを確認し、ステップを再度実行します。

トラブルシューティング・ノート

  • dnfs_offの実行に失敗する: ORACLE_HOMEを検証し、$ORACLE_HOME/rdbms/libからコマンドを実行し、Oracleソフトウェア所有者が必要なアクセス権を持っていることを確認します。
  • v$dnfs_serversは再起動後も引き続き行を返します。正しい Oracleホームで変更を適用することを確認します。クラスタ環境では、再起動前にすべての関連ノードに変更を適用します。
  • oranfstabはすでに不在です:これは許容可能です。再起動および変更後の検証を続行します。
  • dNFSを無効にした後もEFSストールは継続されます。 NFSマウント・オプション、ネットワーク接続およびDNS解決を確認します。EFSマウントに対して Oracle以外のファイルI Oテストを実行します。