タスク4: Oracle RACでのファイル・システムの設定

Oracle GoldenGate Microservices Architectureの設計では、インストールとデプロイメントのディレクトリ構造が簡略化されています。インストール・ディレクトリは、ソフトウェア・パッチ適用中の停止時間を最小限に抑えるために、各Oracle RACノードでローカル・ストレージに配置する必要があります。

デプロイメント・ディレクトリ,は、Oracle GoldenGate Configuration Assistant (oggca.sh)を使用したデプロイメントの作成時に作成されます。このディレクトリは、共有ファイル・システムに配置する必要があります。デプロイメント・ディレクトリには、構成、セキュリティ、ログ、パラメータ、証跡およびチェックポイントのファイルが含まれます。

DBFSまたはACFSにデプロイメントを配置すると、システム障害が発生した場合に最適なリカバリ機能とフェイルオーバー機能が提供されます。クラスタ全体でチェックポイント・ファイルの可用性を確保することは、障害発生後にGoldenGateプロセスで最後に認識された位置から実行を継続できるようにするために不可欠です。

Oracle Data GuardとともにOracle GoldenGateを構成する場合、推奨のファイル・システムはDBFSです。DBFSは、Data Guardで保護されているデータベースに含まれ、XAGと十分に統合できます。Data Guardロール・トランジションが発生した場合、このファイル・システムは新しいプライマリ・サーバーに自動的にマウントされ、その後でOracle GoldenGateが自動起動されます。ACFSはOracle Data Guard構成の一部ではないため、現在これは、ACFSの場合はできません。

DBFSまたはACFSのファイル・システムを構成するには、次の該当する項の手順に従います。

Oracle Database File System(DBFS)

DBFS表領域は、Oracle GoldenGateプロセスで接続しているのと同じデータベース内に作成する必要があります。たとえば、GoldenGate統合ExtractプロセスでGGDBというデータベースから抽出されている場合は、同じGGDBデータベースにDBFS表領域を配置します。

必要なFUSEライブラリがまだインストールされていない場合は、My Oracle Supportのノート869822.1の手順に従ってそれらをインストールします。

My Oracle Supportのノート1054431.1の手順を使用して、データベース、表領域、データベース・ユーザー、tnsnames.oraのOracle Net接続別名、およびDBFSに必要なソースまたはターゲットGoldenGate環境に対する権限を構成します。

ノート:

Oracleマルチテナント・データベースを使用する場合は、プラガブル・データベース(PDB)内にDBFS表領域を作成する必要があります。GoldenGate ExtractプロセスまたはReplicatプロセスで接続しているのと同じPDBを使用することをお薦めします。これにより、DBFSで、そのデータベース依存関係に、前述のタスク2で作成したのと同じデータベース・サービスを使用できるようになります。

GoldenGateデプロイメント・ファイルを格納するためのファイル・システムを作成するときは、最長12時間の証跡ファイルを格納できる十分な証跡ファイル用ディスク領域を割り当てることをお薦めします。これにより、新しい証跡ファイルを受信できなくなるような問題がターゲット環境で発生した場合の証跡ファイル生成のための十分な領域が確保されます。12時間に必要な領域の量は、実際の本番データで証跡ファイルの生成率をテストすることでのみ決定できます。

DBFS作成の例:

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus dbfs_user/dbfs_password@database_tns_alias
SQL> start dbfs_create_filesystem dbfs_gg_tbs goldengate

My Oracle Supportのノート1054431.1の手順に従って、新しく作成されたDBFSファイル・システムを、ノード障害発生後にDBFSインスタンスおよびマウント・ポイント・リソースがCluster Ready Services (CRS)によって自動的に起動されるように構成し、次のようにDBFS構成およびスクリプト・ファイルを変更します。

  1. ご使用のデータベース環境を反映するようにmount-dbfs.confパラメータを変更します。

    MOUNT_OPTIONSパラメータを次のように変更します。

    MOUNT_OPTIONS=allow_other,direct_io,failover,nolock

    failoverオプションは、すべてのファイル書込みをIMMEDIATE WAITモードでDBFSデータベースにコミットすることを強制します。これにより、データベースまたはノードの障害の発生時に、データが、dbfs_clientキャッシュには書き込まれたがデータベースにはまだ書き込まれていなくても、失われることがなくなります。

    nolockマウント・オプションは、Oracle Database 18c以降のリリースを使用している場合に必要になります。これは、DBFSファイル・ロック(これにより、ファイルが現在ロックされているときにOracle RACノードの障害が発生するとGoldenGateプロセスに問題が生じる可能性がある)に変更があったためです。

    Oracle Database 12cリリース2 (12.2)のdbfs_clientを使用している場合は、バグ27056711の修正を含む最新のリリース更新が適用されていることを確認してください。この修正を適用すると、MOUNT_OPTIONSnolockオプションも含まれます。

  2. CRSリソースの停止時にDBFSを強制的にアンマウントするように、mount-DBFS.shスクリプトを変更します。

    次の2つの出現箇所を変更します。

    $FUSERMOUNT -u $MOUNT_POINT

    これを次のように変更します。

    $FUSERMOUNT -uz $MOUNT_POINT

  3. このリソースをOracle Clusterwareに登録するときは、My Oracle Supportのノートで示されているように、local_resourceではなく必ずcluster_resourceとしてそれを作成してください。

    cluster_resourceを使用するのは、ファイル・システムを一度に1つのノードにのみマウントできるようにして、同時に複数のノードでDBFSがマウントされる(ファイル書込みが同時に発生する可能性が生じて、ファイルが破損する原因になる)ことを防ぐためです。

    DBFSサービスの依存関係には、前のステップで作成したデータベース・サービス名を使用してください。

    たとえば:

    DBNAME=ggdb
    DEPNAME=ora.$DBNAME.oggserv.svc
    
    crsctl add resource $RESNAME \
      -type cluster_resource \
      -attr "ACTION_SCRIPT=$ACTION_SCRIPT, \
             CHECK_INTERVAL=30,RESTART_ATTEMPTS=10, \      
    START_DEPENDENCIES='hard($DEPNAME)pullup($DEPNAME)',\
             STOP_DEPENDENCIES='hard($DEPNAME)',\
             SCRIPT_TIMEOUT=300"

    DBFSリソースを作成した後は、ファイル・システムをマウントしテストする必要があります。

    $ crsctl start res dbfs_mount
    $ crsctl stat res dbfs_mount

    ファイル・システムをマウントした後は、GoldenGateファイルを格納するディレクトリを作成します。

    $ cd /mnt/dbfs/goldengate
    $ mkdir deployments

    ノート:

    共有ファイル・システムは、マウントされたままにします。これは、後のステップでGoldenGateデプロイメントを作成するために必要です。

Oracle Advanced Cluster File System (ACFS)

Oracle ACFSは、Oracle RAC構成での共有GoldenGateファイルのための、DBFSの代替です。

Oracle Exadata Database MachineのACFS構成要件の詳細は、My Oracle Supportのノート1929629.1を参照してください。

Oracleのデプロイメント・ファイルを格納するための単一のACFSファイル・システムを作成します。

最長12時間の証跡ファイルを格納できる十分な証跡ファイル用ディスク領域を割り当てることをお薦めします。これにより、新しい証跡ファイルを受信できなくなるような問題がターゲット環境で発生した場合の証跡ファイル生成のための十分な領域が確保されます。12時間に必要な領域の量は、実際の本番データで証跡ファイルの生成率をテストすることでのみ決定できます。

  1. Oracle ASM管理者ユーザーとしてASMCMDを使用してファイル・システムを作成します。

    ASMCMD [+] > volcreate -G datac1 -s 1200G ACFS_GG 

    ノート:

    決定したサイズ要件に応じて、ファイル・システムのサイズを変更します。
    ASMCMD> volinfo -G datac1 acfs_gg
    
    Diskgroup Name: DATAC1
             Volume Name: ACFS_GG
             Volume Device: /dev/asm/acfs_gg-151
             State: ENABLED
             Size (MB): 1228800
             Resize Unit (MB): 64
             Redundancy: MIRROR
             Stripe Columns: 8
             Stripe Width (K): 1024
             Usage:
             Mountpath:

    次のmkfsコマンドを使用してファイル・システムを作成します。

    $ /sbin/mkfs -t acfs /dev/asm/acfs-gg-151
  2. 新しく作成したACFSファイル・システムのCRSリソースを作成します(まだ作成されていない場合)。

    ファイル・システム・リソースがすでに作成されているかどうかを確認します。

    $ srvctl status filesystem -volume ACFS_GG -diskgroup DATAC1
    
    ACFS file system /mnt/acfs_gg is mounted on nodes oggadm07, oggadm08

    まだ作成されていない場合は、すべてのOracle RACノードでACFSマウント・ポイントを作成します。

    # mkdir -p /mnt/acfs_gg

    rootユーザーとして、ファイル・システム・リソースを作成します。ACFSでの分散ファイル・ロックの実装により、DBFSとは異なり、一度に複数のRACノードにACFSをマウントできるようになっています。

    Oracle Grid InfrastructureのORACLE_HOMEから、srvctlを使用してACFSリソースを作成します。

    # srvctl add filesystem -device /dev/asm/acfs_gg-151 -volume ACFS_GG
    -diskgroup DATAC1 -path /mnt/acfs_gg -user oracle -autostart RESTORE

    現在構成されているACFSファイル・システムを確認するには、次のコマンドを使用してファイル・システムの詳細を表示します。

    $ srvctl config filesystem
    
    Volume device: /dev/asm/acfs_gg-151
    Diskgroup name: datac1
    Volume name: ACFS_GG
    Canonical volume device: /dev/asm/acfs_gg-151
    Accelerator volume devices:
    Mountpoint path: /mnt/acfs_gg
    Mount point owner: oracle
    
    Check the status of the ACFS resource and mount it.
    
    $ srvctl status filesystem -volume ACFS_GG -diskgroup DATAC1
    
    ACFS file system /mnt/acfs is not mounted
    
    $ srvctl start filesystem -volume ACFS_GG -diskgroup DATAC1 –node dc1north01

    作成されたCRSリソースには、ora.diskgroup_name.volume_name.acfsという形式で名前が付けられます。前述のファイル・システムの例を使用すると、CRSリソースの名前はora.datac1.acfs_gg.acfsになります。

    現在存在しているすべてのACFSファイル・システムのCRSリソースを表示するには、次のコマンドを使用します。

    $ crsctl stat res -w "((TYPE = ora.acfs.type) OR (TYPE = ora.acfs_cluster.type))"
    
    NAME=ora.datac1.acfs_gg.acfs
    TYPE=ora.acfs.type
    TARGET=ONLINE              , OFFLINE
    STATE=ONLINE on dc1north01, OFFLINE
  3. ACFSにGoldenGateデプロイメント・ディレクトリを作成します。

    ファイル・システムをマウントした後は、GoldenGateデプロイメントを格納するディレクトリを作成します。

    $ cd /mnt/acfs_gg
    $ mkdir deployments

ノート:

共有ファイル・システムは、マウントされたままにします。これは、後のタスクでGoldenGateデプロイメントを作成するために必要です。