9.7.2.2 CREATE DIAGPACK

用途

CREATE DIAGPACKコマンドは、診断パッケージを作成し、これにはシステムの問題のトラブルシューティングに使用できるログおよびトレースが含まれます。必要に応じて、このパッケージをOracleサポートに送信することもできます。

構文

CREATE DIAGPACK packStartTime=time, [durationInHrs=duration]

または

CREATE DIAGPACK alertName=alertName

使用上のノート

アラートが発生した場合、診断パッケージは自動的に作成されます。このパッケージには、アラートに関連するログおよびトレースが含まれます。

CREATE DIAGPACKコマンドを使用して、手動で診断パッケージを生成できます。

  • packStartTimeパラメータは、ログおよびトレースの収集を開始する時間を指定します。packStartTimeの書式は次のとおりです。

    yyyy_MM_ddTHH_mm_ss

    例: 2015_07_07T09_00_00

    packStartTimeにキーワードnowを指定することもできます。packStartTimeには、将来の時間および7日より前の時間は指定できません。packStartTimeの値は、診断パッケージの名前の一部として使用されます。

  • durationInHrsパラメータは、診断パッケージに含めるログおよびトレースの時間数を指定します。有効な値は、1(デフォルト)から6です。

    すべての診断パッケージには、packStartTimeの1時間前および1時間後のログが含まれます。たとえば、時間として12_00_00を指定した場合、終了時間が将来でなければ、11_00_00から13_00_00のログが収集されます。

  • alertNameパラメータで、診断パッケージを作成するアラート名を指定します。LIST ALERTHISTORYコマンドを実行して、アラート名を表示できます。

診断パッケージの名前

診断パッケージの名前は、次の形式になります。

hostname + packStartTime + unique package ID

たとえば: scaqab04adm08_2016_05_17T11_58_54_5_1.tar.bz2

アラートの場合、診断パッケージの名前は次の形式になります。

hostname + timestamp of when the package was created + alert ID

たとえば: scaqab04adm08_2016_05_17T11_58_54_5_1.tar.bz

診断パッケージの場所

診断パッケージの場所は/opt/oracle/dbserver/dbms/deploy/logです。

診断パッケージのステータス

LIST DIAGPACKコマンドを実行して、システム内の診断パッケージのリストおよびそのステータスを取得できます。

診断パッケージの作成、リストおよびダウンロードに必要な権限

診断パッケージをダウンロードするには、事前にユーザーにロールを付与する必要があります。DBMCLIを使用して、次の権限をロールに付与します。
  • 診断パッケージを作成する権限:

    grant privilege CREATE ON DIAGPACK to ROLE role 
  • 診断パッケージをリストし、そのステータスをチェックする権限:

    grant privilege LIST ON DIAGPACK to ROLE role 
  • 診断パッケージをダウンロードする権限:

    grant privilege DOWNLOAD ON DIAGPACK to ROLE role 

その後、このロールをユーザーに付与できます。たとえば、ロールにdiagpack_role,という名前を付けた場合、次のコマンドでユーザーfredにロールを付与します。

DBMCLI> GRANT ROLE diagpack_role TO USER fred

デプロイ中、Oracle Exadata Deployment Assistant (OEDA)によってCELLDIAGという名前のExadataストレージ・ソフトウェア・ユーザーが作成されます。このユーザーを使用して、ExaCLIまたはREST API経由でリモートからセルに接続できます。このユーザーには診断パッケージの作成、表示およびダウンロードの権限があります。

診断パッケージのダウンロード

次のいずれかの方法で診断パッケージをダウンロードできます。診断パッケージをダウンロードする前に、DOWNLOAD ON DIAGPACK権限が必要であることに注意してください。
  • REST APIの使用

    • 名前によって診断パッケージをダウンロードするには、次のURLを使用します。ここで、hostnameにはサーバーのホスト名を、diagpacknameには診断パッケージの名前を指定します。URLは、セキュアなソケット・ポート(デフォルトは7879)を指している必要があります。

      https://hostname:7879/diagpack/download?name=diagpackname

      ユーザーがまだログインしていない場合、このURLでは、ユーザー名とパスワードの入力を求めるプロンプトが表示されます。

      診断パッケージには、次のようにアクセスすることもできます

      https://hostname:7879/diagpack

      次に例を示します:

      https://dbnode01.example.com:7879/diagpack

      このページでは、次のようにログインするユーザー名を要求されます。

      User: fred
      Password: *******

      ユーザーの権限に基づいて、このページの異なるセクションが非表示になります。ユーザーがCREATE ON DIAGPACK権限を持っていない場合は、新しいdiagpackを作成するためのフォームが表示されません。同様に、ユーザーがLIST ON DIAGPACK権限を持っていない場合は、アラートおよびその診断パッケージのリストが表示されません。

      アラート名によって診断パッケージをダウンロードするには、次のURLを使用します。ここで、hostnameにはサーバーのホスト名を、alertNameには診断パッケージのアラート名を指定します。

      https://hostname:7879/diagpack/download?alert=alertName

      これは、AlertHistoryで使用されるものと同じアラート名です。ステートレス・アラートでは1、2、3、ステートフル・アラートでは1_1、2_1、3_1、3_2のようになります。

  • ExaCLIのdownloadコマンドを使用する

    ExaCLIにより、計算ノードからリモートでストレージ・ノード上のCellCLIコマンドを実行できます。downloadコマンドを実行するには、計算ノードで次のコマンドを実行します。

    1. ExaCLIを起動し、診断パックが含まれるセルに接続します。次のようなコマンドを使用します。ここで、hostnameにはセルのホスト名を指定します。

      exacli -l celladministrator -c hostname
      Password=********
    2. downloadコマンドを実行します。次のようなコマンドを使用します。ここで、nameにはダウンロードする診断パッケージの名前を、destinationFolderには、ダウンロードされる診断パッケージを保存するディレクトリを指定します。

      exacli> download diagpack name destinationFolder 
  • アラートの電子メールから診断パッケージを取得する

    アラートの電子メールには、INFO、CLEARおよびWARNINGを除く、すべてのアラートの診断パッケージが含まれています。診断パッケージは、クリティカル・アラートのみに生成されます。

電子メールへの診断パッケージの添付をオフにする

電子メールへの診断パッケージの添付をオフにするには、コマンド alter dbserver diagPackEmailAttach=FALSEを使用します。診断パッケージは引き続き生成され、システムに格納されます。診断パッケージをダウンロードするには、「診断パッケージのダウンロード」の項を参照してください。

例9-33 packStartTimeでの"now"の使用

この例では、開始時間としてNOWを使用し、デフォルトの継続時間の1時間で診断パッケージを作成します。

出力は、ディレクトリ/opt/oracle/dbserver/dbms/deploy/logの単一の圧縮ファイルです。

DBMCLI> create diagpack packStartTime="now"
    Processing: dm01db01_diag_2015_07_08T17_53_58_1
    Use 'list diagPack' to check its status.

例9-34 継続時間の指定

この例では、/opt/oracle/dbserver/dbms/deploy/logに3つの診断パッケージが作成されます。

  • 最初のパッケージの開始時間は2015_07_07T09_00_00です。

  • 第2のパッケージの開始時間は2015_07_07T10_00_00です。

  • 第3のパッケージの開始時間は2015_07_07T11_00_00です。

DBMCLI> create diagpack packStartTime="2015_07_07T09_00_00", durationInHrs=3
    Processing: dm01db01_diag_2015_07_07T09_00_00_1
    dm01db01_diag_2015_07_07T10_00_00_1 (In queue...)
    dm01db01_diag_2015_07_07T11_00_00_1 (In queue...)
    Use 'list diagPack' to check its status.