日本語PDF

17 Oracle ACFSの高度なトピックの理解

Oracle ACFSの高度なトピックには、さらに複雑な管理の問題に関する説明が含まれています。

この付録では、Oracle Automatic Storage Management Cluster File System (Oracle ACFS)の制限事項、高度な管理およびトラブルシューティングなどの高度なトピックについて説明します。

関連項目:

Oracle ACFSおよびOracle ADVMの詳細は、My Oracle Support(https://support.oracle.com)の記事を参照してください。

この付録の内容は次のとおりです。

Oracle ACFSの概要は、「Oracle ACFSおよびOracle ADVMの概要」を参照してください。

Oracle ACFSの制限事項

この項では、Oracle ACFSの制限事項について説明します。

この項の内容は次のとおりです。

ノート:

Oracle ACFSでは、ディレクトリのハード・リンクをサポートしません。

Oracle ACFSディスク領域使用量

Oracle ACFSは、32ビットシステム上の64個、および64ビットシステム上の256個のそれぞれマウントされたファイル・システムをサポートします。十分なメモリーがある場合はそれ以上のファイル・システムをマウントできます。

Oracle ACFSは、ファイル・システム内の2^40 (1兆)ファイルをサポートします。40億以上のファイルがテストされました。ファイル・システム内のディレクトリ数に絶対的な制限はありません。制限はハードウェア・リソースに基づきます。

Oracle ACFSでは、データを書き込む際、パフォーマンスを高めるために大規模なユーザー・ファイルを事前に割り当てます。この記憶域は、ファイルが閉じられても戻されませんが、ファイルを削除すると戻されます。ノードでファイル・システムが初めてマウントされるときには、Oracle ACFSによりローカル・メタデータ・ファイルも割り当てられます。その結果、領域不足エラーが原因でマウントが失敗する可能性があり、この記憶域の大部分は隣接している必要があります。この記憶域は、1ノード当たり約64から128MBです。

空き領域を探すときに、グローバル記憶域ビットマップ上での競合を減らすために、Oracle ACFSはローカル・ビットマップも使用できるようにしておきます。このディスク領域は、一部の領域が実際にまだ割り当てられていない場合でも、Linux dfコマンドなどのツールによってin useとしてレポートされます。このローカルの記憶域プールは、ノードごとに128 MBと同じ大きさにでき、dfなどのようなコマンドでもスペース割当てを可能にし、割り当てられているよりも少ない領域でレポートできます。

Oracle ACFSファイル・システムに割り当てることができる最大サイズを表17-1に示します。Oracle ACFSおよびOracle ASMに対するストレージ制限は、ディスク・グループ互換性属性によって決まります。

表17-1 Oracle ACFSファイル・システムまたはOracle ADVMボリュームの最大ファイル・サイズ

冗長性 COMPATIBLE.ASM < 12.2.0.1のディスク・グループ COMPATIBLE.ASM >= 12.2.0.1のディスク・グループ*

外部

128 TB

128 TB

標準

64 TB

128 TB

42.6 TB

128 TB

関連項目:

Oracle ACFSのエラー処理

Oracle ACFSまたは別のファイル・システムがOracle ADVMボリュームを使用しているときにOracle ASMインスタンスに障害が発生したり強制終了となると、I/O障害が発生します。そのボリュームに再びアクセスするには、ボリュームを閉じてから、開きなおす必要があります。これには、ローカルOracle ASMインスタンスの障害発生時にマウントされていたすべてのファイル・システムをディスマウントします。インスタンスの再起動後に、対応するディスク・グループを有効なボリュームでマウントしてから、ファイル・システムを再マウントすることも必要です。ボリュームおよびOracle ACFSファイル・システムの登録解除、ディスマウント、無効化を参照してください。

ファイル・システムがOracle ADVMボリューム・ファイルに現在マウントされている場合は、それらのファイル・システムを先にディスマウントせずにOracle ASMインスタンスを終了するのに、SHUTDOWN ABORTコマンドを使用しないでください。使用すると、アプリケーションでI/Oエラーが発生し、Oracle ASMストレージの隔離前に、終了時点で書き込まれるOracle ACFSのユーザー・データおよびメタデータがストレージにフラッシュされない可能性があります。ファイル・システムをディスマウントする時間がない場合は、SHUTDOWN ABORT操作を発行する前に、2つのsync (1)コマンドを実行してキャッシュ済のファイル・システム・データおよびメタデータを永続ストレージにフラッシュする必要があります。

メタデータの書込みが失敗した場合、その原因がOracle ASMインスタンスの障害であろうと記憶域の障害であろうと、Oracle ACFSはオペレーティング・システム環境を中断しません。かわりに、Oracle ACFSはエラーを特定のファイル・システムにまで隔離し、ファイル・システムをオフライン・エラー状態にします。それ以降、そのファイル・システムのそのノードで成功する唯一の操作は、ディスマウント操作です。もう1つのノードでは(記憶域にメタデータを書き込めると仮定して)、未処理のメタデータ・トランザクションがリカバリされます。I/Oの異常が解決したら、オフラインにしたノードにファイル・システムを再びマウントできます。

ファイル・システムのディレクトリがプロセスの現在の作業ディレクトリであるなど、ファイル・システムを参照するプロセスが存在する場合、管理者がオフライン・エラー状態にあるファイル・システムをディスマウントすることはできません。この場合、ファイル・システムをディスマウントするには、ファイル・システムのファイルおよびディレクトリを参照するそのノード上のすべてのプロセスを識別して、それらを終了させる必要があります。Linuxのfuserまたはlsofコマンド、あるいはWindowsのhandleコマンドは、プロセスおよびオープン・ファイルに関する情報を表示します。

Oracle ACFSは、チェックサムまたは想定されるタイプの比較に基づいて、読取り操作から戻されたファイル・メタデータで不整合を検出すると、適切な処理を実行して影響を受けるファイル・システム・コンポーネントを隔離し、fsckまたはacfschkdskをできるだけ早く実行する必要があることを示す通知を生成します。ファイル・システムがマウントされるたびに、fsckまたはacfschkdskが実行されるまで、システム・イベント・ログ出力メッセージにより通知が生成されます。

Oracle ACFSとNFS

Linux上のNFSを介してファイル・システムをエクスポートするときには、-fsid=numエクスポート・オプションを使用します。このオプションは、NFSクライアントとの通信に使用されるファイル・ハンドルのファイル・システム識別子の部分を、ファイル・システムがマウントされているブロック・デバイスのメジャー番号およびマイナー番号から導出された数値のかわりに、強制的に指定した値にします。numには32ビットの番号であれば使用できますが、エクスポートされたすべてのファイル・システムの間で一意であることが必要です。また、numは、クラスタのメンバー間で一意であり、特定のファイル・システムのクラスタの各メンバーで同じnumであることが必要です。これが必要なのは、Oracle ASM DVMブロック・デバイスのメジャー番号が、同じノードのすべての再起動で、またはクラスタ内の様々なノードで、同じであると保証されないためです。

Gridホーム・クラスタ用の高可用性NFS (HANFS)を使用している場合、HANFSでは、前の段落で記述されている状況を自動的に処理します。HANFSの詳細は、Oracle Grid Infrastructure用の高可用性Network File Storageを参照してください。

Oracle ADVMの制限事項

このトピックでは、Oracle ADVMの制限事項について説明します。

Oracle ADVMボリュームのデフォルトの構成は、8列、ストライプ幅が1MBです。デフォルトのボリューム・エクステント・サイズは64MBです。

Oracle ADVM動的ボリュームで列数を1に設定すると、Oracle ADVMボリュームのストライプ化は事実上終了します。データベース・データ・ファイルおよびその他のファイルを使用して最適なパフォーマンスを実現するには、列を8(デフォルト)に設定することをお薦めします。

Linuxプラットフォームでは、Oracle ASM動的ボリューム・マネージャ(Oracle ADVM)ボリューム・デバイスは、Oracle ASMディスク・グループ内の基礎となるストレージの構成に関係なく、ブロック・デバイスとして作成されます。Oracle ADVMボリューム・ブロック・デバイスのRAWボリューム・デバイスへのマップにRAW (8)を使用しないでください。

Oracle ADVMボリュームを管理するASMCMDコマンドの詳細は、ASMCMDによるOracle ADVMの管理を参照してください。

ACFSスナップショットを使用したフル・データベース(非CDBまたはCDB)のクローニング方法

ACFSスナップショットは、ファイル・システムのスパースなPoint-in-Timeコピーであり、これを使用すると、DBがACFS上にある場合に、PDBスナップショット・クローニングを使用してPDBのクローンと同様にフルDBクローンも作成できます(PDBクローニングのユーザー・インタフェース)。ACFSスナップショットをテスト環境および開発環境で使用して、テスト・マスターの高速で領域効率の高いクローンを作成できます。この項では、ACFSスナップを使用してフルDBクローンを作成するために必要なステップを例とともに説明します。

テスト設定: クローニングされるSOURCEという単一のテスト・マスターCDBがあります。このCDBにはsourcepdb[1-10]という名前で10個のPDBがあり、それぞれOLTPスキーマとともにロードされます。これはReal Application Cluster (RAC)データベースで、インスタンスは両方のノードで実行されています。データファイル、REDOログおよび制御ファイルは、"/mnt/dbvol"にマウントされたACFSに格納されます。このファイル・システムは、DATAディスク・グループに作成されます。リカバリ・ログおよびアーカイブ・ログは、RECOディスク・グループの最上位に作成される、"/mnt/rvol"にマウントされたファイル・システムに格納されます。ACFSスナップはファイル・システム内に格納され、同じマウントポイントを介してアクセスできます。

問題が発生した場合のリカバリ方法を提供するために、テスト・マスター・データベースのバックアップを定期的に作成することをお薦めします。

ExadataでのACFSスナップショットの構成の詳細は、Oracle Exadataストレージ・スナップショットの設定を参照してください

様々なACFSスナップショットのユースケースの詳細は、ExadataでのOracle ACFSスナップショットのユースケースに関するMy Oracle Support (MOS)ノートを参照してください(ドキュメントID 2761360.1)。

クローンを作成および使用するステップ

  1. データベースがアーカイブ・ログ・モードであることを確認します。
    SQL> archive log list
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /mnt/rvol/archive
    Oldest online log sequence     488
    Next log sequence to archive   489
    Current log sequence           489
    SQL>
  2. テスト・マスター・データベースの制御ファイルのSQLトレース・バックアップを取得します。生成されたスクリプトは、このテスト・マスターのスナップショットごとに制御ファイルを作成するための基礎として使用されます。このバックアップは、AS句で指定された場所に作成されます。RESETLOGS引数を指定すると、create controlfile文のRESETLOGSバージョンのみがトレース・ファイルに生成されます。
    SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/source1_ctlfile_bkup.sql' RESETLOGS;
    Database altered.
    
    [oracle@machine ~]$ ls -lrt /tmp/source1_ctlfile_bkup.sql
    -rw-r----- 1 oracle oinstall 32874 Jun 16 04:01 /tmp/source1_ctlfile_bkup.sql
  3. DBインスタンスがspfileを現在使用している場合は、spfileからpfileを作成します。
    SQL> CREATE PFILE=’/tmp/clone_pfile.ora’ FROM SPFILE;
     
    File created.
     
    SQL>

    pfileは、PFILE=句で指定された場所に保存されます。

  4. テスト・マスター・データベースを停止し、データファイル・ファイル・システムのRWスナップを作成します。
    [oracle@machine ~]$ srvctl stop database -db source
    [oracle@machine ~]$ /sbin/acfsutil  snap create -w clone /mnt/dbvol/
    acfsutil snap create: Snapshot operation is complete.
    [oracle@machine ~]$ /sbin/acfsutil snap info clone /mnt/dbvol/
    snapshot name:               clone
    snapshot location:           /mnt/dbvol/.ACFS/snaps/clone
    RO snapshot or RW snapshot:  RW
    parent name:                 /mnt/dbvol/
    snapshot creation time:      Tue Jun 16 04:09:10 2020
    file entry table allocation: 17170432   (  16.38 MB )
    storage added to snapshot:   17170432   (  16.38 MB )
    $
  5. ステップ2で生成されたトレース・ファイルを変更します。

    バックアップされたトレース・ファイル内の次のブロックは、

    STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "SOURCE" RESETLOGS  ARCHIVELOG
        MAXLOGFILES 192
        MAXLOGMEMBERS 3
        MAXDATAFILES 1024
        MAXINSTANCES 32
        MAXLOGHISTORY 2254
    LOGFILE
      GROUP 5 (
        '/mnt/dbvol/oradata/SOURCE/onlinelog/o1_mf_5_hfh27gq1_.log',
        '/mnt/rvol/fast_recovery_area/SOURCE/onlinelog/o1_mf_5_hfh27jgv_.log'
      ) SIZE 2048M BLOCKSIZE 512,
      GROUP 6 (
        '/mnt/dbvol/oradata/SOURCE/onlinelog/o1_mf_6_hfh27ymp_.log',
        '/mnt/rvol/fast_recovery_area/SOURCE/onlinelog/o1_mf_6_hfh280cb_.log'
      ) SIZE 2048M BLOCKSIZE 512

    次のように変更する必要があります。

    CREATE CONTROLFILE  DATABASE "SOURCE" RESETLOGS ARCHIVELOG
        MAXLOGFILES 192
        MAXLOGMEMBERS 3
        MAXDATAFILES 1024
        MAXINSTANCES 32
        MAXLOGHISTORY 2254
    LOGFILE
      GROUP 5  SIZE 2048M BLOCKSIZE 512,
      GROUP 6  SIZE 2048M BLOCKSIZE 512

    新しいREDOログ・ファイルを作成するので、ターゲット・ファイルを作成するためにDBインスタンスによってdb_create_online_log_dest_1パラメータが選択されることに注意してください。前述の文で名前を指定する必要はありません。OracleがOracle Managed Files (OMF)を使用して名前を指定します。

    CREATE CONTROLFILE文で指定されているDATABASE名は、テスト・マスターのデータベース名と一致する必要があります。DB_UNIQUE_NAMEパラメータは、これをテスト・マスターとは別のデータベースにするために使用されます。

    DATAFILEブロックのファイル名は、スナップショットで作成されたファイルを指すようにディレクトリ構造を変更する必要があります。

    ノート: これらのファイル名を変更しないと、スナップショットがファイルを破損して親ファイルを直接使用し始める可能性があります。スナップショットの場所を指すようにすべてのデータファイル名が変更されていることを確認してください。

    次の名前のファイルは、

    /mnt/dbvol/oradata/source/datafile/o1_mf_system_hkp8q4l0_.dbf

    次の名前に変更する必要があります

    /mnt/dbvol/.ACFS/snaps/clone/oradata/source/datafile/o1_mf_system_hkp8q4l0_.dbf

    制御ファイルの作成を試行する前に、すべてのスナップショット・データ・ファイルが存在することを確認してください。

    TEMPファイルはすべて新規作成されるため、対応する文を変更する必要があります。

    • 古いTEMPファイルの句:
      ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/dbvol/oradata/SOURCE/datafile/o1_mf_temp_hf9ck61d_.tmp'
           SIZE 1377M REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "PDB$SEED";
      ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/dbvol/oradata/SOURCE/datafile/temp012020-06-01_03-40-57-522-AM.dbf'
           SIZE 37748736  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "SOURCEPDB1";
      ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/dbvol/oradata/SOURCE/A70228A28B4EB481E053DFB2980A90DF/datafile/o1_mf_temp_hf9f8yxz_.dbf'
           SIZE 37748736  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "SOURCEPDB2";
      ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/dbvol/oradata/SOURCE/A70229825B448EF3E053E0B2980AA4D4/datafile/o1_mf_temp_hf9f9goq_.dbf'
           SIZE 37748736  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ...........................................
      ...........................................
      ...........................................
    • 新しいTEMPファイルの句:
      ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 1377M AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "PDB$SEED";
      ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 37748736   AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "SOURCEPDB1";
      ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 37748736   AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ALTER SESSION SET CONTAINER = "SOURCEPDB2";
      ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 37748736   AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
      ...........................................
      ...........................................
      ...........................................

    ノート:

    OMFが一時ファイルの命名に使用されており、ファイル名を指定する必要はありません。
    • その他の変更点:
      • 全体にわたってREUSE文を削除します。
      • RECOVER DATABASEコマンドを削除します。
      • ブロック変更トラッキングを有効にするコマンドを削除します。

    次に、完全な制御ファイル作成文の例を示します。

    STARTUP NOMOUNT
    CREATE CONTROLFILE  DATABASE "SOURCE" RESETLOGS  ARCHIVELOG
        MAXLOGFILES 1024
        MAXLOGMEMBERS 5
        MAXDATAFILES 32767
        MAXINSTANCES 32
        MAXLOGHISTORY 33012
    LOGFILE
    GROUP 1 SIZE 4096M BLOCKSIZE 512, 
    GROUP 2 SIZE 4096M BLOCKSIZE 512, 
    GROUP 5 SIZE 4096M BLOCKSIZE 512, 
    GROUP 6 SIZE 4096M BLOCKSIZE 512 
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/datafile/o1_mf_system_hkpjm4lh_.dbf',
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFDB0C85C03151AE053FE5E1F0AA61D/datafile/o1_mf_system_hkpjm4rf_.dbf',
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/datafile/o1_mf_sysaux_hkpjm56t_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFDB0C85C03151AE053FE5E1F0AA61D/datafile/o1_mf_sysaux_hkpjm6x4_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/datafile/o1_mf_undotbs1_hkpjm6x0_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFDB0C85C03151AE053FE5E1F0AA61D/datafile/o1_mf_undotbs1_hkpjm6w5_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/datafile/o1_mf_undotbs2_hkpjm6tx_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/datafile/o1_mf_users_hkpjm722_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_system_hkpjmqds_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_sysaux_hkpjmqoc_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_undotbs1_hkpjmtl7_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_undo_2_hkpjn03d_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_users_hkpjn16b_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AAFE1E09C8245CC2E053FE5E1F0A5632/datafile/o1_mf_soe_hkpjn1ft_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_system_hkpjn8h4_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_sysaux_hkpjn8nt_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_undotbs1_hkpjn8qq_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_undo_2_hkpjnf2p_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_users_hkpjnglw_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB1122BDE19EF370E053FE5E1F0A4E77/datafile/o1_mf_soe_hkpjnkm6_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_system_hkpjnl8v_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_sysaux_hkpjnmfm_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_undotbs1_hkpjnqjz_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_undo_2_hkpjnqk7_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_users_hkpjnygh_.dbf',  
    '/mnt/dbvol/.ACFS/snaps/clone/oradata/AB112685643A0B77E053FE5E1F0A7BDD/datafile/o1_mf_soe_hkpjnyv6_.dbf'
    CHARACTER SET AL32UTF8;
    
    -- 
    -- 
    -- Create log files for threads other than thread one.
    ALTER DATABASE ADD LOGFILE THREAD 2
    GROUP 3 SIZE 4096M BLOCKSIZE 512 ,
    GROUP 4 SIZE 4096M BLOCKSIZE 512 ,
    GROUP 7 SIZE 4096M BLOCKSIZE 512 ,
    GROUP 8 SIZE 4096M BLOCKSIZE 512 ;
    -- Database can now be opened zeroing the online logs.
    ALTER DATABASE OPEN RESETLOGS;
    -- Open all the PDBs.
    ALTER PLUGGABLE DATABASE ALL OPEN;
    -- Commands to add tempfiles to temporary tablespaces.
    -- Online tempfiles have complete space information.
    -- Other tempfiles may require adjustment.
    ALTER TABLESPACE TEMP ADD TEMPFILE
         SIZE 32768M  AUTOEXTEND ON NEXT 16384M MAXSIZE 524288M;
    ALTER SESSION SET CONTAINER = PDB$SEED;
    ALTER TABLESPACE TEMP ADD TEMPFILE
         SIZE 32767M  AUTOEXTEND OFF;
    ALTER SESSION SET CONTAINER = PDB201;
    ALTER TABLESPACE TEMP ADD TEMPFILE
         SIZE 32768M  AUTOEXTEND ON NEXT 16384M MAXSIZE 524288M;
    ALTER SESSION SET CONTAINER = PDB202;
    ALTER TABLESPACE TEMP ADD TEMPFILE
         SIZE 32768M  AUTOEXTEND ON NEXT 16384M MAXSIZE 524288M;
    ALTER SESSION SET CONTAINER = PDB203;
    ALTER TABLESPACE TEMP ADD TEMPFILE
         SIZE 32768M  AUTOEXTEND ON NEXT 16384M MAXSIZE 524288M;
    ALTER SESSION SET CONTAINER = CDB$ROOT;
    -- End of tempfile additions.
    shutdown immediate
    exit
    
  6. 前述のステップ3でバックアップしたPFILEを編集します。データベース・クローンについてもdb_nameは同じままですが、db_unique_nameは異なる必要があることに注意してください。RACインスタンスもdb_unique_nameから名前を導出する必要があります。ファイル・パスがスナップ内の対応する場所を指していることを確認します。必要な変更を次にまとめます。
    • 追加される新しいパラメータ。
      *.db_unique_name='clone'
    • 既存のインスタンス名を新しいインスタンス名に変更します。
      • 変更前:
            source1.instance_number=1
            source2.instance_number=2
            source1.thread=1
            source2.thread=2
            source1.undo_tablespace='UNDOTBS1'
            source2.undo_tablespace='UNDOTBS2'
      • 変更後:
            clone1.instance_number=1
            clone2.instance_number=2
            clone1.thread=1
            clone2.thread=2
            clone1.undo_tablespace='UNDOTBS1'
            clone2.undo_tablespace='UNDOTBS2'

    インスタンス名の出現箇所すべてに同様の変更を加えます。

    RACデータベースの場合、クローン・インスタンスはまず排他モードで起動し、次にクローンの作成後にクラスタ・モードで再起動する必要があることに注意してください。このような場合は、PFILEのCLUSTER_DATABASEパラメータをコメント・アウトします。
    *.cluster_database=true
    pfile内のパラメータを変更して、スナップショット内の新しいデータファイル、アーカイブ・ログおよび制御ファイルの場所を考慮に入れるようにします。
    • 変更前:
          *.db_create_file_dest='/mnt/dbvol/oradata'
          *.log_archive_dest_1='LOCATION=/mnt/rvol/archive1'
          *.control_files='/mnt/dbvol/oradata/SOURCE/controlfile/o1_mf_hf9cjtv0_.ctl','/mnt/rvol/fast_recovery_area/SOURCE/controlfile/o1_mf_hf9cjtxr_.ctl'
    • 変更後:
          *.db_create_file_dest='/mnt/dbvol/.ACFS/snaps/clone/oradata'
          *.log_archive_dest_1='LOCATION=/mnt/rvol/archive1'
          *.control_files='/mnt/dbvol/.ACFS/snaps/clone/oradata1/ctrl_1_.ctl'
       
    クローンの監査トレース・ファイルの新しい場所を指定します。
        *.audit_file_dest='/u01/app/oracle/admin/clone/adump'

    前述のディレクトリが存在しない場合は作成します。

    $ mkdir –p /u01/app/oracle/admin/clone/adump
  7. 変更されたPFILEを$ORACLE_HOME/dbsディレクトリからコピーし、ローカル・クローン・データベース・インスタンス名と一致するように名前を init.oraファイルとして変更します。例: $ cp /tmp/clone_pfile.ora $ORACLE_HOME/dbs/initclone1.ora
  8. ソース・データベースからクローン用の新しいファイル名にパスワード・ファイルをコピーします。
    $ cp <Directory where password file is stored>/orapwsource /mnt/dbvol/.ACFS/snaps/clone/orapwclone
  9. 新しいSIDを指すようにORACLE_SIDを設定し、ステップ5で生成したSQLスクリプトを実行します。
    [oracle@machine dbclone]$ export ORACLE_SID=clone1
    [oracle@machine dbclone]$ sqlplus / as sysdba
     
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 16 04:50:21 2020
    Version 19.7.0.0.0
     
    Copyright (c) 1982, 2020, Oracle.  All rights reserved.
     
    Connected to an idle instance.
     
    SQL> spool startup.log
    SQL> @ctlfile
    ORACLE instance started.
     
    Total System Global Area 8.1068E+10 bytes
    Fixed Size                 30383424 bytes
    Variable Size            1.1006E+10 bytes
    Database Buffers         6.9793E+10 bytes
    Redo Buffers              238051328 bytes
     
    Control file created.
    System altered.
    Database altered.
    Pluggable database altered.
    Tablespace altered.
    Session altered.
    Tablespace altered.
    Session altered.
    Tablespace altered.
    Session altered.
    Tablespace altered.
    .........................
    .........................
    .........................
    .........................
  10. これで、DBは最初のノードに排他モードでマウントされます。テスト・マスター・データベースがRACデータベースで、スナップショットでRACを有効にする場合は、データベースを停止し、pfileにcluster_database=trueパラメータを設定してインスタンスを再起動します。spfileを作成し、ACFSデータベース・ファイル・システムに格納します。これが完了したら、両方のRACインスタンスを起動し、すべてのノードでDBを稼働させます。
    SQL> create spfile=’/mnt/dbvol/.ACFS/snaps/clone/oradata/spfileclone.ora’ from pfile=”<ORACLE_HOME>/dbs/initclone1.ora’

    データベースとそのプロパティをCluster Ready Services (CRS)に追加します

    $ srvctl add database -db clone -oraclehome $ORACLE_HOME -dbtype RAC -spfile /mnt/dbvol/.ACFS/snaps/clone/oradata/spfileclone.ora -pwfile /mnt/dbvol/.ACFS/snaps/clone/orapwclone -dbname source -acfspath "/mnt/dbvol,/mnt/rvol" -policy AUTOMATIC -role PRIMARY

    クラスタの各ノード/インスタンスにインスタンスを追加します。

    $ srvctl add instance -db clone -instance clone -node <node hostname>
  11. アーカイブ・ログが新しい宛先を使用していることを確認します。
    SQL> archive log list
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /mnt/rvol/archive1
    Oldest online log sequence     489
    Next log sequence to archive   490
    Current log sequence           490
    SQL>

    クラスタ・データベース・モードが使用されているかどうかを確認します。

    SQL> SHOW PARAMETER cluster_database
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cluster_database                     boolean     TRUE
    cluster_database_instances           integer     2
    SQL>

    RAC環境の場合、データベースが正しく構成されるように、必要に応じてsrvctl start databaseおよびstop databaseコマンドを使用します。

  12. クローン内のすべてのPDBをオープンして使用できることを確認します。
    SQL> SELECT open_mode FROM v$pdbs;
     
    OPEN_MODE
    ----------
    READ ONLY
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
    READ WRITE
     
    11 rows selected.
     
     
    SQL> ALTER SESSION SET CONTAINER=SOURCEPDB1;
     
    Session altered.
     
    SQL> SELECT name FROM v$tablespace;
     
    NAME
    ------------------------------
    SYSTEM
    SYSAUX
    UNDOTBS1
    UNDO_2
    USERS
    USER_TBS
    LOB_TBS
    FLASHBACK_TBS
    TEMP
    USER_TEMP
     
    10 rows selected.
     
    SQL>
これでDBクローンの準備が完了し、テストの実行に使用できます。クローンが稼働している間は、そのクローンまたはテスト・マスターから追加のクローンを作成できます。これにより、ACFSスナップショット・テクノロジを使用して任意の数のDBクローンを簡単に作成できます。
これらの新しいDBクローンのために、親に使用されるものと同様の(またはアプリケーションの必要に応じた)サービスを追加することもお薦めします。

Oracle ACFSループバックのサポート

Oracle ACFSでは、Linuxオペレーティング・システムでループバック機能がサポートされているため、Oracle ACFSファイルにデバイスとしてアクセスできます。

Oracle ACFSループバック・デバイスは、Oracle ACFSファイルにブロック・デバイスとしてアクセスできる、オペレーティング・システムの疑似デバイスです。この機能は、Oracle ACFSファイル・システムで作成され、Oracle ACFSループバック・デバイスによって提供されるOVMのイメージ、テンプレートおよび仮想ディスク(vdisk)をサポートするOracle Virtual Machines (OVM)とともに使用できます。

Oracle ACFSループバック機能により、NFS経由のパフォーマンスが向上します。ファイルは、疎ファイルでも非疎ファイルでもかまいません。

一般的なループバック・サポートに加えて、Oracle ACFSでは、疎イメージに対するループバック直接I/O (DIO)もサポートされています。

Oracle ACFSドライバ・リソース管理

Oracle ACFS、Oracle ADVMおよびOKSドライバは、Oracle Restart構成を除いて、Oracle Grid Infrastructureスタックの起動時にロードされます。システムが再起動されるまでドライバはロードされたままですが、その時点で、Oracle Grid Infrastructureスタックを再起動すると、ドライバは再びロードされます。

Oracle ACFS、Oracle ADVMおよびOKSドライバを管理するコマンドの詳細は、Oracle ACFSドライバのコマンドを参照してください。

Oracle ACFSレジストリ・リソース管理

Oracle ACFSレジストリ・リソースは、Oracle Grid Infrastructureクラスタ構成でのみサポートされます。Oracle Restart構成ではサポートされません。Oracle ACFSとOracle Restartを参照してください。

Oracle ASM 12cリリース1 (12.1)の場合、Oracle ACFSレジストリでは、SRVCTLファイル・システム・インタフェースを介して使用可能な、標準的で単一のファイル・システム・リソースを使用します。詳細は、Oracle ACFSファイル・システム・リソース管理を参照してください。SRVCTLを使用すると、アプリケーションを、登録済のファイルシステムに依存するようにできます(srvctl filesystemを使用して、登録済のファイルシステムを管理するなど)。デフォルトでは、acfsutil registryは、AUTO_START属性がalwaysに設定され、常にマウントするように設定されたファイル・システムのみを表示します。

Oracle ACFSレジストリは、ファイル・システムを登録および削除するroot権限が必要ですが、userオプションを使用すると、他のユーザーに、ファイル・システムを起動および停止(マウントおよびアンマウント)する権限が付与されます。

Oracle ACFSファイル・システム・リソース管理

Oracle ACFSファイル・システム・リソースは、Oracle Grid Infrastructureクラスタ構成でのみサポートされます。Oracle Restart構成ではサポートされません。Oracle ACFSとOracle Restartを参照してください。

Oracle ASMコンフィギュレーション・アシスタント(ASMCA)により、Oracle ACFSファイル・システム・リソース(ora.diskgroup.volume.acfs)の作成が容易になります。Database Configuration Assistant(DBCA)を使用したデータベースの作成中に、Oracle ACFSファイル・システム・リソースは、関連付けられたディスク・グループの依存性リストに加えられるため、ディスク・グループを停止すると、依存するOracle ACFSファイル・システムも停止されるようになります。

Oracle ACFSファイル・システム・リソースは通常、アプリケーション・リソースの依存性リストで使用するために作成されます。たとえば、Oracle Databaseホームとして使用するためにOracle ACFSファイル・システムが構成されている場合、ファイル・システム用に作成されたリソースは、Oracle Databaseアプリケーションのリソース依存性リストに含まれます。この依存性により、データベース・アプリケーションの起動アクションの結果、ファイル・システムとスタックは自動的にマウントされます。

Oracle ACFSファイル・システム・リソースの起動アクションは、ファイル・システムのマウントです。このOracle ACFSファイル・システム・リソース・アクションには、関連付けられたファイル・システム・ストレージ・スタックがアクティブであることの確認とディスク・グループのマウント、ボリューム・ファイルの有効化、マウント操作の完了に必要な場合のマウント・ポイントの作成が含まれます。ファイル・システムのマウントに成功した場合、リソースの状態はonlineに、失敗した場合はofflineに設定されます。

Oracle ACFSファイル・システム・リソースのチェック・アクションでは、ファイル・システムがマウントされていることを検証します。マウントされていれば、リソースの状態をonlineステータスに設定し、マウントされていなければ、offlineに設定します。

Oracle ACFSファイル・システム・リソースの停止アクションでは、ファイル・システムのディスマウントが試みられます。使用中の参照のためにファイル・システムをディスマウントできない場合、停止アクションは、参照を持つプロセスのプロセスIDを表示して記録します。

Oracle ACFSファイル・システム・リソースを管理するためにsrvctl startおよびstopアクションを使用すると、それらの正しいリソースの状態が維持されます。

Oracle ACFSとOracle Restart

このリリースでは、Oracle RestartはrootベースのOracle ACFSリソースをサポートしません。その結果、次の操作は自動的に実行されません。

  • Oracle ACFSドライバのロード

    Linuxでは、システム起動時とシステム停止時に、ドライバが自動的にロードおよびアンロードされます。システムが実行中、またはシステムが他のオペレーティング・システム(OS)バージョンで実行中にアクションが必要な場合は、acfsloadコマンドを使用して、ドライバを手動でロードまたはアンロードできます。ただし、ドライバを手動でロードする場合は、Oracle Restartスタックを起動する前にOracle ACFSドライバをロードする必要があります。

    詳細は、「acfsload」を参照してください。

  • Oracle ACFSマウント・レジストリにリストされたOracle ACFSファイル・システムのマウント

    Oracle ACFSマウント・レジストリは、Oracle Restartでサポートされていません。ただし、有効なOracle ASMデバイスの/etc/fstabファイル内のLinuxのエントリでは、関連付けられたボリュームが有効になっており、これらのエントリはシステム起動時に自動的にマウントされ、システム停止時にアンマウントされます。ファイル・システムがマウントされた後は高可用性(HA)リカバリが適用されないことに注意してください。この機能は1回のみのアクションです。

    有効なfstabエントリの形式は次のとおりです。

    device mount_point acfs noauto 0 0
    

    次に例を示します。

    /dev/asm/dev1-123 /mntpoint acfs noauto 0 0

    前述の例の最後の3つのフィールドは、Linuxがデバイスを自動的にマウントしようとすること、およびデバイス上で他のシステム・ツールを実行しようとすることを防止ます。このアクションは、システム起動時にOracle ASMインスタンスが使用できない場合のエラーを防止します。ファイル・システム・マウントのための追加の標準fstab構文オプションを追加できます。

    他のOSバージョンで、またはシステムの起動後にマウントまたはアンマウント操作が必要な場合は、mountコマンドを使用して、Oracle ACFSファイル・システムを手動でマウントできます。詳細は、「コマンドライン・ツールによるOracle ACFSの管理」を参照してください。

  • リソースベースのOracle ACFSデータベース・ホーム・ファイル・システムのマウント

    Oracle Restart構成の場合、これらのアクションに関連するOracle ACFSリソースは作成されません。Oracle Grid Infrastructure構成では、Oracle ACFSリソース管理が完全サポートされる一方、Oracle Restart構成では、Oracle ACFSリソースベースの管理アクションを代替操作(場合によっては手動)に置き換える必要があります。Oracle Restart構成にrootベースのリソースを登録する、srvctlなどのコマンドを使用しようとすると、適切なエラーが表示されます。

Oracle ACFSドライバのコマンド

この項では、Oracle ACFS、Oracle ADVMおよびOracle Kernel Services Driver (OKS)ドライバを管理するためにインストール時に使用されるOracle ACFSドライバのコマンドについて説明します。これらのコマンドは、Oracle Grid Infrastructureホームの/binディレクトリにあります。

acfsload

目的

acfsloadは、Oracle ACFS、Oracle ADVMおよびOracle Kernel Services Driver (OKS)ドライバをロードまたはアンロードします。

構文

acfsload { start | stop  } [ -s ]

acfsload —hはヘルプ・テキストを表示して終了します。

表17-2に、acfsloadコマンドで使用可能なオプションを示します。

表17-2 acfsloadコマンドのオプション

オプション 説明

start

Oracle ACFS、Oracle ADVMおよびOKSドライバをロードします。

stop

Oracle ACFS、Oracle ADVMおよびOKSドライバをアンロードします。

-s

サイレント・モードで動作します。

説明

acfsloadを使用して、Oracle ACFS、Oracle ADVMおよびOKSドライバを手動でロードまたはアンロードできます。

stopオプションでドライバをアンロードする前に、Oracle ACFSファイル・システムをディスマウントし、Oracle ASMを停止する必要があります。Oracle ACFSファイル・システムのディスマウントの詳細は、「ボリュームおよびOracle ACFSファイル・システムの登録解除、ディスマウント、無効化」を参照してください。

acfsloadを実行するには、rootまたは管理者権限が必要です。

次に、すべてのドライバを停止(アンロード)するacfsloadコマンドの使用例を示します。

# acfsload stop

acfsdriverstate

目的

acfsdriverstateは、Oracle ACFS、Oracle ADVMおよびOracle Kernel Services Driver (OKS)ドライバの現在の状態に関する情報を提供します。

構文

acfsdriverstate [-orahome ORACLE_HOME ] 
    { installed | loaded | version [-v] | supported [-v]} [-s]

acfsdriverstate —hはヘルプ・テキストを表示して終了します。

表17-3に、acfsdriverstateコマンドで使用可能なオプションを示します。

表17-3 acfsdriverstateコマンドのオプション

オプション 説明

-orahome ORACLE_HOME

ユーザーがacfsdriverstateコマンドを実行する権限を持つOracle Grid Infrastructureホームを指定します。

installed

Oracle ACFSがシステムにインストールされているかどうかを決定します。

loaded

Oracle ADVM、Oracle ACFSおよびOKSドライバがメモリーにロードされているかどうかを決定します。

version

現在インストールされているOracle ACFSシステム・ソフトウェアのバージョンをレポートします。

supported

システムがOracle ACFSでサポートされているカーネルであるかどうかをレポートします。

-s

コマンドの実行時、サイレント・モードを指定します。

-v

詳細は、冗長モードを指定してください。

説明

acfsdriverstateを使用して、Oracle ACFS、Oracle ADVMおよびOKSドライバの現在の状態に関する詳細情報を表示できます。

次に、acfsdriverstateコマンドの使用例を示します。

$ acfsdriverstate version
ACFS-9325:     Driver OS kernel version = 3.8.13-13.el6uek.x86_64.
ACFS-9326:     Driver build number = 171126.
ACFS-9212:     Driver build version = 18.1.0.0 ()..
ACFS-9547:     Driver available build number = 171126.
ACFS-9548:     Driver available build version = 18.1.0.0 ()..

Oracle ACFSプラグインの汎用アプリケーション・プログラミング・インタフェース

Oracle ACFSプラグイン操作は、共通で、オペレーティング・システム(OS)に依存しないファイル・プラグイン(Cライブラリ)のアプリケーション・プログラミング・インタフェース(API)によってサポートされます。

この項の内容は次のとおりです。

Oracle ACFSプラグインの詳細は、Oracle ACFSプラグインを参照してください。

Oracle ACFSの事前定義済のメトリック・タイプ

Oracle ACFSでは、事前定義済メトリック・タイプのACFSMETRIC1_TおよびACFSMETRIC2_Tが用意されています。

ACFSMETRIC1_Tメトリック・セットは、ストレージ仮想化モデル用に定義されます。メトリックは、選択したタグ付けファイルのセットまたはファイル・システム内のすべてのファイルのいずれかのサマリー・レコードとして維持されます。Oracle ACFSファイル・メトリックには、読取り数、書込み数、平均読取りサイズ、平均書込みサイズ、最小および最大読取りサイズ、最小および最大書込みサイズ、読取りキャッシュ(VMページ・キャッシュ)のヒットおよびミスがあります。

例:

typedef struct _ACFS_METRIC1 {
    ub2      acfs_version;
    ub2      acfs_type;
    ub4      acfs_seqno;
    ub8      acfs_nreads;
    ub8      acfs_nwrites;
    ub8      acfs_rcachehits;
    ub4      acfs_avgrsize;
    ub4      acfs_avgwsize;
    ub4      acfs_minrsize;
    ub4      acfs_maxrsize;
    ub4      acfs_minwsize;
    ub4      acfs_maxwsize;
    ub4      acfs_rbytes_per_sec;
    ub4      acfs_wbytes_per_sec;
    ub8      acfs_timestamp;
    ub8      acfs_elapsed_secs;
} ACFS_METRIC1;

ACFSMETRIC2_Tは、fileID、開始オフセット、サイズおよび各書込みの順序番号が含まれるOracle ACFS書込み説明レコードのリストです。順序番号により、プラグイン・ドライバによって保持されたとおりにOracle ACFS書込みレコード順は維持されます。順序番号は、アプリケーションでAPIから戻された複数のメッセージ・バッファを順序付ける手段となります。アプリケーションでメッセージ・バッファをAPIを通じて十分な速度で空にできないために削除された書込みレコードを検出することもできます。

書込みレコードは、複数のインメモリー配列に格納されます。レコードの各配列は、バッファ・サイズが現在1 Mに設定されているAPIを使用してフェッチできます。フェッチされたioctlバッファの先頭には、格納されているレコードの番号など、配列を表すstructがあります。カーネル・バッファでは、バッファが十分な速度で読み込まれていないためにバッファが満杯である場合、最も古い書込みレコードが削除されます。

例:

typedef struct _ACFS_METRIC2 {
  ub2              acfs_version;
  ub2              acfs_type;
  ub4              acfs_num_recs;
  ub8              acfs_timestamp;
  ACFS_METRIC2_REC acfs_recs[1];
} ACFS_METRIC2;

typedef struct _ACFS_FILE_ID {
  ub8              acfs_fenum;
  ub4              acfs_genum;
  ub4              acfs_reserved1;
}

typedef struct _ACFS_METRIC2_REC {
  ACFS_FILE_ID     acfs_file_id;
  ub8              acfs_start_offset;
  ub8              acfs_size;
  ub8              acfs_seq_num;
} ACFS_METRIC2_rec;

Oracle ACFSプラグインAPI

目的

Oracle ACFSプラグイン・アプリケーション・プログラミング・インタフェース(API)は、アプリケーション・プラグイン・モジュールのローカル・プラグイン対応のOracle ACFSドライバに対してメッセージを送受信します。

構文

sb8 acfsplugin_metrics(ub4 metric_type,
  ub1 *metrics,
  ub4 metric_buf_len,
  oratext *mountp );
sb8 acfsfileid_lookup(ACFS_FILEID file_id,
  oratext *full_path,
  oratext *mountp );

説明

acfsplugin_metrics APIは、Oracle ACFSドライバからメトリックを受信するために、Oracle ACFSアプリケーション・プラグイン・モジュールによって使用されます。acfsutil plugin enableコマンドを使用して、プラグイン通信のためにまずOracle ACFSドライバを有効にする必要があります。選択したアプリケーション・プラグイン・メトリック・タイプ・モデルは、Oracle ACFSのプラグイン有効化コマンドで定義されたプラグイン構成と一致する必要があります。acfsutil plugin enableコマンドの詳細は、「acfsutil plugin enable」を参照してください。アプリケーションには、Oracle ACFSの事前定義済のメトリック・タイプで説明しているメトリック構造を格納するのに十分なバッファのサイズが提供される必要があります。

指定されたバッファがNULLで、metric_buf_len = 0の場合、戻り値は、現在収集されたすべてのメトリックを保持するために必要なサイズになります。アプリケーションは、まずOracle ACFSに問い合せて、必要なバッファの大きさを参照してから、Oracle ACFSに戻すのに必要なサイズのバッファを割り当てることができます。

参照するプラグインが有効なOracle ACFSファイル・システムを特定するには、マウント・パスをAPIに指定する必要があります。

成功すると、負ではない値が戻されます。収集するメトリックがない状態で成功した場合は0、使用可能なメトリックがあることを示す場合は1、間隔の間に収集された新しいメトリックがないことを示す場合は2が戻されます。エラーの場合、負の値が戻され、Linux環境の場合はerrnoが設定され、WindowsではSetLastErrorがコールされます。

メトリック・タイプ#2を使用すると、戻されたメトリックには、fenumとgenumのペアが含まれるACFS_FILE_IDがあります。fenumとgenumのペアからファイル・パスに変換するために、アプリケーションでacfsfileid_lookupを使用できます。アプリケーションでは、パスを保持するために長さがACFS_FILEID_MAX_PATH_LENのバッファを指定する必要があります。1つのファイルに対して複数のハード・リンクがある場合、戻されるパスは最初のパスです。これは、acfsutil info idの使用時と同じ動作です。

プラグインが有効なOracle ACFSファイル・システム・ドライバに対してメッセージを送受信するには、システム管理者またはOracle ASM管理者の権限が必要です。

アプリケーションの書込み

プラグインAPIを使用するには、APIファンクションおよび構造を定義するCヘッダー・ファイルacfslib.hをアプリケーションに含める必要があります。

#include <acfslib.h>

アプリケーションの実行可能ファイルを作成する場合、アプリケーションは、acfs12ライブラリにリンクされている必要があります。定義する必要がある環境変数の詳細は、プラットフォーム固有のドキュメントを参照してください。次に例を示します。

export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$
{LD_LIBRARY_PATH}

リンクを行う場合、-lacfs12フラグを追加します。

例17-1では、コマンドは、プラグイン・サービス用に/humanresourcesにマウントされたOracle ACFSファイル・システムを有効にします。

例17-1 ストレージの可視性のためのアプリケーション・プラグイン: ポーリング・モデル

$ /sbin/acfsutil plugin enable -m acfsmetric1 -t HRDATA /humanresources

このコマンドの場合、アプリケーション・プラグインは、HRDATAでタグ付けされたファイルに関連付けられたサマリー・メトリックの、Oracle ACFSプラグインが有効なドライバをポーリングします。アプリケーション・コードは次のようになります。

#include <acfslib.h>
...
/* allocate message buffers */
ACFS_METRIC1 *metrics = malloc (sizeof(ACFS_METRIC1));
/* poll for metric1 data */
while (condition) {
  /* read next summary message from ACFS driver */
   if ((rc = acfsplugin_metrics(ACFS_METRIC_TYPE1,(ub1*)metrics,sizeof(*metrics),
        mountp)) < 0) {
        perror("….Receive failure … ");
        break;
   }
   /* print message data */
   printf ("reads %8llu ", metrics->acfs_nreads);
   printf("writes %8llu ", metrics->acfs_nwrites);
   printf("avg read size %8u ", metrics->acfs_avgrsize);
   printf("avg write size %8u ", metrics->acfs_avgwsize);
   printf("min read size %8u ", metrics->acfs_minrsize);
   printf("max read size %8u ", metrics->acfs_maxrsize);
   ...
   sleep (timebeforenextpoll);
}

例17-2では、コマンドは、プラグイン・サービス用に/humanresourcesにマウントされたOracle ACFSファイル・システムを有効にします。

例17-2 ファイル・コンテンツのためのアプリケーション・プラグイン: ポスト・モデル

$ /sbin/acfsutil plugin enable -m acfsmetric1 -t HRDATA -i 5m /humanresources

このコマンドの場合、5分ごとに、Oracle ACFSプラグインが有効なドライバは、HRDATAでタグ付けされたファイルに関連付けられたファイル・コンテンツ・メトリックをポストします。アプリケーション・コードでは、メトリックがポストされるまで、acfsplugin_metrics()へのコールはブロックされます。アプリケーション・コードは次のようになります。

#include <acfslib.h>
...
 ACFS_METRIC1 *metrics = malloc (sizeof(ACFS_METRIC1));
 
 /* Wait for metric Data */
  while (condition) {
    /* Wait for next file content posting from ACFS driver */
    rc = ACFS_PLUGIN_MORE_AVAIL;
    /* A return code of 1 indicates that more metrics are available
    * in the current set of metrics.
    */
    while( rc == ACFS_PLUGIN_MORE_AVAIL) {
      /* This call blocks until metrics are available. */
      rc = acfsplugin_metrics(ACFS_METRIC_TYPE1,(ub1*)metrics,sizeof(*metrics),
           mountp);
      if (rc < 0) {
        perror("….Receive failure … ");
        break;
      } else if (rc == ACFS_PLUGIN_NO_NEW_METRICS) {
        printf("No new metrics available.");
        break;
     }
     if (last_seqno != metrics->acfs_seqno-1 ) {
       printf("Warning: Unable to keep up with metrics collection.");
       printf("Missed %d sets of posted metrics.",
              (metrics->acfs_seqno-1)-last_seqno);
     }

      /* print message data */ 
      printf ("reads %8llu ", metrics->acfs_nreads);
      printf("writes %8llu ", metrics->acfs_nwrites);
      printf("avg read size %8u ", metrics->acfs_avgrsize);
      printf("avg write size %8u ", metrics->acfs_avgwsize);
      printf("min read size %8u ", metrics->acfs_minrsize);
      printf("max read size %8u ", metrics->acfs_maxrsize);
      ...
 
      last_seqno = metrics->acfs_seqno;
    }
  }
 
  free(metrics);

例17-3 FenumとGenumのペアからファイル・パスを解決するためのアプリケーション

次の例では、アプリケーションでOracle ACFSメトリック・タイプ2レコードのfenumとgenumのペアからファイル・パスを解決する方法を示します。

#include <acfslib.h>
. . .
ACFS_FILE_ID file_id;
char path[ACFS_FILEID_MAX_PATH_LEN];
#ifdef WINDOWS
    file_id.acfs_fenum = atoi(argv[1]);
    file_id.acfs_genum = atoi(argv[2]);
#else
    file_id.acfs_fenum = strtoull(argv[1], 0, 0);
    file_id.acfs_genum = strtoul(argv[2], 0, 0);
#endif
mount_point = argv[3];
sts = acfsfileid_lookup(file_id, path, ACFS_FILEID_MAX_PATH_LEN,
                        mount_point, 0);
if (sts < 0)
 {
 . . .
 }
printf("%s\n", path)

Oracle ACFSタグ付けの汎用アプリケーション・プログラミング・インタフェース

Oracle ACFSタグ付け操作は、共通で、オペレーティング・システム(OS)に依存しないファイル・タグ(Cライブラリ)のアプリケーション・プログラミング・インタフェース(API)によってサポートされます。

Oracle ACFSタグ付けのAPIデモンストレーション・ユーティリティが提供されます。デモでは、サポートされたプラットフォームごとに、makefileを使用してユーティリティを作成する手順が示されます。

Solarisでは、Oracle ACFSタグ付けのAPIは、シンボリック・リンク・ファイルでタグ名を設定できますが、バックアップおよびリストア・ユーティリティは、シンボリック・リンク・ファイルで明示的に設定されるタグ名を保存しません。また、シンボリック・リンク・ファイルは、移動、コピー、tarの使用またはpaxの使用が行われると、明示的に設定されたタグ名が失われます。

次のファイルがあります。

  • $ORACLE_HOME/usm/public/acfslib.h

  • $ORACLE_HOME/usm/demo/acfstagsdemo.c

  • $ORACLE_HOME/usm/demo/Makefile

    デモ・ユーティリティを作成するためのLinux、SolarisまたはAIXのmakefile。

  • $ORACLE_HOME/usm/demo/MAKEFILE

    デモ・ユーティリティを作成するためのWindowsのデモ・ユーティリティMAKEFILE (nmakeユーティリティによって使用)

この項の内容は次のとおりです。

Oracle ACFSタグ名の指定

Oracle ACFSタグ名は、1文字から32文字までの長さで、次の一連の文字の組合せのみで構成されます。

  • 大文字と小文字のアルファベット文字(A-Z、a-z)

  • 数字(0-9)

  • ハイフン(-)

  • アンダースコア(_)

  • 空白(スペース)

Oracle ACFSタグ付けのエラー値

次に、失敗した場合のLinux、SolarisまたはAIXのerrnoの値を示します。

  • EINVAL - タグ名の構文が無効であるか、長すぎます。

  • ENODATA - このファイルまたはディレクトリに対するタグ名が存在しません。

  • ERANGE - 値のバッファは、戻り値を保持するには小さすぎます。

  • EACCES - パスのパス接頭辞のディレクトリに対する検索権限が拒否されました。または、ファイル上でタグ名を読み取る権限がユーザーにありません。

  • ENAMETOOLONG - ファイル名が長すぎます。

  • ENOENT - パスのコンポーネントが存在しません。

次に、失敗した場合のWindowsのGetLastError()が戻す値を示します。

  • ERROR_INVALID_PARAMETER - このファイルまたはディレクトリに対するタグ名が存在しないか、タグ名の構文に誤りがあります。

  • ERROR_INSUFFICIENT_BUFFER - 値のバッファは、戻り値を保持するには小さすぎます。

  • ERROR_ACCESS_DENIED - パスのパス接頭辞のディレクトリに対する検索権限が拒否されました。または、ファイル上でタグ名を読み取る権限がユーザーにありません。

  • ERROR_INVALID_NAME - ファイル名またはパス名が、長すぎるか不正です。

  • ERROR_FILE_NOT_FOUND - 指定されたファイルが見つかりません。

acfsgettag

目的

Oracle ACFSファイルのタグ名に関連付けられた値を取得します。

構文

sb8 acfsgettag(const oratext *path, const oratext *tagname, oratext *value, 
               size_t size, ub4 flags);

表17-4に、acfsgettagコマンドで使用可能なオプションを示します。

表17-4 acfsgettagコマンドのオプション

オプション 説明

path

ファイルまたはディレクトリのパス名へのポインタを指定します。

tagname

通常のファイルまたはディレクトリに対する有効なタグ名の形式で、NULLで終了するOracle ACFSタグ名へのポインタを指定します。

value

Oracle ACFSタグ値を取得するためのメモリー・バッファを指定します。

size

戻されたOracle ACFSタグ値を保持するメモリー・バッファのバイト・サイズを指定します。

flags

将来の使用のために予約されています。0に設定する必要があります。

説明

acfsgettagライブラリ・コールは、Oracle ACFSタグ名の値文字列を取得します。戻り値は、ゼロ以外のバイトの長さの出力で、成功した場合はvalue文字列、失敗した場合はACFS_TAG_FAILです。ACFS_TAG_FAILが戻されたときに取得する、オペレーティング・システム固有の詳細なエラー情報の値の詳細は、Oracle ACFSタグ付けのエラー値を参照してください。

Oracle ACFSタグ名には、固定値文字列の0 (長さが1バイトの数字ゼロの文字)が現在使用されているため、valueは、Oracle ACFSタグ名のすべてのエントリで同じです。valueをNULL、size0に設定してacfsgettagをコールすることによって、valueバッファのサイズを決定できます。ライブラリ・コールは、タグ名の値文字列を保持するのに必要なバイト・サイズを戻します。タグ名がファイルで設定されていない場合、acfsgettagは、ENODATAエラーを戻します。

例17-4に、acfsgettagファンクション・コールの使用例を示します。

例17-4 ファイルのタグ値の取得

sb8 rc;
size_t size;
oratext value[2];
const oratext *path = "/mnt/dir1/dir2/file2";
const oratext *tagname = "patch_set_11_1";
size = 1; (byte)
memset((void *)value, 0, 2*sizeof(oratext));
rc = acfsgettag (path, tagname, value, size, 0);
If (rc == ACFS_TAG_FAIL)
  /* check errno or GetLastError() to process error returns /*

acfslisttags

目的

Oracle ACFSファイルに割り当てられたタグ名をリストします。詳細は、acfsutil tag infoを参照してください。

構文

sb8 acfslisttags(const oratext *path, oratext *list, size_t size, ub4 flags);

表17-4に、acfslisttagsコマンドで使用可能なオプションを示します。

表17-5 acfslisttagsコマンドのオプション

オプション 説明

path

ファイルまたはディレクトリのパス名へのポインタを指定します。

list

Oracle ACFSタグ名のリストを含むメモリー・バッファへのポインタを指定します。

size

戻されたOracle ACFSタグ名リストを保持するメモリー・バッファのサイズ(バイト)を指定します。

flags

将来の使用のために予約されています。0に設定する必要があります。

説明

acfslisttagsライブラリ・コールは、Oracle ACFSファイルに割り当てられたすべてのタグ名を取得します。acfslisttagsは、listメモリー・バッファにタグ名のリストを戻します。リスト内の各タグ名は、NULLで終了します。ファイルにタグ名がない場合、リフトは空になります。メモリー・バッファは、Oracle ACFSファイルに割り当てられたすべてのタグ名を保持するのに十分な大きさにする必要があります。

アプリケーションは、バッファを割り当て、Oracle ACFSファイルに割り当てられたすべてのタグ名を保持するのに十分なリスト・サイズの大きさを指定する必要があります。acfslisttagsを、バッファ・サイズをゼロ値、リスト・バッファをNULLで最初にコールすることによって、アプリケーションは、必要なリスト・バッファ・サイズを必要に応じて取得できます。アプリケーションは、ゼロ以外の正のリスト・サイズの戻り値をチェックして、リスト・バッファを割り当て、acfslisttagsをコールして、実際のタグ名リストを取得します。

成功すると、戻り値は、タグ名リストの正のバイト・サイズとなり、ファイルにタグ名がない場合は0になります。失敗した場合、戻り値はACFS_TAG_FAILです。ACFS_TAG_FAILが戻されたときに取得する、オペレーティング・システム固有の詳細なエラー情報の値の詳細は、Oracle ACFSタグ付けのエラー値を参照してください。

例17-5に、acfslisttagsファンクション・コールの使用例を示します。

例17-5 ファイルのタグのリスト

sb8 listsize;
sb8 listsize2;
const oratext *path = "/mnt/dir1/dir2/file2";
oratext *list;
/* Determine size of buffer to store list */
listsize = acfslisttags (path, NULL, 0, 0);
if (listsize == ACFS_TAG_FAIL)
/* retrieve the error code and return */

if (listsize)
{
    list = malloc(listsize)
    /* Retrieve list of tag names */
    listsize2 = acfslisttags (path, list, listsize, 0);
    if (listsize2 == ACFS_TAG_FAIL)
        /* check errno or GetLastError() to process error returns */
    if (listsize2 > 0)
        /* file has a list of tag names to process */
    else
        /* file has no tag names. */
}
else
/* file has no tag names. */

acfsremovetag

目的

Oracle ACFSファイルのタグ名を削除します。

構文

sb8 acfsremovetag(const oratext *path, const oratext *tagname, ub4 flags);

表17-6に、acfsremovetagコマンドで使用可能なオプションを示します。

表17-6 acfsremovetagコマンドのオプション

オプション 説明

path

ファイルまたはディレクトリのパス名へのポインタを指定します。

tagname

通常のファイルまたはディレクトリに対する有効なタグ名の形式で、NULLで終了するOracle ACFSタグ名へのポインタを指定します。

flags

将来の使用のために予約されています。0に設定する必要があります。

説明

acfsremovetagライブラリ・コールは、Oracle ACFSファイルのタグ名を削除します。戻り値は、ACFS_TAG_SUCCESSまたはACFS_TAG_FAILです。ACFS_TAG_FAILが戻されたときに取得する、オペレーティング・システム固有の詳細なエラー情報の値の詳細は、Oracle ACFSタグ付けのエラー値を参照してください。

例17-6に、acfsremovetagファンクション・コールの使用例を示します。

例17-6 ファイルのタグの削除

sb8 rc;
const oratext *path= "/mnt/dir1/dir2/file2";
const oratext *tagname = "patch_set_11_1";
rc = acfsremovetag (path, tagname, 0);
If (rc == ACFS_TAG_FAIL)
  /* check errno or GetLastError() to process error returns */

acfssettag

目的

Oracle ACFSファイルのタグ名を設定します。詳細は、acfsutil tag setを参照してください。

構文

sb8 acfssettag(const oratext *path, const oratext *tagname, oratext *value, 
               size_t size, ub4 flags);

表17-7に、acfssettagコマンドで使用可能なオプションを示します。

表17-7 acfssettagコマンドのオプション

オプション 説明

path

ファイルまたはディレクトリのパス名へのポインタを指定します。

tagname

通常のファイルまたはディレクトリに対する有効なタグ名の形式で、NULLで終了するOracle ACFSタグ名へのポインタを指定します。

value

Oracle ACFSタグ値を設定するためのメモリー・バッファを指定します。

size

Oracle ACFSタグ値のバイト・サイズを指定します。

flags

将来の使用のために予約されています。0に設定する必要があります。

説明

acfssettagライブラリ・コールは、Oracle ACFSファイルのタグ名を設定します。戻り値は、ACFS_TAG_SUCCESSまたはACFS_TAG_FAILです。ACFS_TAG_FAILが戻されたときに取得する、オペレーティング・システム固有の詳細なエラー情報の値の詳細は、Oracle ACFSタグ付けのエラー値を参照してください。

Oracle ACFSタグ名には、固定値文字列の0 (長さが1バイトの数字ゼロの文字)が現在使用されているため、valueは、Oracle ACFSタグ名のすべてのエントリで同じです。

例17-7に、acfssettagファンクション・コールの使用例を示します。

例17-7 ファイルのタグの設定

sb8 rc;
size_t size;
const oratext *value ;
const oratext *path= "/mnt/dir1/dir2/file2";
const oratext *tagname = "patch_set_11_1";
value = "0"; /* zero */
size = 1; (byte)
rc = acfssettag (path, tagname, (oratext *)value, size, 0);
If (rc == ACFS_TAG_FAIL)
  /* check errno and GetLastError() to process error returns */

Oracle ACFS診断コマンド

このトピックでは、診断に使用するOracle ACFSコマンドライン・ユーティリティの概要を示します。

Oracle ACFSでは、診断に使用する様々なacfsutilコマンドライン・ユーティリティを提供します。

ノート:

診断コマンドは、Oracleサポートが分析のために診断データを要求した場合にのみ実行します。

次の表に、Oracle ACFSユーティリティと簡単な説明を示します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

表17-8 Oracle ACFS診断コマンドの概要

コマンド 説明

acfsdbg

Oracle ACFSファイル・システムをデバッグします。

acfsutil blog

ブログ・ファイルにテキストを書込みます。

acfsutil dumpstate

Oracle ACFSの内部状態情報を収集します。

acfsutil info ftrace

オープン・ファイルのトレース・エントリを表示します。

acfsutil lockstats

ロック競合統計を表示します。

acfsutil log

メモリー診断ログ・ファイルおよびメッセージ・デバッグ設定を取得します。

acfsutil meta

Oracle ACFSファイル・システムから別の出力ファイルにメタデータをコピーします。

acfsutil plogconfig

Oracle ACFSの永続ロギング構成設定を管理します。

acfsutil tune

Oracle ACFSの調整可能パラメータを変更または表示します。

advmutil tune

Oracle ADVMパラメータを変更または表示します。

acfsdbg

目的

Oracle ACFSファイル・システムをデバッグします。

構文および説明

acfsdbg [-r] [-l] [-x] volume_device
acfsdbg -h

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsdbgコマンドで使用可能なオプションを示します。

表17-9 acfsdbgコマンドのオプション

オプション 説明

-h

使用方法のメッセージを出力して終了します。メッセージには、acfsdbgコマンドの起動時に使用できる各種オプションが表示されます。

-r

読取り専用モードで動作します。ファイル・システム上のデータは変更されません。また、すべての書込みコマンドを無効にします。デバイスがどこかにマウントされている場合、データはファイル・システム・マウントによってキャッシュされているものもあるため、acfsdbgで最新データが表示されない場合があります。

-l

カーネル・ログ・ファイルを処理します。デフォルトでは、ログ・ファイルを処理しません。

—x file_name

acfsutil metaで収集されたアクセラレータ・データに対して指定します。このタイプのデータに対してのみ使用します。

volume_device

ボリュームのデバイス名を指定します。

acfsdbgを実行するには、管理者またはOracle ASM管理者グループのメンバーであることが必要です。

サブコマンド

表17-10に、acfsdbgのサブコマンドを示します。

表17-10 acfsdbgのサブコマンド

オプション 説明 構文

calculate

単純な演算式を計算します。

有効な演算子: +、-、*、/、%、&、|、^、~、<<、>>

新しい式は、空白で始めます。

0-1は、マイナス1を表します。

calculate [-v] expr […]

  • -v: verboseモード
  • expr: 単純な2+2式

cksum

ヘッダーでチェックサムを生成して置換します。

ヘッダー・オフセットは、calculateサブコマンドで使用されるような式でもかまいません。

新しいヘッダー・オフセットは、空白で始めます。

このコマンドは、読取り専用モードでは無効です。

cksum [-C | -CE] header_offset […]

  • -C: 通常の構造チェックサム用として再生成します。
  • -CE: エクステント構造チェックサム用として再生成します。
  • header_offset: ディスク構造ヘッダーのオフセット。この値は、calculateサブコマンドで使用されるような式でもかまいません。

close

デバイスへのオープン・ハンドルを閉じます。

close

echo

コマンドラインのテキストをstdoutにエコーします。

echo

fenum

指定されたファイル・エントリ表(FETA)エントリを表示します。

fenum [-f | -e | -d] FETA_entry_number

  • -f: この構造に関連するディスク構造上のすべてを表示します。
  • -e: この構造に関連するディスク・エクステント情報のすべてを表示します。
  • -d: 構造をディレクトリとしてキャストし、そのコンテンツを表示します。
  • FETA_entry_number: ファイル・システム上のファイルを識別するために使用されるファイル・エントリ表の番号。

help

ヘルプ・メッセージを表示します。

help

offset

ディスク・オフセットでの構造を表示します。

offset [-c cast] [-f | -d] disk_offset

  • -f: この構造に関連するディスク構造上のすべてを表示します。
  • -d: 構造をディレクトリとしてキャストし、そのコンテンツを表示します。
  • disk_offset: 表示するディスク・オフセット。この値は、calculateサブコマンドで使用されるような式でもかまいません。

open

デバイスへのハンドルを開きます。デフォルトは、コマンドラインに入力されたボリューム・デバイス名です。

open [volume_device]

primary

コマンドのコンテキストにプライマリ・ファイル・システムを設定します。

primary

prompt

プロンプトに指定された文字列を設定します。

prompt "prompt_string"

quit

acfsdbgデバッガ・コマンドを終了します。

quit

read

オフセットから値を読み取ります。

読取りのデフォルト・サイズは、8バイトです。

読取りのデフォルト件数は、1です。

read [-1 | -2 | -4 | -8 | -s] [count] offset

  • -1: バイト値を読み取ります
  • -2: 2バイト(short)値を読み取ります。
  • -4: 4バイト(int)値を読み取ります。
  • -8: 8バイト(long)値を読み取ります。
  • -s nullで終了した文字列を読み取ります。
  • count: 読み取る値の数。指定しない場合、デフォルト値は1です。
  • offset: 読み取るディスク・オフセット。この値は、calculateサブコマンドで使用されるような式でもかまいません。

snapshot

コマンドのコンテキストに指定されたスナップショットを設定します。

snapshot snapshot_name

write

16進数、8進数または10進数の値をディスク・オフセットに書き込みます。値のサイズまたは前ゼロ付きの16進数値の桁数に基づいて書込みバイト数を見積ります。

ディスク・オフセットは、calculateサブコマンドで使用されるような式でもかまいません。

数値は、calculateサブコマンドで使用されるような式でもかまいません。

このコマンドは、読取り専用モードでは無効です。

write [-1 | -2 | -4 | -8 | -c | -s] [-C | -CE] offset value

  • -1: バイト値を書き込みます
  • -2: 2バイト(short)値を書き込みます。
  • -4: 4バイト(int)値を書き込みます。
  • -8: 8バイト(long)値を書き込みます。
  • -c テキスト(null終了なし)を書き込みます。文字列を一重引用符(')で囲みます。
  • -s : nullで終了した文字列を書き込みます。文字列を引用符(")で囲みます。
  • -C: 通常の構造チェックサムを再生成します。
  • -CE: エクステント構造チェックサムを再生成します。
  • offset: 書き込むディスク・オフセット。この値は、calculateサブコマンドで使用されるような式でもかまいません。
  • value: 書き込む値。数値の場合、この値は、calculateサブコマンドで使用されるような式でもかまいません。

例17-8に、acfsdbgサブコマンドの使用を示します。

例17-8 acfsdbgコマンドの使用方法

$ /sbin/acfsdbg /dev/asm/voume1-123
acfsdbg: version                   = 11.2.0.3.0
Oracle ASM Cluster File System (ACFS) On-Disk Structure Version: 39.0
The ACFS volume was created at  Mon Mar  2 14:57:45 2011
acfsdbg> 

acfsbdg> calculate 60*1024
    61,440
    61440
    61440
    0xf000
    0170000
    1111:0000:0000:0000

acfsdbg> prompt "acfsdbg test>"
acfsdbg test>

echo "offset 64*1024" | acfsdbg /dev/asm/volume1-123

acfsutil blog

目的

ブログ・ファイルにテキストを書込みます。

構文および説明

acfsutil [-h] blog

acfsutil blog {-t text | -u} mount_point

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil blogコマンドで使用可能なオプションを示します。

表17-11 acfsutil blogコマンドのオプション

オプション 説明

-t text

指定されたマウント・ポイントでブログ・ファイルにテキストを書込みます。

-u

dbgファイルからブログ・デバッグ・レベルを更新します。

mount_point

マウント・ポイントを指定します。

acfsutil blogコマンドを使用すると、ブログ・ファイルにテキストを書き込むことができます。

.

次の例では、acfsutil blogコマンドの実行方法を示します。—hオプションを指定してacfsutil blogを実行すると、ヘルプが表示されます。

例17-9 acfsutil blogの使用方法

$ /sbin/acfsutil -h

$ /sbin/acfsutil -t "this is a blog test" blog my_mount_point

$ /sbin/acfsutil -u blog my_mount_point

acfsutil dumpstate

目的

Oracleサポートによる診断のためにOracle ACFSの内部状態情報を収集します。

構文および説明

acfsutil [-h] dumpstate 
acfsutil dumpstate {acfs_path | [-d] [-z] [acfs_path]}

acfsutil -h dumpstateは、ヘルプ・テキストを表示して終了します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil dumpstateコマンドで使用可能なオプションを示します。

表17-12 acfsutil dumpstateコマンドのオプション

オプション 説明

acfs_path

Oracle ACFSファイル・システムへのディレクトリ・パスを指定します。

-d

現在のディレクトリ内のacfs.dumpstatsに統計をダンプします。

-z

現在のすべての統計をクリアします。

acfsutil dumpstateコマンドは、指定されたファイル・システムについてOracle ACFSの内部状態情報を収集します。状態情報は、ロギング・ディレクトリのバイナリ・インシデント・ファイルに書き込まれます。バイナリ・ログ・インシデント・ファイルは、指定したパスでマウントされたファイル・システムに固有です。acfs.dumpstats統計ファイルには、Oracle ACFSカーネル・モジュール全体の統計が含まれています。

ノート:

acfsutil dumpstateコマンドは、Oracleサポートが分析のために診断データおよびデバッグ・データを要求した場合にのみ実行します。

次に、acfsutil dumpstateコマンドの使用例を示します。

例17-10 acfsutil dumpstateコマンドの使用方法

次のコマンド実行は、指定したファイル・システムのバイナリ・インシデント・ファイルを作成します。

$ /sbin/acfsutil dumpstate /acfsmounts/acfs1/

次のコマンド実行は、ファイル・システム統計をダンプし、指定したファイル・システムのバイナリ・インシデント・ファイルを作成します。

$ /sbin/acfsutil dumpstate -d /acfsmounts/acfs1/

次のコマンド実行は、すべてのファイル・システムの統計をクリアします。

$ /sbin/acfsutil dumpstate -z

次のコマンド実行は、ファイル・システム統計をダンプし、バイナリ・インシデント・ファイルを作成し、指定したファイル・システムのすべてのファイル・システム統計をクリアします。

$ /sbin/acfsutil dumpstate -d -z /acfsmounts/acfs1/

acfsutil info ftrace

目的

マウント・ポイントで指定されたOracle ACFSファイル・システムに関連付けられているオープン・ファイルのトレース・エントリを表示します。

構文および説明

acfsutil info ftrace -h
acfsutil info ftrace [-s] mount_point

acfsutil info ftrace —hは、ヘルプ・テキストを表示して終了します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil info ftraceコマンドで使用可能なオプションを示します。

表17-13 acfsutil info ftraceコマンドのオプション

オプション 説明

—s

オープン・ファイルのファイルIDのみを表示します。

mount_point

このファイル・システムがマウントされるディレクトリを指定します。

acfsutil info ftraceコマンドは、マウントされているOracle ACFSファイル・システムのオープン・ファイルのリストを表示します。

Oracle ACFSカーネル・ドライバは、メモリーにロードされるファイルを追跡します。これらのファイルにはアクティブなオープンがなく、キャッシュされるだけの場合があります。オープン・ファイル・トレースでは、キャッシュされたどのファイル・コントロール・ブロック(FCB)にアクティブなオープンまたは参照があるかを判断できます。このコマンドの目的は、ファイル・システムのアンマウントを阻止する、まだ参照されているファイルがあるかどうかを確認することです。

acfsutil info ftraceコマンドは、初回実行時、参照されなくなったキャッシュ済ファイルをパージしようとします。この操作では、各ファイルの変更済メタデータとユーザー・データをディスクにフラッシュする必要があるため、完了までに時間がかかる場合があります。

次に、acfsutil info ftraceコマンドの出力について説明します。ファイルは、通常のファイルまたはディレクトリを参照できます。

出力の基本的な形式は次のとおりです。

Fileid: %ID%, Pathname: %PATH%
          [%OP%] Pid:  %PID% Ppid:   %PPID% Elapsed time: %TIME% Cmd: %CMD%
          ...

フィールドについては、次の一覧で説明します。

  • %ID%: 数値ファイル識別子。これは、acfsutil info idで使用されるものと同じ番号です。この値は、Linuxではinode番号とも呼ばれます。

  • %PATH%: %ID%に基づく、生成されたファイルのパス名。使用できない場合、N/Aと表示される場合があります。

  • %OP%: ファイルにアクセスした操作のタイプ。値は次のとおりです。

    • LOOKUP: 指定したプロセスが、パス名を介してこのファイルをルックアップしました。

    • CREATE: 指定したプロセスがファイルを作成しました。

    • NFS: NFSプロセスが、クライアントにかわってファイルにアクセスしました。

    • OPEN: 指定したプロセスがファイルを開きました。

    • MAP: 指定したプロセスが、ファイルをメモリーにマップしました。

  • %PID%: プロセスID。%PPID%: 親プロセスID。この出力アイテムは使用できません。

  • %TIME%: 操作が発生した時点からの経過時間。形式: d(日), h(時間), m(分), s(秒)

  • %CMD%: 操作を実行したプロセスの名前。

リストされる各ファイルには、システムのワークロードに応じて複数の操作がリストされます。メモリーを節約するため、表示される操作の数は制限されます。Oracle ACFSドライバは、各操作のローテーション・ログを保持し、操作エントリはラップされる場合があります。そのため、最も古い操作が最初に表示されるとはかぎりません。

次の例は、/mntマウント・ポイントで実行されるacfsutil info ftraceコマンドを示しています。

例17-11 acfsutil info ftraceコマンドの使用方法

$ acfsutil info ftrace /mnt
Fileid: 42, Pathname: /mnt/yum.conf
        [LOOKUP] Pid:  27009 Ppid:  14999 Elapsed time: 0d 00h 00m 03s Cmd: tail
        [OPEN  ] Pid:  27009 Ppid:  14999 Elapsed time: 0d 00h 00m 03s Cmd: tail

Fileid: 155, Pathname: /mnt/bash
        [LOOKUP] Pid:   9731 Ppid:  19588 Elapsed time: 0d 00h 00m 08s Cmd: cp
        [OPEN  ] Pid:   9731 Ppid:  19588 Elapsed time: 0d 00h 00m 08s Cmd: cp
        [OPEN  ] Pid:   9735 Ppid:  19588 Elapsed time: 0d 00h 00m 05s Cmd: bash
        [MAP   ] Pid:   9735 Ppid:  19588 Elapsed time: 0d 00h 00m 05s Cmd: bash
        [MAP   ] Pid:   9735 Ppid:  19588 Elapsed time: 0d 00h 00m 05s Cmd: bash
        [MAP   ] Pid:   9735 Ppid:  19588 Elapsed time: 0d 00h 00m 05s Cmd: bash

Fileid: 43, Pathname: /mnt/dir1
        [LOOKUP] Pid:  14485 Ppid:   7829 Elapsed time: 0d 12h 20m 13s Cmd: mkdir
        [LOOKUP] Pid:   7829 Ppid:   7828 Elapsed time: 0d 12h 20m 06s Cmd: bash
        [LOOKUP] Pid:   7829 Ppid:   7828 Elapsed time: 0d 12h 20m 06s Cmd: bash

acfsutil lockstats

目的

ロック競合統計を表示します。

構文および説明

acfsutil lockstats lh -h
acfsutil lockstats lh [-b] [-e] [-z] [-t top_n] [-s sort_column]

acfsutil lockstats lh —hは、ヘルプ・テキストを表示して終了します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil lockstatsコマンドで使用可能なオプションを示します。

表17-14 acfsutil lockstatsコマンドのオプション

オプション 説明

-b

ロック統計の収集を開始(有効化)します。

—e

ロック統計の収集を停止(無効化)します。

—z

収集された現在のロック統計をゼロアウト(クリア)します。

—t top_n

上位n個のロック統計を表示します。

—s sort_column

指定したソート列のロック統計をソートします。

有効なソート列の値は、acquirestotalwaitmaxwaitです。

デフォルトでは、統計は待機合計でソートされます。

コマンドの出力は、4列の表形式で表示されます。
  • 最初の列は、ロック階層グループ名です。

  • 2番目の列は、その特定のグループで取得されたロックの数です。

  • 3番目の列は、取得したすべてのロックの最大待機時間です。

  • 4番目の列は、取得したすべてのロックの累積待機時間です。

次の例では、acfsutil lockstatsコマンドの複数の使用方法を示します。

例17-12 acfsutil lockstatsコマンドの使用方法

# Enable lock statistics collection in the kernel. No data is displayed.
$ acfsutil lockstats lh -b

# Zero out any and all the lock statistics collected. No data is displayed.
$ acfsutil lockstats lh -z

# Disable lock statistics collection in the kernel. No data is displayed.
$ acfsutil lockstats lh -e

# Displays all of the lock statistics, sorted on the total wait column.
$ acfutil lockstats lh

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_MetabufLock                      |       608763 |          1 |        176 |
| LH_FcbMCBLock                       |       605578 |          1 |         83 |
| LH_IgnoreCompletely                 |      7002105 |          1 |         41 |
| LH_SnapDIOCowLock                   |          295 |          6 |          6 |
| LH_DLM_hash_chain_lock              |       312581 |          1 |          5 |
| LH_OFSBUFHashChain                  |       610118 |          1 |          5 |
| LH_SnapMapLockDLMLock               |          297 |          1 |          1 |
| LH_RemapTableDLMLock                |            3 |          1 |          1 |
| LH_TrackOnly                        |       348954 |          0 |          0 |
| LH_KS_feature_lock                  |           12 |          0 |          0 |
| LH_DLM_rbld_stall_lock              |          199 |          0 |          0 |
| LH_DLM_rsb_incarn_lock              |           68 |          0 |          0 |
| LH_DLM_rsb_lock                     |           81 |          0 |          0 |
| LH_DLM_lkb_lock                     |           83 |          0 |          0 |
| LH_DLM_lkid_lock                    |          194 |          0 |          0 |
| LH_KCSS_comm_lock                   |           11 |          0 |          0 |
| LH_KSS_asm_exit_lock                |           10 |          0 |          0 |
| LH_KCSS_rac_mode_lock               |           21 |          0 |          0 |
| LH_ADVM_hd_lock                     |            1 |          0 |          0 |
| LH_ADVM_rootSpin                    |           90 |          0 |          0 |
| LH_ADVM_root_stateLock              |            1 |          0 |          0 |
.
.
.
| LH_GlobalMntResource                |            4 |          0 |          0 |
| LH_KS_PlogConfigLock                |          587 |          0 |          0 |
+-------------------------------------+--------------+------------+------------+

# Displays only the top 10 lock statistics.
$ acfsutil lockstats lh -t 10

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_MetabufLock                      |       802244 |          1 |        230 |
| LH_FcbMCBLock                       |       798135 |          1 |        113 |
| LH_IgnoreCompletely                 |      9214061 |          1 |         54 |
| LH_OFSBUFHashChain                  |       803599 |          1 |          7 |
| LH_SnapDIOCowLock                   |          389 |          6 |          6 |
+-------------------------------------+--------------+------------+------------+

# Displays all of the lock statistics, sorted on the ‘Acquires’ column.
$ acfsutil lockstats -s acquires

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_IgnoreCompletely                 |      9263483 |          1 |         54 |
| LH_OFSBUFHashChain                  |       807734 |          1 |          7 |
| LH_MetabufLock                      |       806379 |          1 |        231 |
| LH_FcbMCBLock                       |       802234 |          1 |        114 |
| LH_TrackOnly                        |       461656 |          0 |          0 |
| LH_DLM_hash_chain_lock              |       312581 |          1 |          5 |
| LH_DLMSpinLock                      |        15982 |          0 |          0 |
| LH_AutoResizeLock                   |         3880 |          0 |          0 |
| LH_SnapMapMetaDataLock              |         2725 |          0 |          0 |
| LH_RecoverySpinLock                 |         2722 |          0 |          0 |
| LH_clean_ofsBufl_lock               |         2580 |          0 |          0 |
| LH_ResizeVOPsLock                   |         2333 |          0 |          0 |
| LH_SBMetaDataLock                   |         2145 |          0 |          0 |
| LH_SBDLMLock                        |         2145 |          0 |          0 |
| LH_FcbListLock                      |         1980 |          0 |          0 |
| LH_VcbDIOSpinLock                   |         1940 |          0 |          0 |
| LH_McbLock                          |         1863 |          0 |          0 |
| LH_UnmountFCBRefLock                |         1552 |          0 |          0 |
| LH_AuditThreadResource              |          783 |          0 |          0 |
| LH_KS_PlogConfigLock                |          779 |          0 |          0 |
.
.
.
| LH_ShrinkAccelLock1                 |            1 |          0 |          0 |
| LH_ShrinkLock1                      |            1 |          0 |          0 |
| LH_VolResizeLock                    |            1 |          0 |          0 |
+-------------------------------------+--------------+------------+------------+

# Displays all of the lock statistics, sorted on the ‘Max Wait’ column.
$ acfsutil lockstats -s maxwait

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_SnapDIOCowLock                   |          397 |          6 |          6 |
| LH_IgnoreCompletely                 |      9405112 |          1 |         55 |
| LH_DLM_hash_chain_lock              |       312581 |          1 |          5 |
| LH_OFSBUFHashChain                  |       820083 |          1 |          7 |
| LH_FcbMCBLock                       |       814524 |          1 |        116 |
| LH_MetabufLock                      |       818728 |          1 |        234 |
| LH_SnapMapLockDLMLock               |          399 |          1 |          1 |
| LH_RemapTableDLMLock                |            3 |          1 |          1 |
| LH_TrackOnly                        |       468690 |          0 |          0 |
| LH_KS_feature_lock                  |           12 |          0 |          0 |
| LH_DLM_rbld_stall_lock              |          199 |          0 |          0 |
| LH_DLM_rsb_incarn_lock              |           68 |          0 |          0 |
| LH_DLM_rsb_lock                     |           81 |          0 |          0 |
| LH_DLM_lkb_lock                     |           83 |          0 |          0 |
| LH_DLM_lkid_lock                    |          194 |          0 |          0 |
| LH_KCSS_comm_lock                   |           11 |          0 |          0 |
.
.
.
| LH_GlobalMntResource                |            4 |          0 |          0 |
| LH_KS_PlogConfigLock                |          790 |          0 |          0 |
+-------------------------------------+--------------+------------+------------+

# Displays all of the lock statistics, sorted on the ’Total Wait’ column.
$ acfsutil lockstats -s total wait

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_MetabufLock                      |       608763 |          1 |        176 |
| LH_FcbMCBLock                       |       605578 |          1 |         83 |
| LH_IgnoreCompletely                 |      7002105 |          1 |         41 |
| LH_SnapDIOCowLock                   |          295 |          6 |          6 |
| LH_DLM_hash_chain_lock              |       312581 |          1 |          5 |
| LH_OFSBUFHashChain                  |       610118 |          1 |          5 |
| LH_SnapMapLockDLMLock               |          297 |          1 |          1 |
| LH_RemapTableDLMLock                |            3 |          1 |          1 |
| LH_TrackOnly                        |       348954 |          0 |          0 |
| LH_KS_feature_lock                  |           12 |          0 |          0 |
| LH_DLM_rbld_stall_lock              |          199 |          0 |          0 |
| LH_DLM_rsb_incarn_lock              |           68 |          0 |          0 |
| LH_DLM_rsb_lock                     |           81 |          0 |          0 |
| LH_DLM_lkb_lock                     |           83 |          0 |          0 |
| LH_DLM_lkid_lock                    |          194 |          0 |          0 |
| LH_KCSS_comm_lock                   |           11 |          0 |          0 |
| LH_KSS_asm_exit_lock                |           10 |          0 |          0 |
| LH_KCSS_rac_mode_lock               |           21 |          0 |          0 |
| LH_ADVM_hd_lock                     |            1 |          0 |          0 |
| LH_ADVM_rootSpin                    |           90 |          0 |          0 |
| LH_ADVM_root_stateLock              |            1 |          0 |          0 |
  .  
  .
  .
| LH_GlobalMntResource                |            4 |          0 |          0 |
| LH_KS_PlogConfigLock                |          587 |          0 |          0 |
+-------------------------------------+--------------+------------+------------+

# Displays the top 10 lock statistics, sorted on the ’Acquires’ column.
$ acfsutil lockstats lh -s acquires -t 10

+-------------------------------------+--------------+------------+------------+
|              Lock Type              |   Acquires   |  Max Wait  | Total Wait |
+-------------------------------------+--------------+------------+------------+
| LH_IgnoreCompletely                 |      9874904 |          1 |         58 |
| LH_OFSBUFHashChain                  |       861237 |          1 |          8 |
| LH_MetabufLock                      |       859882 |          1 |        248 |
| LH_FcbMCBLock                       |       855493 |          1 |        127 |
| LH_TrackOnly                        |       491920 |          0 |          0 |
| LH_DLM_hash_chain_lock              |       312581 |          1 |          5 |
| LH_DLMSpinLock                      |        16870 |          0 |          0 |
| LH_AutoResizeLock                   |         4122 |          0 |          0 |
| LH_SnapMapMetaDataLock              |         2898 |          0 |          0 |
| LH_RecoverySpinLock                 |         2884 |          0 |          0 |
+-------------------------------------+--------------+------------+------------+

acfsutil log

目的

メモリー診断ログ・ファイルおよびメッセージ・デバッグ設定を取得します。

構文および説明

acfsutil [-h] log

acfsutil log [-f filename] [-s] [-r n{K|M|G|T|P}] [-p {avd|ofs|oks}] [-l debuglevel] 
         [-n consolelevel] [-o wait_time] [-q] [-c debugcontext] [-T file_type] 
         [-m mount_point] [-a] [-C] [-t]

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil logコマンドで使用可能なオプションを示します。

表17-15 acfsutil logコマンドのオプション

オプション 説明

-f filename

指定されたファイルにインメモリー・ログを書き込みます。デフォルト・ファイルは、現行ディレクトリのoks.logです。

-s

インメモリー・ログ・ファイルのサイズを表示します。

-r n{K|M|G|T|P}

インメモリー・ログ・ファイルのサイズを設定します。

-p {avd|ofs|oks}

レベルまたは問合せの設定を設定する製品を指定します。デフォルトはすべての製品、つまりOracle ADVM (avd)、Oracle ACFS (ofs)およびOracle Kernel Services (oks)です。

-l debuglevel

インメモリー・デバッグ・レベルを設定します。デフォルトのデバッグ・レベルは2です。有効値は、0-6です。

-n consolelevel

永続ロギングのデバッグ・レベルを設定します。その他の永続ログ構成設定は、acfsutil plogconfigコマンドで管理されます。

-o wait_time

ログ・サイズ、デバッグ・レベルおよび製品値をすべてのノードに設定し、wait_timeで指定された秒数の間待機し、すべてのノードのメモリー・ログにダンプを出力した後、デバッグ・レベルおよびログ・サイズをリセットします。

-q

指定された製品のデバッグ設定を問い合せます。

例: acfsutil log —p avd —q

-c debugcontext

デバッグ・コンテキストを設定します(内部のみ)。

-T file_type

デバッグ・ファイル・タイプを設定します(内部のみ)。

—m mount_point

指定されたマウント・ポイントでファイル・システムのみをデバッグすることを指定します。

-a

すべてのファイル・システムについてログに記録するように、デバッグ・ロギングをリセットします。

-C

すべてのクラスタ・ノードでメモリー・ログをダンプします。また、-tオプションに追加することもできます。

-t

すべてのハング・マネージャ・スレッド情報をインメモリー・ログおよび永続ログにダンプします。

acfsutil logコマンドを使用すると、メモリー診断ログ・ファイルを管理できます。オプションをなにも指定しないと、acfsutil logコマンドは、デフォルトで./oks.logメモリー・ログに対して取得および書込みを実行します。

-oオプションは、次を実行します。

  1. すべてのノードのインメモリー・ログに対してログ・サイズを500M、ログ・レベルを5、製品をofs (acfs)にそれぞれ設定します。

  2. 「180秒間ブロック中で、現在問題が再現しています」などの情報メッセージを表示します。

  3. 指定された秒数の間待機した後、「すべてのノードでログをダンプしています」と表示します。

  4. クラスタ規模のログのダンプを開始します。

  5. ログ・レベルを2にリセットし、ログ・サイズをデフォルトにリセットします。

-oオプションは、デフォルトの製品、デバッグ・レベルまたはログ・サイズの設定を変更する必要がある場合、-p-lおよび-rの各オプションと組み合せることができます。

このコマンドを実行するには、rootユーザーまたはOracle ASM管理者ユーザーである必要があります。

次の例は、acfsutil logコマンドを実行する様々な方法を示しています。

例17-13 acfsutil logの使用方法

#increase internal log size to 100Mb
$ acfsutil log -r 100M

#increase log level for acfs to 5
$ acfsutil log -l 5 -p ofs

#increase log level for oks to 5
$ acfsutil log -l 5 -p oks

#collect in memory log and place it into /tmp/logfile
$ acfsutil log -f /tmp/logfile

#put trace level back to default, level 2
$ acfsutil log -l 2 -p ofs
$ acfsutil log -l 2 -p oks

# increase log level to 5, wait 3 seconds, and then automatically dump a log on all nodes, 
# log will be in a dated file in directory specified by acfsutil plog -q
$ acfsutil log -l 5 -o 3
Blocking for 3 seconds, reproduce problem now
Dumping log on all nodes

# dump out the stacks of all acfs threads running on the system on all nodes into log files 
# in the directory specified by acfsutil plog -q
$ acfsutil log -t
$ acfsutil log -C

acfsutil meta

目的

Oracle ACFSファイル・システムから別の出力ファイルにメタデータをコピーします。

構文および説明

acfsutil meta -h
acfsutil meta  [-v] 
               [-g] 
               [-g -O -C -S]
               [-O]
               [-C COW_filepath]
               [-S COW_size]
               [-q nn[K|M|G|T]]  
               [-l log_file_path] 
               [-o acfs_extent_offsets]      
               {-f record_oriented_metadata_output_file} [-a accel_device] volume_device

acfsutil meta  {-e record_oriented_metadata_input_file [-i]}
               {-f output_filesystem_meta_file_prefix_name}

acfsutil meta -hは、ヘルプ・テキストを表示して終了します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil metaコマンドで使用可能なオプションを示します。オプションはLinux形式(およびAIX形式とSolaris形式)で表示されます。Windowsで実行されるコマンドは、オプションの前にハイフン(-)ではなくスラッシュ(/)を使用します。たとえば、Linuxの場合は—f、Windowsの場合は/fを使用します。

表17-16 acfsutil metaコマンドのオプション

オプション 説明

—f record_oriented_metadata_output_file

メタデータのコピー先となる出力ファイルのパス名を指定します。

—g

ブロック・スキャンは、ボリューム全体で失われたメタデータを検索するためには実行しないでください。かわりに、既知のメタデータ・ブロックのみを読み取ってください。このオプションが推奨されるのは、良好な状態のファイル・システムのみです。

—g -O -C -S

Oracle ACFSオンライン・チェッカ(Linuxではfsck)も実行する点以外は、-gオプションと同じです。

-O

Oracle ACFSオンライン・チェッカ(Linuxではfsck)を実行することを指定します。

-C COW_filepath

Oracle ACFSオンライン・チェッカのCopy-On-Write(COW)ファイルへのパスを指定します。パスは別のOracle ACFSファイル・システム上にある必要があります。

-S COW_size

Oracle ACFSオンライン・チェッカのCopy-On-Write(COW)ファイルのサイズを指定します。サイズは、ファイル・システムの変更時に元のブロックを維持できる規模の十分な大きさが必要です。

volume_device

コピーされるファイル・システムのボリューム・デバイス名を指定します。

—v

verboseモードを指定して追加の診断メッセージを生成します。

—q nn[K|M|G|T]

クイック・スキャン・モードでメタデータ・コレクタを起動します。ボリュームのスキャンは、指定されたサイズで停止します。指定する数字は正の整数でなければならず、値は、少なくとも200Mでなければなりません。

単位は、K (KB)、M (MB)、G (GB)、またはT (TB)です。単位インジケータを指定する場合は、整数の後に付ける必要があります。省略した場合、デフォルトの単位はバイトです。

-l log_file_path

ログ・ファイルのパスを指定します。指定しない場合、ログ・ファイルは現行ディレクトリにデフォルト名のacfs.meta.logで生成されます。

—o acfs_extent_offsets

メタ・コレクタがデータを追加でコピーする元となるカンマ区切りのファイル・オフセットのリストを指定します。

—a accel_device

ファイル・システムがアンマウントできない場合に使用される、関連付けられたアクセラレータ・デバイスの場所を指定します。

—e record_oriented_metadata_input_file

指定されたレコード指向メタデータ・ファイルを、fsckまたはacfschkdskで使用できるファイルに展開します。

—i

-iオプションを-eオプションとともに使用すると、各レコード指向メタデータ・ファイルのメタデータ・レコード・ヘッダー(フラグ、ボリューム、オフセット、サイズ)がリストされます。

—f output_filesystem_meta_file_prefix_name

—eオプション操作の出力ファイルのパス名を指定します。

acfsutil metaコマンドは、メタデータ・コレクタとして動作し、Oracle ACFSファイル・システムを別の指定されたレコード指向出力ファイルに部分的にコピーします。メタデータ・コレクタは、Oracle ACFSファイル・システムのボリュームデバイス名で指定されたファイル・システムのコンテンツを読み取ります。この入力ファイル・システムでOracle ACFSメタデータが検索され、見つかったメタデータはすべて指定のレコード指向出力ファイルに書き込まれます。生成されたレコード指向出力ファイルは、容易に別のシステムに転送できます。そこで、顧客サイトにある元のファイル・システムに影響を与えることなく、診断および分析のために展開できます。

-gオプションは、既知の良好なメタデータのみを収集します。破損したファイル・システムを指定して-gオプションは使用しないでください。-gオプションは、失われたメタデータを検索しないためです。失われたメタデータは、ファイル・システムの破損の診断に重要な場合があります。ファイル・システムが良好な状態の場合、-gオプションは、物理ボリューム全体をスキャンして失われたメタデータ・ブロックを検索する必要がないため、より高速にメタデータを収集できます。

Linuxでacfsutil meta -gコマンドを実行すると、Oracle ACFSオンライン・チェッカ(fsck)が自動的に実行されます。acfsutil meta -gのかわりに実行されるOracle ACFSオンライン・チェッカは、メタデータ・オンディスク・ポインタを使用してOracle ACFSファイル・システム・メタデータをトラバースし、acfsutil meta-gメタデータ・コレクション・ファイルに読み込まれたメタデータを書き込みます。Linuxでのオンラインfsckコマンドの詳細は、Linux環境用のOracle ACFSコマンドライン・ツールを参照してください。

acfsutil metaでファイル・システムの最適なコピーを取得するには、ファイル・システムをアンマウントしてからacfsutil metaを実行します。ファイル・システムをアンマウントできない場合は、acfsutil metaを実行している間、コンテンツの変更またはボリュームのサイズ変更操作の実行を回避します。

元のファイル・システムが非常に大規模な場合、出力ファイルも非常に大きくなる可能性があります。ストレージ領域および転送時間を削減できる場合は、出力ファイルを圧縮します。

ファイル・システムにアクセラレータ・デバイスが関連付けられている場合、acfsutil metaは、アクセラレータ・デバイス・データもレコード指向出力ファイルにコピーします。この動作は自動的に発生します。

ほとんどの状況で、acfsutil metaは、アクセラレータ・デバイスをレコード指向出力ファイルに自動的にコピーします。しかし、メタ・コレクタが自力でアクセラレータ・デバイスを検出できないと考えられる場合、コマンドラインに-aオプションを使用して名前を指定できます。たとえば、ファイル・システムが破損した場合にこのような状況が発生します。-aオプションを使用すると、メタ・コレクタの自動的な動作がオーバーライドされるため、-aは慎重に使用する必要があります。

メタデータ・コマンドが出力ファイルも処理する可能性があるため、出力ファイルは入力デバイスとして指定されるOracle ACFSデバイスには配置しないでください。出力ファイルは、Oracle ACFS入力ボリューム・デバイスのサイズである出力ファイルをサポートできるファイル・システムに配置する必要があります。ファイル・システムがいっぱいで、すべてのメタデータを含み、ユーザー・データをほとんど含んでいない場合(このような状態が起こる可能性は低いですが、あり得ないことではありません)を除き、出力ファイルにはそれほどのストレージは必要ないはずです。

-qフラグは慎重に使用する必要があります。-qを指定すると、メタ・コレクタは入力ファイル・システム全体のスキャンおよびコピーを実行しません。そのかわりに、事前決定されたバイト数および重要と見なされる特定のデータ構造のみをスキャンしてコピーします。-qフラグは主に、メタデータ・コレクタのフルバージョンを実行する十分な時間がない状況で使用します。-qフラグは、問題を調査しているサポート担当者が推奨しないかぎり使用しないでください。

レコード指向出力ファイルの展開は、診断および分析を実行するシステムで行う必要があります。たとえば、次のコマンドは、十分なストレージ領域がある別のファイル・システム上でレコード指向メタデータ・ファイルを展開します。

acfsutil meta -e record_oriented_metadata_input_file -f output_filesystem_meta_file_prefix_name

コマンドの出力は、fsckまたはacfschkdskでの使用に適したスパース・ファイルを提供します。レコード指向メタデータ入力ファイルにアクセラレータ・ボリュームが含まれている場合は、.acc接尾辞が付加された同じ出力ファイル名接頭辞を使用して、2番目のスパース出力ファイルが作成されます。展開されたファイルに使用されるファイル・システムは、スパース・ファイルをサポートしている必要があります。そうでない場合、結果として展開されたファイルは、無用のゼロを含む非常に大きなサイズになる可能性があります。これは、スパースのホールによって領域を節約できる部分です。

ほとんどの場合、acfsutil metaで展開された出力ファイルは、fsckコマンドで読み取ることができます。ただし、一部のOSプラットフォームでOracle ACFS固有のfsckコマンドを使用すると、出力ファイルに正しくアクセスできないか、指定したフラグで機能しないことがあります。このような場合、fsckコマンドの書式を少し変更して使用します。次に例を示します。

  • Linuxでは、—xフラグを使用している場合、次の書式でコマンドを実行します。

    /sbin/fsck.acfs -x filesystem_meta_file.acc filesystem_meta_file
  • Solarisでは、—o xフラグを使用している場合、次の書式でコマンドを実行します。

    /usr/lib/fs/acfs/fsck -o x=filesystem_meta_file.acc filesystem_meta_file
  • AIXでは、次の書式でコマンドを実行します。

    /sbin/helpers/acfs/fsck filesystem_meta_file
  • Windowsでは、次の書式でコマンドを実行します。

    acfschkdsk filesystem_meta_file

例17-14は、メタデータをコピーして出力ファイルへと展開するためのacfsutil metaコマンドの使用方法を示しています。

例17-14 acfsutil metaコマンドの使用方法

$ /sbin/acfsutil meta -f /acfsmounts/critical_apps/record_oriented_metadata_file /dev/asm/volume1-123

次に、診断および分析が実行されるシステムで出力ファイルを展開できます。

$ /sbin/acfsutil meta -e record_oriented_metadata_file -f filesystem_meta_file

acfsutil plogconfig

目的

Oracle ACFSの永続ロギング構成設定を管理します。

構文および説明

acfsutil plogconfig [-h] [-d persistent_log_directory] [-t] [-q ] [-i seconds] 
                    [-s buffer_size] [-l low_water_percent] [-u high_water_percent] 
                    [-m max_logfile_size] [-n max_logfile_number]

acfsutil -h plogconfigは、ヘルプを表示して終了します。

Oracle ACFS acfsutilコマンドの実行の詳細は、「Oracle ACFSコマンドライン・ツールの使用について」を参照してください。

次の表に、acfsutil plogconfigコマンドで使用可能なオプションを示します。

表17-17 acfsutil plogconfigコマンドのオプション

オプション 説明

-d persistent_log_directory

代替ロギング・ディレクトリを指定します。指定しない場合、デフォルト・ディレクトリは$ORACLE_BASE/crsdata/hostname/acfsです。

-t

ロギングを終了します。

-q

永続ロギング構成設定を問い合せて、表示します。

-i seconds

間隔タイマーの秒数を指定します。

-s buffer_size

ログ・バッファ・サイズ(KB)を設定します。

-l low_water_pecent

ファイル書込みトリガーをパーセンテージで設定します。

-u high_water_pecent

ファイル書込みスロットルをパーセンテージで設定します。

-m max_logfile_size

ログ・ファイルの最大サイズ(MB)を設定します。

-n max_logfile_number

ログ・ファイルの最大数を設定します。

acfsutil plogconfigコマンドは、永続ロギングの構成設定を管理するための診断ツールとなります。

コマンド引数はすべてオプションですが、少なくとも1つ指定する必要があります。

ノート:

acfsutil plogconfigコマンドは、Oracleサポートが永続ロギング設定の構成を要求した場合にのみ実行します。

このコマンドを実行するには、rootユーザーまたはOracle ASM管理者ユーザーである必要があります。

次に、現在の構成設定を表示するacfsutil plogconfigコマンドの使用例を示します。

例17-15 Oracle ACFS acfsutil plogconfigコマンドの使用方法

# /sbin/acfsutil plogconfig -q

Log Directory Name : /oracle/crsdata/my_host/acfs 
Buffer Size (KB) : 64
Low Water Level (percent) : 50
High Water Level (percent) : 75
Timer Interval (Seconds) : 5
Maximum Number of Log Files : 10
Maximum Log File Size (MB) : 100

acfsutil tune

目的

acfsutil tuneコマンドは、Oracle ACFSの調整可能パラメータの値を表示または設定します。

構文および説明

acfsutil tune -h
acfsutil tune [tunable_name]
acfsutil tune tunable_name=value

acfsutil tune -hは、ヘルプ・テキストを表示して終了します。

次の表に、acfsutil tuneコマンドで使用可能なオプションを示します。

表17-18 acfsutil tuneコマンドのオプション

オプション 説明

tunable_name

調整可能パラメータの名前を指定します。

value

調整可能パラメータの値を指定します。

調整可能パラメータと値が指定されている場合、acfsutil tuneコマンドは、特定のノードに永続的な方法で調整可能パラメータの値を設定します。

調整可能パラメータが値なしで指定されている場合、acfsutil tuneコマンドは、指定された調整可能パラメータに現在割り当てられている値を表示します。

オプションが指定されていない場合、acfsutil tuneコマンドは、現在割り当てられている調整可能パラメータの値を表示します。

Oracle ACFS調整可能パラメータAcfsMaxOpenFilesにより、WindowsおよびAIX上で開かれているOracle ACFSファイルの数が制限されます。通常、この調整可能パラメータの値を変更する必要はありませんが、Oracle ACFSファイル・システムで大きな作業ファイルを扱う場合、値を増やすことがあります。

Oracle ACFS調整可能パラメータAcfsMaxCachedFilesにより、WindowsおよびAIXのメモリーにキャッシュされているクローズ済ファイルの最大数が設定されます。通常、この調整可能パラメータの値を変更する必要はありませんが、パフォーマンスの向上のために値を変更することがあります。

調整可能パラメータを変更すると、ただちに有効になり、再起動されても効力は持続します。

調整可能パラメータの値を変更するには、rootユーザーまたはWindowsのAdministratorであることが必要です。

最初のコマンドは、Oracle ACFSの調整可能パラメータとその値を表示します。2つ目のコマンドでは、AcfsHMTimeOutIntervalSecsパラメータの値を変更します。

例17-16 acfsutil tuneコマンドの使用方法

$ /sbin/acfsutil tune
AcfsHMTimeOutIntervalSecs   = 60 (0x3c)
AcfsHMSilenceIntervalMins   = 240 (0xf0)

# /sbin/acfsutil tune AcfsHMTimeOutIntervalSecs=120

advmutil tune

目的

advmutil tuneは、Oracle ADVMのパラメータの値を表示または設定します。

構文および説明

advmutil -h
advmutil tune [parameter]
advmutil tune parameter=value

advmutil -hはヘルプ・テキストを表示して終了します。

次の表に、advmutil tuneコマンドで使用可能なオプションを示します。

表17-19 advmutil tuneコマンドのオプション

オプション 説明

parameter

値を設定または表示するパラメータを指定します。

value

指定したパラメータの値を指定します。

オプションが指定されていない場合、advmutil tuneコマンドは、現在割り当てられている値を表示します。

パラメータに値が指定されていない場合、advmutil tuneコマンドは指定されたパラメータに現在割り当てられている値を表示します。

パラメータを設定するには、権限を持つユーザーである必要があります。

ノート:

パラメータの設定は注意して行う必要があり、通常はOracleサポート・サービスのみが行います。

advmutil tuneで指定できるパラメータは、デッドロック・タイマー(deadlock_timer)の最大時間(分)です。この例の1つ目のコマンドは、deadlock_timerパラメータの最大時間(分)を変更します。2番目のコマンドは、Oracle ADVMパラメータの現在の設定を表示します。

例17-17 advmutil tuneの使用方法

$ /sbin/advmutil tune deadlock_timer=20

$ /sbin/advmutil tune
deadlock_timer        = 20 (0x14)
resilver_power        = 8 (0x8)
resilver_regio        = 32 (0x20)

Oracle ACFS I/O障害コンソール・メッセージの理解

Oracle ACFSでは、オペレーティング・システム固有のシステム・イベント・ログにI/O障害の情報を記録します。

コンソール・メッセージの書式は次のとおりです。

[Oracle ACFS]: I/O failure (error_code) with device device_name during a operation_name op_type.
file_entry_num Starting offset: offset. Length of data transfer: io_length bytes.
Impact: acfs_type   Object: object_type   Oper.Context: operation_context 
Snapshot?: yes_or_no AcfsObjectID: acfs_object_id . Internal ACFS Location: code_location.

コンソール・メッセージ構文のイタリック体の変数は、次のものに対応しています。

  • I/O障害

    Oracle ACFSによって見つかったI/O障害に対するオペレーティング・システム固有のエラー・コード(16進法)。これはハードウェアの問題を示す場合もあれば、他のなんらかの理由によるI/O開始の失敗を示す場合もあります。

  • デバイス

    関連するデバイス(通常はADVMデバイス・ファイル)。しかし、場合によっては、デバイスのマイナー番号を示す文字列である可能性もあります。

  • 操作名

    関連する操作の種類。

    user datametadataまたはpaging

  • 操作タイプ

    関連する操作のタイプ。

    synch readsynch writeasynch readまたはasynch write

  • ファイル・エントリ番号

    関連するファイル・システム・オブジェクトのOracle ACFSファイル・エントリ番号(10進数)。acfsutil info fileidツールにより対応するファイル名を見つけます。

  • オフセット

    I/Oのディスク・オフセット(10進数)。

  • I/Oの長さ

    I/Oの長さ(バイト単位、10進数)。

  • 影響を受けるファイル・システム・オブジェクト

    関連するファイル・システム・オブジェクトがノードローカルか、クラスタ全体でアクセスされるリソースのいずれであるかの表示。次に例を示します。

    Node or Cluster

  • 影響を受けるオブジェクトのタイプ

    関連するファイル・システム・オブジェクトの種類を示す文字列(可能な場合)。次に例を示します。

    UnknownUser Dir.User SymlinkUser FileSys.DirSys.FileまたはMetaData

    • Sys.Dir.

      表示可能なネームスペース内でOracle ACFSによって管理されるディレクトリ

    • sys.File

      表示可能なネームスペース内でOracle ACFSによって管理されるファイル

    • MetaData

      表示可能なネームスペース外でOracle ACFSに管理されるリソース

  • 操作のコンテキスト

    I/Oを発行しているコード・コンテキストを示すよりレベルの高いビュー。これはOracleサポート・サービスで使用されます。次に例を示します。

    UnknownReadWriteGrowShrinkCommitまたはRecovery

  • スナップショット

    判断できる場合は、関連するデータがスナップショットのものであったかどうかの表示。次に例を示します。

    YesNoまたは?

  • ファイル・システムのオブジェクト・タイプ

    ファイル・システム・オブジェクトのタイプの内部識別子。Oracleサポート・サービスで使用。

  • コードの場所

    このメッセージを発行している場所のコードの内部識別子。Oracleサポート・サービスで使用。

次に、Linux環境での/var/log/messagesの例を示します。

[Oracle ACFS]: I/O failure (0xc0000001) with device /dev/sdb during a metadata synch write .
Fenum Unknown. Starting offset: 67113984. Length of data transfer: 2560 bytes.
Impact: Node   Object: MetaData   Oper.Context: Write
Snapshot?: ?  AcfsObjectID: 8  . Internal ACFS Location: 5 . 

Oracleパッチ適用とOracle ACFS

この項では、グリッド・インフラストラクチャ環境でのOracle ACFSを使用したパッチ適用について説明します。

Oracle ACFSパッチ適用の概要

Oracle ACFSは、Oracle Grid Infrastructureの一部としてインストールされます。ただし、Oracle ACFSは、Linux上の/lib/modules/sbinなどの様々なシステムの場所から実行されます。

Oracle ACFSは、Oracle Grid Infrastructureの配信およびパッチ・メカニズム(OUIおよびOPatch)と統合されます。配信メカニズム(Oracleリリース、Oracleパッチセット、Oracleリリース更新またはOracle個別パッチ)に関係なく、Oracle ACFSコンテンツはパッチで配信されます。

Oracleゼロ・ダウンタイムのグリッド・インフラストラクチャ・パッチ適用を使用せずにOracle Grid Infrastructureを更新すると、Oracle ACFSもシステムの場所で更新され、Oracle Gridソフトウェアのシームレスな操作が保証されます。更新時(リリース、リリース更新、パッチセットまたは個別パッチに関係なく)、Oracle Clusterwareスタックはローカル・ノードで停止され、サービスは他のノードに移行されます。その後、Oracle Gridソフトウェアにパッチが適用され、サービスがローカル・ノードで再起動されます。

Oracleゼロ・ダウンタイムのOracle Grid Infrastructureパッチ適用を使用しないパッチ適用

パッチ操作中、まずOracle ACFSソフトウェアはOPatchまたはOUIファイル配置操作によってGridホームで更新され、その後Oracle Clusterwareの停止中に適切なシステムの場所に移動されてメモリーにロードされます。Oracle Clusterwareの再起動には、オペレーティング・システム(OS)カーネルでOracle ACFSを更新できるように、OSカーネル参照を解放するという副作用があります。

ゼロ・ダウンタイムのOracle Grid Infrastructureを使用したパッチ適用

ゼロ・ダウンタイムのOracle Grid Infrastructureパッチ適用を使用すると、Oracle Gridホーム内のOracle Grid Infrastructureユーザー領域バイナリのみにパッチが適用されます。Oracle Gridホームから実行されるコマンドは、すぐに最新バージョンを使用します。ACFS、AFD、OLFS、OKA OSシステム・ソフトウェア(OSカーネル・モジュールおよびシステム・ツール)など、Oracle Gridホーム外にインストールされるOracle Grid Infrastructureコンポーネントは、Gridホームで更新されますが、システムの場所にはインストールされません。パッチ・バージョンより前のバージョンが引き続き実行されます。パッチが適用されると、OPatchインベントリにOPatchインベントリの新しいパッチ番号が表示されます。ただし、実行中のソフトウェアにはこれらの変更は含まれず、Gridホームで使用可能なソフトウェアのみが含まれます。新しく使用可能になったソフトウェアがメモリーにロードされ、付属するユーザー・ツールがシステムの場所にコピーされるまで、Oracle Grid Infrastructureホームにある使用可能な修正は利用されません。

実行およびインストールされているOracle ACFSシステム・ソフトウェアを確認するには、次のコマンドを使用できます。

  • crsctl query driver activeversion -all

    このコマンドは、クラスタのすべてのノード上のOracle ACFSのアクティブ・バージョンを表示します。アクティブ・バージョンは、システムに現在ロードされて実行されているOracle ACFSドライバのバージョンです。これは、ACFSシステム・ツールのバージョンも暗黙的に示します。18c以降で使用可能なcrsctl queryコマンドは、クラスタのすべてのノードのデータを表示します。

    次の例では、19.4がOracleホームで使用可能ですが、19.2が現在実行中のバージョンです。OPatch lsinventoryにより、19.4がパッチ適用済バージョンとしてレポートされます。Oracle Grid Infrastructure OSドライバは19.2のみを実行しています。

    crsctl query driver activeversion -all
    Node Name : node1
    Driver Name : ACFS
    BuildNumber : 200114
    BuildVersion : 19.0.0.0.0 (19.2.0.0.0)
    
  • crsctl query driver softwareversion -all

    このコマンドは、Oracle Gridホームに現在インストールされているOracle Grid Infrastructureソフトウェアの使用可能なソフトウェア・バージョン(および拡張機能別にOracle ACFSソフトウェアの使用可能なソフトウェア・バージョン)を表示します。18c以降で使用可能なcrsctl queryコマンドは、クラスタのすべてのノードのデータを表示します。

    crsctl query driver softwareversion -all
    Node Name : node1
    Driver Name : ACFS
    BuildNumber : 200628
    BuildVersion : 19.0.0.0.0 (19.4.0.0.0)
    
  • acfsdriverstate version -v

    このコマンドは、ローカル・ノードで実行中のOracle ACFSモジュールに関する全情報を表示します。ACFS-9548およびACFS-9547メッセージには、Oracle Grid Infrastructureホームで使用可能なOracle ACFSソフトウェアのバージョンが表示されます。acfsdriverstateは、ローカル・ノードについてのみをレポートします。バグ番号は、個別パッチの実行時にのみ使用可能です。

    acfsdriverstate version -v
    ACFS-9325: Driver OS kernel version = 4.1.12-112.16.4.el7uek.x86_64.
    ACFS-9326: Driver build number = 200114.
    ACFS-9212: Driver build version = 19.0.0.0.0 (19.2.0.0.0).
    ACFS-9547: Driver available build number = 200628.
    ACFS-9548: Driver available build version = 19.0.0.0.0 (19.2.0.0.0)
    ACFS-9549: Kernel and command versions.
    Kernel:
     Build version: 19.0.0.0.0
     Build full version: 19.2.0.0.0
     Build hash: 9256567290
     Bug numbers: NoTransactionInformation
    Commands:
     Build version: 19.0.0.0.0
     Build full version: 19.2.0.0.0
     Build hash: 9256567290
     Bug numbers: NoTransactionInformation
    

Oracle Grid Infrastructureファイルの更新

Oracle Clusterwareスタックが停止し、Oracle ACFSドライバ・モジュールが更新されるまで、Oracle ACFSの修正はメモリーにロードされません。Oracle ACFSの修正をシステム・メモリーにロードするプロセスにより、Oracle ACFS操作に必要なツールもシステムの場所にインストールされます。

次の手順のいずれかを実行できます。

  1. Oracle ACFSの修正をメモリーおよびシステムの場所にロードするには、ノードごとに次のコマンドを発行する必要があります。

    • crsctl stop crs -f

      ローカル・ノード上のCRSスタックおよびすべてのアプリケーションを停止します

    • root.sh -updateosfiles

      システム上のOracle ACFSおよびその他のOracle Grid Infrastructureカーネル・モジュールを最新バージョンに更新します

    • crsctl start crs -wait

      ノードでCRSを再起動します

  2. あるいは、カーネル・バージョンを変更してノードを再起動すると、新しいドライバが自動的にロードされ、新しいシステム・ツールがシステム・ディレクトリにインストールされます。クラスタ内のすべてのノードがカーネル・バージョンを同時に変更するものとします。

これらのイベントのいずれかが発生すると、crsctl query activeversionおよびcrsctl query softwareversionコマンドによって同じ情報がレポートされます。ロード済で実行中のオペレーティング・システム(OS)ソフトウェアは、Oracle Grid Infrastructureホームで使用可能な最新のものと同じです。Oracle ACFSパッチ適用の検証の説明に従って、他のOracle ACFSバージョンのコマンドを実行できます。

Oracle ACFSパッチ適用の検証

標準のOPatchパッチを使用してOracleリリース更新およびOracleパッチを適用する場合、インベントリにはGrid Infrastructureホームおよびシステムにインストールされている内容が正確に反映されます。次に例を示します。

[grid@racnode1]$ opatch lsinventory
...
..
Oracle Grid Infrastructure 19c                                       19.0.0.0.0
There are 1 products installed in this Oracle Home.

Interim patches (5) :

Patch  30501910: applied on Sat Mar 07 15:42:08 AEDT 2020
Unique Patch ID:  23299902
Patch description:  "Grid Infrastructure Jan 2020 Release Update : 19.4.0.0.200628 (30501910)"
   Created on 28 Dec 2019, 10:44:46 hrs PST8PDT
   Bugs fixed:

lsinventoryの出力例では、OPatch RUおよび適用されるその他のパッチと、バグ番号およびその他の情報をリストしています。これらのパッチはGrid Infrastructureホームに適用されます。通常のパッチ適用操作では、オペレーティング・システム(OS)の場所にも適用され、メモリーにロードされるため、Oracle Grid InfrastructureのOSシステム・ソフトウェアの修正がGrid Infrastructureホームと同期されます。ただし、ゼロ・ダウンタイムのグリッド・インフラストラクチャ・パッチ適用を使用する場合、システムにインストールされているOracle Grid Infrastructureシステム・ソフトウェアの内容(Oracle ACFSなど)は同時に更新されません。

crsctl query driverおよびacfsdriverstateコマンドを使用して、インストールされているOracle Grid Infrastructureシステム・ソフトウェア・レベルがGrid Infrastructureホームのソフトウェア・レベルと同じかどうかを検証できます。Oracle ACFSパッチ適用の概要のゼロ・ダウンタイムのOracle Grid Infrastructureパッチ適用に関する説明を参照してください。

ゼロ・ダウンタイムのOracle Grid Infrastructureパッチ適用を使用せずに適用されたパッチ適用および更新操作の場合、アクティブ・バージョンとソフトウェア・バージョンは常に同じである必要があります。

更新されたOracle Grid Infrastructure OSシステム・ソフトウェアのインストールが必要な場合は、Oracle Grid Infrastructureファイルの更新の手順を参照してください。

すべてのOracle Grid Infrastructure OSシステム・ソフトウェアが更新された後のバージョンは、Grid Infrastructureホームへのパッチまたは更新について表示されるOpatch lsinventoryの出力と同じ(この場合は19.4.0.0.0)である必要があります。また、使用可能でアクティブなOracle Grid Infrastructure OSシステム・ソフトウェアには、同じバージョン番号が表示されている必要があります。次に例を示します。

Output from the lsinventory command:   
Patch description:  "Grid Infrastructure Jan 2020 Release Update : 19.4.0.0.0.200628 (30501910)"

crsctl query driver activeversion -all
Node Name : node1
Driver Name : ACFS
BuildNumber : 200628
BuildVersion : 19.0.0.0.0 (19.4.0.0.0)

crsctl query driver softwareversion -all
Node Name : node1
Driver Name : ACFS
BuildNumber : 200628
BuildVersion : 19.0.0.0.0 (19.4.0.0.0)

acfsdriverstate versionコマンドを実行すると、コマンドやユーティリティに関する情報など、ローカル・ノード上のOracle ACFSの追加情報を取得できます。次に例を示します。

acfsdriverstate version 
 ACFS-9325: Driver OS kernel version = 4.1.12-112.16.4.el7uek.x86_64.
 ACFS-9326: Driver build number = 200628.
 ACFS-9212: Driver build version = 19.0.0.0.0 (19.4.0.0.0)
 ACFS-9547: Driver available build number = 200628.
 ACFS-9548: Driver available build version = 19.0.0.0.0 (19.4.0.0.0).