Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

TR-5006:『High Throughput Oracle VLDB Implementation on Google Cloud NetApp Volumes with Data Guard』

共同作成者

ネットアップ、Niyaz Mohamed、Allen Cao氏

このソリューションでは、GoogleクラウドでOracle Data Guardを使用したGoogle Cloud NetApp Volume(GCNV)で高スループットのOracle Very Large Database(VLDB)を設定するための概要と詳細を提供します。

目的

高スループットでミッションクリティカルなOracle VLDBは、バックエンドデータベースストレージへの負荷を大きくしています。サービスレベルアグリーメント(SLA)を達成するには、データベースストレージが、ミリ秒未満のレイテンシパフォーマンスを維持しながら、必要な容量と高IOPS(Input/Out Operations per Second)を提供する必要があります。このようなデータベースワークロードを、共有ストレージリソース環境を使用するパブリッククラウドに導入する場合、特に困難が伴います。ストレージプラットフォームはどれも同じではありません。GCNVは、Googleが提供するプレミアムストレージサービスで、一貫したIOPSと低レイテンシのパフォーマンス特性を必要とする、GoogleクラウドへのミッションクリティカルなOracleデータベースの導入をサポートします。このアーキテクチャは、OLTPとOLAPのワークロードに対応し、さまざまなパフォーマンスプロファイルをサポートする構成可能なサービスレベルを備えています。GCNVは、1ミリ秒未満のレイテンシで超高速パフォーマンスを実現し、読み取り/書き込みワークロードが混在している場合に、ボリュームあたり最大4.5GiBpsのスループットを達成します。

GCNVの高速スナップショットバックアップ(秒)とクローン(分)機能を活用して、本番データベースのフルサイズコピーをPhysical Standbyからオンザフライでクローニングし、DEVやUATなどの他の多くのユースケースに対応できます。Active Data Guardライセンスと非効率で複雑なスナップショットスタンバイを解消できます。コストが大幅に削減される可能性があります。プライマリとスタンバイの両方のOracleサーバに64コアのCPUを搭載したOracle Data Guardの一般的なセットアップでは、Oracleの最新の価格表に基づくと、Active Data Guardのライセンスコスト削減額は1、472、000ドルになります。  

このドキュメントでは、複数のNFSボリュームを使用するGCNVSストレージおよびストレージのロードバランシング用にOracle ASMでData Guardを使用するOracle VLDB構成をセットアップする方法を説明します。スタンバイデータベースボリュームは、Snapshotを使用して迅速にバックアップし、読み取り/書き込みアクセス用にクローニングできます。NetAppソリューションエンジニアリングチームは、クローンの作成と更新を自動化するツールキットを提供し、ライフサイクル管理を合理化します。

この解決策 は、次のユースケースに対応します。

  • Googleクラウドリージョン全体のGCNVストレージサービスのData Guard設定にOracle VLDBを実装。

  • Snapshotによるバックアップと、物理スタンバイデータベースのクローニングにより、レポート作成、開発、テストなどのユースケースに自動化されます。

対象読者

この解決策 は、次のユーザーを対象としています。

  • 高可用性、データ保護、ディザスタリカバリを実現するために、GoogleクラウドでOracle VLDBとData GuardをセットアップするDBA。

  • GoogleクラウドでData Guardを使用したOracle VLDB構成に関心があるデータベースソリューションアーキテクト。

  • OracleデータベースをサポートするGCNVストレージを管理するストレージ管理者。

  • Googleクラウド環境でOracle VLDBとData Guardを立ち上げることを好むアプリケーション所有者。

解決策 のテストおよび検証環境

このソリューションのテストと検証は、実際のユーザ導入環境とは一致しない可能性があるGoogle Cloudラボ環境で実行されました。詳細については、を参照してください 導入にあたって考慮すべき主な要因

アーキテクチャ

この画像は、GCNV上のGoogleクラウドでのOracle Data Guardの実装の詳細を示しています。

ハードウェアおよびソフトウェアコンポーネント

* ハードウェア *

Google Cloud NetAppボリューム

Googleが現在提供しているサービス

2つのストレージプール、Premiumサービスレベル、自動QoS

DBサーバ用Google Compute Engine VM

N1(vCPU×4、メモリ:15GiB)

4つのDB VM、プライマリDBサーバ、スタンバイDBサーバ、クローンDBサーバ、およびData Guardオブザーバ。

ソフトウェア

Red Hat Linux

Red Hat Enterprise Linux 8.10(Ootpa)- x86/64

RHEL Marketplaceの画像、PAYG

Oracle Grid Infrastructureの略

バージョン19.18

RUパッチp34762026_190000_Linux-x86-64.zipを適用しました

Oracleデータベース

バージョン19.18

RUパッチp34765931_190000_Linux-x86-64.zipを適用しました

DNFS OneOffパッチ

p32931941_190000_Linux-x86-64.zip

グリッドとデータベースの両方に適用

Oracle OPatchの略

バージョン12.2.0.1.36

最新のパッチp6880880_190000_Linux-x86-64.zip

Ansible

バージョンコア2.16.2

Pythonバージョン- 3.10.13

NFS

バージョン3.0

OracleでDNFSが有効

NYからLAへのDRセットアップをシミュレートしたOracle VLDB Data Guard構成

* データベース *

* DB_UNIQUE_NAME *

* Oracle Net Service Name *

プライマリ

NTAP_NY

NTAP_NY.cvs-pm-host-1p.internal

スタンバイ

NTAP_LA

NTAP_LA.cvs-pm-host-1p.internal

導入にあたって考慮すべき主な要因

  • * Google Cloud NetApp Volumeの構成*GCNVはGoogle Cloud ASに割り当てられます Storage Pools。今回のテストと検証では、East4リージョンでOracleプライマリデータベースをホストするために2TiBのストレージプールを導入し、West4リージョンでスタンバイデータベースとDBクローンをホストするために4TiBのストレージプールを導入しました。GCNVストレージプールには、Flex、Standard、Premium、Extremeの4つのサービスレベルがあります。ANF容量プールのIO容量は、容量プールのサイズとそのサービスレベルに基づきます。容量プールの作成時には、ストレージプールの場所、サービスレベル、可用性ゾーン、およびストレージプールの容量を設定します。Oracle Data Guard構成では、ゾーンレベルで障害が発生した場合にData Guardがデータベースのフェイルオーバー保護を提供するため、ゾーンの可用性で十分である必要があります。

  • *データベース・ボリュームのサイズ設定*本番環境では、NetApp Oracle AWRレポートからOracleデータベースのスループット要件を完全に評価することを推奨します。VLDBデータベースのGCNVボリュームレイアウトを設計する際には、データベースサイズ、スループット要件、およびサービスレベルを考慮してください。OracleデータベースにはORサービスのみを Extreme`使用することを推奨します `Premium。帯域幅は、TiBボリューム容量あたり64MiB/秒で、サービス用に最大4.5GiBps、サービス用に最大128MiB/秒で `Extreme`保証されます。 `Premium`スループットが高いほど、要件を満たすためにボリュームのサイズを大きくする必要があります。

  • *複数のボリュームと負荷分散*QoSはボリュームサイズとストレージプールのサービスレベルに厳密に基づいて適用されるため、1つの大容量ボリュームは、アグリゲートボリュームサイズが同じ複数のボリュームと同様のパフォーマンスレベルを提供できます。共有バックエンドのGCNVストレージリソースプールをより有効に活用し、4.5GiBpsを超えるスループット要件を満たすために、Oracle VLDB用に複数のボリューム(複数のNFSマウントポイント)を実装することを推奨します。Oracle ASMを実装して、複数のNFSボリュームにIOロードバランシングを実装します。

  • * Google Compute Engine VMインスタンスの考慮事項*これらのテストと検証では、4つのvCPUと15GiBメモリを搭載したCompute Engine VM-N1を使用しました。高スループットが求められるOracle VLDBには、Compute Engine DB VMインスタンスを適切に選択する必要があります。vCPUの数とRAMの容量に加えて、VMのネットワーク帯域幅(入出力またはNICのスループット制限)が、データベースストレージのスループットに達する前にボトルネックになる可能性があります。

  • * dNFS構成*dNFSを使用すると、GCNVストレージを搭載したGoogle Compute Engine VM上で実行されるOracleデータベースで、ネイティブNFSクライアントよりも大幅に多くのI/Oを処理できます。潜在的なバグに対処するために、Oracle dNFSパッチp32931941を適用してください。

解決策 の導入

次のセクションでは、GCNVストレージを使用する東リージョンのGoogleクラウドのプライマリOracle DBと、GCNVストレージを使用する西リージョンのGoogleクラウドの物理スタンバイOracle DBの間のOracle Data Guard設定で、GCNV上のOracle VLDBの構成について説明します。

導入の前提条件

Details

導入には、次の前提条件が必要です。

  1. Googleクラウドアカウントがセットアップされ、Oracle Data Guardをセットアップするためのリソースを導入するためのプロジェクトがGoogleアカウント内に作成されました。

  2. Data Guardに必要なリージョンにまたがるVPCとサブネットを作成します。耐障害性に優れたDRセットアップを実現するには、プライマリDBとスタンバイDBを、ローカルリージョン内の主要なダイヤルインに耐えられる地理的な場所に配置することを検討してください。

  3. Googleクラウドポータルコンソールから、4つのGoogleコンピュートエンジンLinux VMインスタンスを導入します。1つはプライマリOracle DBサーバ、もう1つはスタンバイOracle DBサーバ、クローンターゲットDBサーバ、およびOracle Data Guardオブザーバとして使用します。環境セットアップの詳細については、前のセクションのアーキテクチャ図を参照してください。詳細な手順については、Googleのドキュメントを参照して"Compute EngineでのLinux VMインスタンスの作成"ください。

    メモ Oracleインストールファイルをステージングするための十分なスペースを確保するために、Azure VMSのルートボリュームに少なくとも50Gが割り当てられていることを確認してください。GoogleコンピューティングエンジンのVMは、デフォルトでインスタンスレベルでロックダウンされます。VM間の通信を有効にするには、一般的なOracleポート1521など、TCPポートのトラフィックフローを開くためのファイアウォールルールを作成する必要があります。
  4. Google Cloudポータルコンソールから、2つのGCNVストレージプールを導入してOracleデータベースボリュームをホストします。詳細な手順については、マニュアルを参照してください"ストレージプール作成クイックスタート"。以下に、クイックリファレンス用のスクリーンショットをいくつか示します。

    GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。

  5. ストレージプールにデータベースボリュームを作成します。詳細な手順については、マニュアルを参照してください"ボリューム作成クイックスタート"。以下に、クイックリファレンス用のスクリーンショットをいくつか示します。

    GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。 GCNV環境の設定を示すスクリーンショット。

  6. プライマリOracleデータベースがプライマリOracle DBサーバにインストールされ、設定されている必要があります。一方、スタンバイOracle DBサーバまたはクローンOracle DBサーバには、Oracleソフトウェアのみがインストールされ、Oracleデータベースは作成されません。OracleファイルディレクトリのレイアウトがすべてのOracle DBサーバで完全に一致することを推奨します。Oracleグリッドインフラと、NFS / ASMを使用したデータベースのインストールと設定については、TR-4974を参照してください。このソリューションはAWS FSX/EC2環境で検証済みですが、Google GCNV/Compute Engine環境にも同様に適用できます。

Data Guard用のプライマリOracle VLDB設定

Details

このデモでは、プライマリDBサーバにNTAPというプライマリOracleデータベースをセットアップし、8つのNFSマウントポイント(Oracleバイナリ用に/u01、Oracleデータファイル用に/u02、/u03、/u04、/u05、/u06、/u07、Oracle ASMディスクグループ+データ用に/u08、Oracleアクティブログ、アーカイブログファイル、およびOracle ASMディスクグループ+ログとの負荷分散)を使用します。Oracleの制御ファイルは、冗長性を確保するために、+DATAディスクグループと+LOGSディスクグループの両方に配置されます。このセットアップはリファレンス構成として機能します。実際の導入では、ストレージプールのサイジング、サービスレベル、データベースボリュームの数、および各ボリュームのサイズに関する固有のニーズと要件を考慮する必要があります。

ASMを使用するNFSにOracle Data Guardを設定する詳しい手順については、TR-5002-を参照してください"Azure NetApp FilesによるOracle Active Data Guardのコスト削減"。TR-5002の手順はAzure ANF環境で検証済みですが、Google GCNV環境でも同様です。

以下に、Google GCNV環境のData Guard構成におけるプライマリOracle VLDBの詳細を示します。

  1. プライマリコンピューティングエンジンのDBサーバ内のプライマリデータベースNTAPは、スタンドアロン構成の単一インスタンスデータベースとしてGCNVストレージに導入され、NFSプロトコルとASMをデータベースストレージボリュームマネージャとして使用します。

    orap.us-east4-a.c.cvs-pm-host-1p.internal:
    Zone: us-east-4a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.212.124.14
    pri_ip: 10.70.11.5
    
    [oracle@orap ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G     0  7.3G   0% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.180:/orap-u05  250G  201G   50G  81% /u05
    10.165.128.180:/orap-u08  400G  322G   79G  81% /u08
    10.165.128.180:/orap-u04  250G  201G   50G  81% /u04
    10.165.128.180:/orap-u07  250G  201G   50G  81% /u07
    10.165.128.180:/orap-u02  250G  201G   50G  81% /u02
    10.165.128.180:/orap-u06  250G  201G   50G  81% /u06
    10.165.128.180:/orap-u01  100G   21G   80G  21% /u01
    10.165.128.180:/orap-u03  250G  201G   50G  81% /u03
    
    
    [oracle@orap ~]$ cat /etc/oratab
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
  2. OracleユーザとしてプライマリDBサーバにログインします。グリッド設定を検証

    $GRID_HOME/bin/crsctl stat res -t
    [oracle@orap ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       orap                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.asm
                   ONLINE  ONLINE       orap                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      orap                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.ntap.db
          1        ONLINE  ONLINE       orap                     Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /NTAP,STABLE
    --------------------------------------------------------------------------------
    [oracle@orap ~]$
  3. ASMディスクグループの設定。

    asmcmd
    [oracle@orap ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1219888                0         1219888              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    327680   326556                0          326556              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/orap_data_disk_01
    /u02/oradata/asm/orap_data_disk_02
    /u02/oradata/asm/orap_data_disk_03
    /u02/oradata/asm/orap_data_disk_04
    /u03/oradata/asm/orap_data_disk_05
    /u03/oradata/asm/orap_data_disk_06
    /u03/oradata/asm/orap_data_disk_07
    /u03/oradata/asm/orap_data_disk_08
    /u04/oradata/asm/orap_data_disk_09
    /u04/oradata/asm/orap_data_disk_10
    /u04/oradata/asm/orap_data_disk_11
    /u04/oradata/asm/orap_data_disk_12
    /u05/oradata/asm/orap_data_disk_13
    /u05/oradata/asm/orap_data_disk_14
    /u05/oradata/asm/orap_data_disk_15
    /u05/oradata/asm/orap_data_disk_16
    /u06/oradata/asm/orap_data_disk_17
    /u06/oradata/asm/orap_data_disk_18
    /u06/oradata/asm/orap_data_disk_19
    /u06/oradata/asm/orap_data_disk_20
    /u07/oradata/asm/orap_data_disk_21
    /u07/oradata/asm/orap_data_disk_22
    /u07/oradata/asm/orap_data_disk_23
    /u07/oradata/asm/orap_data_disk_24
    /u08/oralogs/asm/orap_logs_disk_01
    /u08/oralogs/asm/orap_logs_disk_02
    /u08/oralogs/asm/orap_logs_disk_03
    /u08/oralogs/asm/orap_logs_disk_04
    ASMCMD>
  4. プライマリDB上のData Guardのパラメータ設定。

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      ntap
    db_unique_name                       string      ntap_ny
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      ntap_ny.cvs-pm-host-1p.interna
    
    SQL> sho parameter log_archive_dest
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_
                                                     DEST VALID_FOR=(ALL_LOGFILES,A
                                                     LL_ROLES) DB_UNIQUE_NAME=NTAP_
                                                     NY
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string      SERVICE=NTAP_LA ASYNC VALID_FO
                                                     R=(ONLINE_LOGFILES,PRIMARY_ROL
                                                     E) DB_UNIQUE_NAME=NTAP_LA
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
  5. プライマリDBの設定。

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      READ WRITE           ARCHIVELOG
    
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 NTAP_PDB1                      READ WRITE NO
             4 NTAP_PDB2                      READ WRITE NO
             5 NTAP_PDB3                      READ WRITE NO
    
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/DATAFILE/system.257.1198026005
    +DATA/NTAP/DATAFILE/sysaux.258.1198026051
    +DATA/NTAP/DATAFILE/undotbs1.259.1198026075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1198027075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1198027075
    +DATA/NTAP/DATAFILE/users.260.1198026077
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1198027075
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.272.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.273.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.271.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.275.1198028185
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/system.277.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.278.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.276.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/users.280.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/system.282.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.283.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.281.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/users.285.1198028229
    
    19 rows selected.
    
    
    SQL> select member from v$logfile;
    
    MEMBER
    --------------------------------------------------------------------------------
    +DATA/NTAP/ONLINELOG/group_3.264.1198026139
    +LOGS/NTAP/ONLINELOG/group_3.259.1198026147
    +DATA/NTAP/ONLINELOG/group_2.263.1198026137
    +LOGS/NTAP/ONLINELOG/group_2.258.1198026145
    +DATA/NTAP/ONLINELOG/group_1.262.1198026137
    +LOGS/NTAP/ONLINELOG/group_1.257.1198026145
    +DATA/NTAP/ONLINELOG/group_4.286.1198511423
    +LOGS/NTAP/ONLINELOG/group_4.265.1198511425
    +DATA/NTAP/ONLINELOG/group_5.287.1198511445
    +LOGS/NTAP/ONLINELOG/group_5.266.1198511447
    +DATA/NTAP/ONLINELOG/group_6.288.1198511459
    
    MEMBER
    --------------------------------------------------------------------------------
    +LOGS/NTAP/ONLINELOG/group_6.267.1198511461
    +DATA/NTAP/ONLINELOG/group_7.289.1198511477
    +LOGS/NTAP/ONLINELOG/group_7.268.1198511479
    
    14 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/CONTROLFILE/current.261.1198026135
    +LOGS/NTAP/CONTROLFILE/current.256.1198026135
  6. Oracleリスナーの構成。

    lsnrctl status listener
    [oracle@orap admin]$ lsnrctl status
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-APR-2025 16:14:00
    
    Copyright (c) 1991, 2022, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                14-APR-2025 19:44:21
    Uptime                    0 days 20 hr. 29 min. 38 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/orap/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    Services Summary...
    Service "+ASM" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_DATA" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_LOGS" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "32639b76c9bc91a8e063050b460a2116.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639d40d02d925fe063050b460a60e3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639e973af79299e063050b460afbad.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "86b637b62fdf7a65e053f706e80a27ca.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAPXDB.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAP_NY_DGMGRL.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status UNKNOWN, has 1 handler(s) for this service...
    Service "ntap.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb1.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb2.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    The command completed successfully
  7. フラッシュバックはプライマリデータベースで有効になっています。

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PRIMARY          YES
  8. プライマリDBのDNFS設定。

    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u04
    
    10.165.128.180
    /orap-u05
    
    10.165.128.180
    /orap-u07
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u03
    
    10.165.128.180
    /orap-u06
    
    10.165.128.180
    /orap-u02
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u08
    
    10.165.128.180
    /orap-u01
    
    
    8 rows selected.

これで、NFS / ASMを使用するGCNVのプライマリサイトで、VLDB NTAP向けのData Guardセットアップのデモは完了です。

Data Guard用のスタンバイOracle VLDB構成

Details

Oracle Data Guardを使用するには、OSカーネル構成とOracleソフトウェアスタック(スタンバイDBサーバにパッチセットを含む)がプライマリDBサーバと一致する必要があります。管理を簡易化するためには、データベースディレクトリのレイアウトやNFSマウントポイントのサイズなど、スタンバイDBサーバのデータベースストレージ構成もプライマリDBサーバと同じにすることが理想的です。

ASMを使用するNFSでOracle Data Guardスタンバイを設定するための詳細なステップバイステップの手順については、TR-5002およびTR-4974"スタンドアロンでのOracle 19C NFS / ASMを使用したAWS FSX/EC2でのOracle 19Cの再起動"の関連セクションを参照して"Azure NetApp FilesによるOracle Active Data Guardのコスト削減"ください。以下に、Google GCNV環境のData Guard設定におけるスタンバイDBサーバ上のスタンバイOracle VLDB構成の詳細を示します。

  1. デモラボのスタンバイサイトのスタンバイOracle DBサーバ構成。

    oras.us-west4-a.c.cvs-pm-host-1p.internal:
    Zone: us-west4-a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.219.129.195
    pri_ip: 10.70.14.16
    
    [oracle@oras ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G  1.1G  6.2G  16% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.197:/oras-u07  250G  201G   50G  81% /u07
    10.165.128.197:/oras-u06  250G  201G   50G  81% /u06
    10.165.128.197:/oras-u02  250G  201G   50G  81% /u02
    10.165.128.196:/oras-u03  250G  201G   50G  81% /u03
    10.165.128.196:/oras-u01  100G   20G   81G  20% /u01
    10.165.128.197:/oras-u05  250G  201G   50G  81% /u05
    10.165.128.197:/oras-u04  250G  201G   50G  81% /u04
    10.165.128.197:/oras-u08  400G  317G   84G  80% /u08
    
    [oracle@oras ~]$ cat /etc/oratab
    #Backup file is  /u01/app/oracle/crsdata/oras/output/oratab.bak.oras.oracle line added by Agent
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N              # line added by Agent
  2. スタンバイDBサーバ上でのグリッドインフラストラクチャの設定。

    [oracle@oras ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       oras                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.asm
                   ONLINE  ONLINE       oras                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      oras                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.ntap_la.db
          1        ONLINE  INTERMEDIATE oras                     Dismounted,Mount Ini
                                                                 tiated,HOME=/u01/app
                                                                 /oracle/product/19.0
                                                                 .0/NTAP,STABLE
    --------------------------------------------------------------------------------
  3. スタンバイDBサーバ上のASMディスクグループ設定。

    [oracle@oras ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1228420                0         1228420              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    322336   322204                0          322204              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/oras_data_disk_01
    /u02/oradata/asm/oras_data_disk_02
    /u02/oradata/asm/oras_data_disk_03
    /u02/oradata/asm/oras_data_disk_04
    /u03/oradata/asm/oras_data_disk_05
    /u03/oradata/asm/oras_data_disk_06
    /u03/oradata/asm/oras_data_disk_07
    /u03/oradata/asm/oras_data_disk_08
    /u04/oradata/asm/oras_data_disk_09
    /u04/oradata/asm/oras_data_disk_10
    /u04/oradata/asm/oras_data_disk_11
    /u04/oradata/asm/oras_data_disk_12
    /u05/oradata/asm/oras_data_disk_13
    /u05/oradata/asm/oras_data_disk_14
    /u05/oradata/asm/oras_data_disk_15
    /u05/oradata/asm/oras_data_disk_16
    /u06/oradata/asm/oras_data_disk_17
    /u06/oradata/asm/oras_data_disk_18
    /u06/oradata/asm/oras_data_disk_19
    /u06/oradata/asm/oras_data_disk_20
    /u07/oradata/asm/oras_data_disk_21
    /u07/oradata/asm/oras_data_disk_22
    /u07/oradata/asm/oras_data_disk_23
    /u07/oradata/asm/oras_data_disk_24
    /u08/oralogs/asm/oras_logs_disk_01
    /u08/oralogs/asm/oras_logs_disk_02
    /u08/oralogs/asm/oras_logs_disk_03
    /u08/oralogs/asm/oras_logs_disk_04
    ASMCMD>
  4. スタンバイDB上のData Guardのパラメータ設定。

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      NTAP
    db_unique_name                       string      NTAP_LA
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      NTAP_LA.cvs-pm-host-1p.interna
                                                     l
    
    SQL> show parameter log_archive_config
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config                   string      DG_CONFIG=(NTAP_NY,NTAP_LA)
    SQL> show parameter fal_server
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server                           string      NTAP_NY
  5. スタンバイDB構成。

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      MOUNTED              ARCHIVELOG
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       MOUNTED
             3 NTAP_PDB1                      MOUNTED
             4 NTAP_PDB2                      MOUNTED
             5 NTAP_PDB3                      MOUNTED
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/DATAFILE/system.261.1198520347
    +DATA/NTAP_LA/DATAFILE/sysaux.262.1198520373
    +DATA/NTAP_LA/DATAFILE/undotbs1.263.1198520399
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/system.264.1198520417
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/sysaux.265.1198520435
    +DATA/NTAP_LA/DATAFILE/users.266.1198520451
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/undotbs1.267.1198520455
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.268.1198520471
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.269.1198520489
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.270.1198520505
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.271.1198520513
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/system.272.1198520517
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.273.1198520533
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.274.1198520551
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/users.275.1198520559
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/system.276.1198520563
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.277.1198520579
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.278.1198520595
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/users.279.1198520605
    
    19 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/CONTROLFILE/current.260.1198520303
    +LOGS/NTAP_LA/CONTROLFILE/current.257.1198520305
    
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             1 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_1.280.1198520649
             1 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_1.259.1198520651
             2 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_2.281.1198520659
             2 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_2.258.1198520661
             3 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_3.282.1198520669
             3 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_3.260.1198520671
             4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1198520677
             4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1198520679
             5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1198520687
             5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1198520689
             6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1198520697
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1198520699
             7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1198520707
             7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1198520709
    
    14 rows selected.
  6. スタンバイデータベースのリカバリステータスを検証します。が `APPLYING_LOG`動作していることを確認し `recovery logmerger`ます。

    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    post role transition              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery logmerger                1         24 APPLYING_LOG
    managed recovery                  0          0 IDLE
    RFS ping                          1         24 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    gap manager                       0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    archive redo                      0          0 IDLE
    RFS async                         1         24 IDLE
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    
    17 rows selected.
  7. フラッシュバックはスタンバイデータベースで有効になっています。

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PHYSICAL STANDBY YES
  8. スタンバイDBのDNFS設定。

SQL> select svrname, dirname from v$dnfs_servers;

SVRNAME
--------------------------------------------------------------------------------
DIRNAME
--------------------------------------------------------------------------------
10.165.128.197
/oras-u04

10.165.128.197
/oras-u05

10.165.128.197
/oras-u06

10.165.128.197
/oras-u07

10.165.128.197
/oras-u02

10.165.128.197
/oras-u08

10.165.128.196
/oras-u03

10.165.128.196
/oras-u01


8 rows selected.

これで、スタンバイサイトでマネージドスタンバイリカバリを有効にしたVLDB NTAPのData Guardセットアップのデモは完了です。

オブザーバーを使用してData GuardブローカーとFSFOを設定

Data Guardブローカーのセットアップ

Details

Oracle Data Guardブローカーは、Oracle Data Guard構成の作成、メンテナンス、監視を自動化して一元化する分散管理フレームワークです。次のセクションでは、Data Guard環境を管理するためのData Guardブローカーのセットアップ方法を示します。

  1. sqlplusを使用して次のコマンドを実行し、プライマリデータベースとスタンバイデータベースの両方でデータガードブローカーを起動します。

    alter system set dg_broker_start=true scope=both;
  2. プライマリデータベースから、SYSDBAとしてData Guard Borkerに接続します。

    [oracle@orap ~]$ dgmgrl sys@NTAP_NY
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    Password:
    Connected to "NTAP_NY"
    Connected as SYSDBA.
    DGMGRL>
  3. Data Guardブローカー設定を作成して有効にします。

    DGMGRL> create configuration dg_config as primary database is NTAP_NY connect identifier is NTAP_NY;
    Configuration "dg_config" created with primary database "ntap_ny"
    DGMGRL> add database NTAP_LA as connect identifier is NTAP_LA;
    Database "ntap_la" added
    DGMGRL> enable configuration;
    Enabled.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxPerformance
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 3 seconds ago)
  4. Data Guard Broker管理フレームワーク内でデータベースのステータスを検証します。

    DGMGRL> show database ntap_ny;
    
    Database - ntap_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    
    DGMGRL> show database ntap_la;
    
    Database - ntap_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 0 seconds ago)
      Apply Lag:          0 seconds (computed 0 seconds ago)
      Average Apply Rate: 3.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    DGMGRL>

障害が発生した場合、Data Guard Brokerを使用して、プライマリデータベースを瞬時にスタンバイデータベースにフェイルオーバーできます。が有効な場合、 `Fast-Start Failover`障害が検出されたときにユーザの介入なしにData Guard Brokerでプライマリデータベースをスタンバイにフェイルオーバーできます。

オブザーバを使用したFSFOの設定

Details

必要に応じて、Data Guard BrokerでFast Start Failover(FSFO)を有効にして、障害が自動的に発生した場合にプライマリデータベースをスタンバイデータベースにフェイルオーバーすることができます。次に、オブザーバーインスタンスを使用してFSFOを設定する手順を示します。

  1. Lightweight Googleコンピュートエンジンインスタンスを作成して、プライマリまたはスタンバイDBサーバとは異なるゾーンでObserverを実行します。このテストケースでは、2つのvCPUと7.5Gメモリを搭載したN1インスタンスを使用しました。同じバージョンのOracleがホストにインストールされている。

  2. Oracleユーザーとしてログインし、Oracleユーザー.bash_profileでOracle環境を設定します。

    vi ~/.bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
    export PATH=$ORACLE_HOME/bin:$PATH
  3. プライマリおよびスタンバイDB TNS名エントリをtnsname.oraファイルに追加します。

    vi $ORACLE_HOME/network/admin/tsnames.ora
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_NY.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.us-west4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_LA.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
  4. パスワードでウォレットを作成して初期化します。

    mkdir -p /u01/app/oracle/admin/NTAP/wallet
    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    [oracle@orao NTAP]$ mkdir -p /u01/app/oracle/admin/NTAP/wallet
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter password:
    Enter password again:
    [oracle@orao NTAP]$
  5. プライマリデータベースとスタンバイデータベースの両方のユーザsysに対してパスワードレス認証を有効にします。最初にsysパスワードを入力し、次に前の手順のwalletパスワードを入力します。

    mkstore -wrl /u01/app/oracle/admin/ntap/wallet-createCreateCredential NTAP_NY sys

    mkstore -wrl /u01/app/oracle/admin/ntap/wallet-createCreateCredential NTAP_la sys

    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$
  6. sqlnet.oraをウォレットの場所で更新します。

    vi $ORACLE_HOME/network/admin/sqlnet.ora
    WALLET_LOCATION =
       (SOURCE =
          (METHOD = FILE)
          (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/NTAP/wallet))
    )
    SQLNET.WALLET_OVERRIDE = TRUE
  7. 要件を検証します。

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    sqlplus /@NTAP_LA as sysdba
    sqlplus /@NTAP_NY as sysdba
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter wallet password:
    List credential (index: connect_string username)
    2: NTAP_LA sys
    1: NTAP_NY sys
  8. Fast-Start Failoverを設定してイネーブルにします。

    mkdir /u01/app/oracle/admin/NTAP/fsfo
    dgmgrl
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 58 seconds ago)
    
    DGMGRL> enable fast_start failover;
    Enabled in Zero Data Loss Mode.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        Warning: ORA-16819: fast-start failover observer not started
    
        ntap_la - (*) Physical standby database
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
    
    Configuration Status:
    WARNING   (status updated 43 seconds ago)
  9. オブザーバーを起動して検証します。

    nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [oracle@orao NTAP]$ nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [1] 94957
    
    [oracle@orao fsfo]$ dgmgrl
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Apr 16 21:12:09 2025
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration verbose;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - (*) Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'ntap_CFG'
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
      Lag Limit:          30 seconds (not in use)
      Threshold:          30 seconds
      Active Target:      ntap_la
      Potential Targets:  "ntap_la"
        ntap_la    valid
      Observer:           orao
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS
    
    DGMGRL>
メモ データ損失をゼロにするには、Oracle Data Guard保護モードをまたは MaxProtection`に設定する必要があり `MaxAvailability`ます。のデフォルトの保護モードは `MaxPerformance、Data Guardブローカーインターフェイスから変更できます。変更するには、Data Guardの設定を編集し、asyncからsyncに変更し `LogXptMode`ます。それに応じて、Oracleアーカイブログデスティネーションログのモードを変更する必要があります。の必要に応じてData Guardでリアルタイムログアプリケーションを有効にしている場合 `MaxAvailability`は、データベースの自動リブートを避けてください。データベースの自動リブートによってスタンバイデータベースがモードで開かれることがあり、Active Data Guardライセンスが必要になります。 `READ ONLY WITH APPLY`代わりに、データベースを手動でブートして、リアルタイムでマネージドリカバリを実行できる状態を維持し `MOUNT`ます。

自動化により、他のユースケース向けにスタンバイデータベースをクローニング

Details

以下の自動化ツールキットは、NFS / ASM構成を使用してGCNVに導入されたOracle Data GuardスタンバイDBのクローンを作成または更新し、完全なクローンライフサイクル管理を実現するように特別に設計されています。

https://bitbucket.ngage.netapp.com/projects/NS-BB/repos/na_oracle_clone_gcnv/browse
メモ このツールキットにアクセスできるのは、現時点でビットバケットアクセス権を持つNetApp内部ユーザーのみです。ご興味のある外部ユーザーの方は、アカウントチームにアクセス権をリクエストするか、NetAppソリューションエンジニアリングチームにお問い合わせください。使用方法については、を参照してください"ASMを使用したGCNVでのOracleクローンライフサイクルの自動化"

詳細情報の入手方法

このドキュメントに記載されている情報の詳細については、以下のドキュメントや Web サイトを参照してください。