LoginSignup
3
0

More than 1 year has passed since last update.

Oracle Cloud: Exadata Cloud Service X8M を Cross-Region Data Guard構成してみてみた

Last updated at Posted at 2021-06-01

Oracle Data Guard は、エンタープライズ データの高可用性、データ保護、および災害復旧を保証します。
計画的または計画外の停止のために本番データベースが使用できなくなった場合、スタンバイ・データベースをプライマリ・ロールに切り替えて、ダウンタイムを最小限に抑えることができます。
また、Oracle Data Guard を使用すると、管理者はオプションで、リソースを大量に消費するDWHレポート処理や検証作業をスタンバイ システムにオフロードすることで、本番データベースのパフォーマンスを向上させることができます。
ということで、前回作成した Exadata Cloud Service X8MをData Guard構成してみてみます。

■ 構成

DG構成.jpg

● 要件

Peer Database(Primary と Standby)は以下のような条件があります。
 - 両方ともExadataシステム・シェイプ
 - 同一コンパートメント内
 - 同一Database Version
 - 同一VersionのExadataクラウド・ツール(dbaastools)

その他 Data Guard構成のため情報をドキュメントを確認して設計します。
・参考: Exadata Cloud ServiceでのOracle Data Guardの使用

● 事前準備

TokyoリージョンとOsakaリージョンへExaCSを構築し、Primary側に Databaseを作成し、Standby側は Database_HOMEを作成し、Remote Peeringで 双方向Oracle*NET通信できるようにしておきます。
Oracle Cloud:リージョン間を Remote VCN Peering してみてみた
Oracle Cloud: Exadata Cloud Service X8M を作成してみてみた
Network Setup for Exadata Cloud Service Instances

■ Data Guard設定

Tokyoリージョンで作成したDB01データベースをプライマリDBとして、OsakaリージョンのExaCSへStandbyデータベースを作成

● Data Guard設定

1) Dataabses画面
[Enable Data Guard]をクリック
01_DG_Standby作成01.jpg

2) Enable Data Guard画面
以下項目を設定し、[Enable Data Guard]をクリック

・Rejion: Standby側ExaCSのリージョンを設定
・Availability domain: Standby側ExaCSのADを設定
・Shape: Standby側ExaCSのShapeを選択
・Data Guard peer resource type: VM Clusterを設定
・Select a VM Cluster: Standby側ExaCSのVM Clusterを選択
・Choose Database Home: PrimaryDBと同じVersionのDatabase Homeを選択
・Database password: PrimaryDBと同じAdminパスワードを設定

01_DG_Standby作成02.jpg

3) Data Guard設定中
01_DG_Standby作成03.jpg

4) Data Guard設定完了
Stateが AvailableになればOK
01_DG_Standby作成04.jpg

● Data Guard設定確認

ここからは、詳しくログ出力させながらコマンドで確認実行していきます。

・DGMGRL接続

1) 環境変数設定
いずれかのNodeへOSログイン

[oracle@exa-tokyo-xft701 ~]$ . DB01.env
[oracle@exa-tokyo-xft701 ~]$ env | grep ORA
    ORACLE_UNQNAME=DB01_nrt1kx
    ORACLE_SID=DB011
    ORACLE_BASE=/u02/app/oracle
    ORACLE_HOSTNAME=exa-tokyo-xft701.sub04130423250.vcn.oraclevcn.com
    ORACLE_HOME=/u02/app/oracle/product/19.0.0.0/dbhome_1

2) DGMGRL接続
Oracle Data Guardコマンドライン・インタフェース(DGMGRL)を使用してData Guardを確認

[oracle@exa-tokyo-xft701 ~]$ dgmgrl /
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Thu May 20 18:31:01 2021
    Version 19.10.0.0.0

    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

    Welcome to DGMGRL, type "help" for information.
    Connected to "DB01_nrt1kx"
    Connected as SYSDG.

・現在の保護モード確認

DGMGRL> show configuration verbose

    Configuration - fsc

    Protection Mode: MaxPerformance
    Members:
    DB01_nrt1kx - Physical standby database
        DB01_kix1wh - Primary database

    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    = 'DB01_CFG'

    Fast-Start Failover:  Disabled

    Configuration Status:
    SUCCESS

・Data Guardの設定確認:Tokyo Region の DB (DB01_nrt1kx)

PRIMARYであることを確認

DGMGRL> show database verbose DB01_nrt1kx

    Database - DB01_nrt1kx

    Role:               PRIMARY
    Intended State:     TRANSPORT-ON
    Instance(s):
        DB011
        DB012

    Properties:
        DGConnectIdentifier             = 'DB01_nrt1kx'
        ObserverConnectIdentifier       = ''
        FastStartFailoverTarget         = 'DB01_kix1wh'
        PreferredObserverHosts          = ''
        LogShipping                     = 'ON'
        RedoRoutes                      = ''
        LogXptMode                      = 'ASYNC'
        DelayMins                       = '0'
        Binding                         = 'optional'
        MaxFailure                      = '0'
        ReopenSecs                      = '300'
        NetTimeout                      = '30'
        RedoCompression                 = 'DISABLE'
        PreferredApplyInstance          = ''
        ApplyInstanceTimeout            = '0'
        ApplyLagThreshold               = '30'
        TransportLagThreshold           = '30'
        TransportDisconnectedThreshold  = '30'
        ApplyParallel                   = 'AUTO'
        ApplyInstances                  = '0'
        StandbyFileManagement           = ''
        ArchiveLagTarget                = '0'
        LogArchiveMaxProcesses          = '0'
        LogArchiveMinSucceedDest        = '0'
        DataGuardSyncLatency            = '0'
        LogArchiveTrace                 = '0'
        LogArchiveFormat                = ''
        DbFileNameConvert               = ''
        LogFileNameConvert              = ''
        ArchiveLocation                 = ''
        AlternateLocation               = ''
        StandbyArchiveLocation          = ''
        StandbyAlternateLocation        = ''
        InconsistentProperties          = '(monitor)'
        InconsistentLogXptProps         = '(monitor)'
        LogXptStatus                    = '(monitor)'
        SendQEntries                    = '(monitor)'
        RecvQEntries                    = '(monitor)'
        HostName(*)
        StaticConnectIdentifier(*)
        TopWaitEvents(*)
        SidName(*)
        (*) - Please check specific instance for the property value

    Log file locations(*):
        (*) - Check specific instance for log file locations.

    Database Status:
    SUCCESS

DGMGRL> validate database verbose DB01_nrt1kx

  Database Role:    Primary database

  Ready for Switchover:  Yes

  Flashback Database Status:
    DB01_nrt1kx:  On
    DB01_kix1wh:  On

  Capacity Information:
    Database     Instances        Threads
    DB01_nrt1kx  2                2

  Managed by Clusterware:
    DB01_nrt1kx:  YES

  Temporary Tablespace File Information:
    DB01_nrt1kx TEMP Files:  3

  Data file Online Move in Progress:
    DB01_nrt1kx:  No

  Transport-Related Information:
    Transport On:  Yes

  Log Files Cleared:
    DB01_nrt1kx Standby Redo Log Files:  Cleared

・Data Guardの設定確認:Osaka Region の DB (DB01_kix1whx)

PHYSICAL STANDBYであることを確認

DGMGRL>  show database verbose DB01_kix1wh

    Database - DB01_kix1wh

    Role:               PHYSICAL STANDBY
    Intended State:     APPLY-ON
    Transport Lag:      0 seconds (computed 4 seconds ago)
    Apply Lag:          0 seconds (computed 4 seconds ago)
    Average Apply Rate: 6.00 KByte/s
    Active Apply Rate:  904.00 KByte/s
    Maximum Apply Rate: 3.11 MByte/s
    Real Time Query:    ON
    Instance(s):
        DB01_kix1wh1
        DB01_kix1wh2 (apply instance)

    Properties:
        DGConnectIdentifier             = 'DB01_kix1wh'
        ObserverConnectIdentifier       = ''
        FastStartFailoverTarget         = 'DB01_nrt1kx'
        PreferredObserverHosts          = ''
        LogShipping                     = 'ON'
        RedoRoutes                      = ''
        LogXptMode                      = 'ASYNC'
        DelayMins                       = '0'
        Binding                         = 'optional'
        MaxFailure                      = '0'
        ReopenSecs                      = '300'
        NetTimeout                      = '30'
        RedoCompression                 = 'DISABLE'
        PreferredApplyInstance          = ''
        ApplyInstanceTimeout            = '0'
        ApplyLagThreshold               = '30'
        TransportLagThreshold           = '30'
        TransportDisconnectedThreshold  = '30'
        ApplyParallel                   = 'AUTO'
        ApplyInstances                  = '0'
        StandbyFileManagement           = ''
        ArchiveLagTarget                = '0'
        LogArchiveMaxProcesses          = '0'
        LogArchiveMinSucceedDest        = '0'
        DataGuardSyncLatency            = '0'
        LogArchiveTrace                 = '0'
        LogArchiveFormat                = ''
        DbFileNameConvert               = ''
        LogFileNameConvert              = ''
        ArchiveLocation                 = ''
        AlternateLocation               = ''
        StandbyArchiveLocation          = ''
        StandbyAlternateLocation        = ''
        InconsistentProperties          = '(monitor)'
        InconsistentLogXptProps         = '(monitor)'
        LogXptStatus                    = '(monitor)'
        SendQEntries                    = '(monitor)'
        RecvQEntries                    = '(monitor)'
        HostName(*)
        StaticConnectIdentifier(*)
        TopWaitEvents(*)
        SidName(*)
        (*) - Please check specific instance for the property value

    Log file locations(*):
        (*) - Check specific instance for log file locations.

    Database Status:
    SUCCESS

DGMGRL> validate database verbose DB01_kix1wh

  Database Role:     Physical standby database
  Primary Database:  DB01_nrt1kx

  Ready for Switchover:  Yes
  Ready for Failover:    Yes (Primary Running)

  Flashback Database Status:
    DB01_nrt1kx:  On
    DB01_kix1wh:  On

  Capacity Information:
    Database     Instances        Threads
    DB01_nrt1kx  2                2
    DB01_kix1wh  2                2

  Managed by Clusterware:
    DB01_nrt1kx:  YES
    DB01_kix1wh:  YES

  Temporary Tablespace File Information:
    DB01_nrt1kx TEMP Files:  3
    DB01_kix1wh TEMP Files:  3

  Data file Online Move in Progress:
    DB01_nrt1kx:  No
    DB01_kix1wh:  No

  Standby Apply-Related Information:
    Apply State:      Running
    Apply Lag:        10 seconds (computed 0 seconds ago)
    Apply Delay:      0 minutes

  Transport-Related Information:
    Transport On:  Yes
    Gap Status:    No Gap
    Transport Lag:  0 seconds (computed 0 seconds ago)
    Transport Status:  Success

  Log Files Cleared:
    DB01_nrt1kx Standby Redo Log Files:  Cleared
    DB01_kix1wh Online Redo Log Files:   Cleared
    DB01_kix1wh Standby Redo Log Files:  Available

  Current Log File Groups Configuration:
    Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
              (DB01_nrt1kx)           (DB01_kix1wh)
    1         4                       5                       Sufficient SRLs
    2         4                       5                       Sufficient SRLs

  Future Log File Groups Configuration:
    Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
              (DB01_kix1wh)           (DB01_nrt1kx)
    1         4                       5                       Sufficient SRLs
    2         4                       5                       Sufficient SRLs

  Current Configuration Log File Sizes:
    Thread #   Smallest Online Redo      Smallest Standby Redo
               Log File Size             Log File Size
               (DB01_nrt1kx)             (DB01_kix1wh)
    1          4000 MBytes               4000 MBytes
    2          4000 MBytes               4000 MBytes

  Future Configuration Log File Sizes:
    Thread #   Smallest Online Redo      Smallest Standby Redo
               Log File Size             Log File Size
               (DB01_kix1wh)             (DB01_nrt1kx)
    1          4000 MBytes               4000 MBytes
    2          4000 MBytes               4000 MBytes

  Apply-Related Property Settings:
    Property                        DB01_nrt1kx Value        DB01_kix1wh Value
    DelayMins                       0                        0
    ApplyParallel                   AUTO                     AUTO
    ApplyInstances                  0                        0

  Transport-Related Property Settings:
    Property                        DB01_nrt1kx Value        DB01_kix1wh Value
    LogShipping                     ON                       ON
    LogXptMode                      ASYNC                    ASYNC
    Dependency                      <empty>                  <empty>
    DelayMins                       0                        0
    Binding                         optional                 optional
    MaxFailure                      0                        0
    ReopenSecs                      300                      300
    NetTimeout                      30                       30
    RedoCompression                 DISABLE                  DISABLE

■ Switchover実行(Primary:Tokyo -> Osaka)

メンテナンス用途など計画的にプライマリ・データベースとスタンバイ・データベースを切り替えます
スイッチオーバー中にデータが失われることはありません。

● Primary DB (Tokyo)側作業

1) Data Guard Associations画面
対象DBの右にあるドットをクリックし、[Switchover]をクリック
01_swotchover01.jpg

2) Switchover Database画面
admin パスワードを入力し、[OK]をクリック
01_swotchover02.jpg

3) Switchover中
01_swotchover03.jpg

4) Switchover完了
01_swotchover06.jpg

● Switch over確認

・Tokyo Region の DB (DB01_nrt1kx)確認

PHYSICAL STANDBYへ切り替わっていることを確認

DGMGRL> show database  DB01_nrt1kx

    Database - DB01_nrt1kx

    Role:               PHYSICAL STANDBY
    Intended State:     APPLY-ON
    Transport Lag:      0 seconds (computed 2 seconds ago)
    Apply Lag:          0 seconds (computed 2 seconds ago)
    Average Apply Rate: 25.00 KByte/s
    Real Time Query:    ON
    Instance(s):
        DB011 (apply instance)
        DB012

    Database Status:
    SUCCESS

・Osaka Region の DB (DB01_kix1wh)確認

PRIMARYへ切り替わっていることを確認

DGMGRL> show database  DB01_kix1wh

    Database - DB01_kix1wh

    Role:               PRIMARY
    Intended State:     TRANSPORT-ON
    Instance(s):
        DB01_kix1wh1
        DB01_kix1wh2

    Database Status:
    SUCCESS

■ Failover実行(Primary: Osaka -> Tokyo)

プライマリ・データベースの障害時に、スタンバイ・データベースをプライマリ・ロールに変更します。
フラッシュバック・データベースが使用可能になっている場合は、障害の原因が修正された後、Reinstateコマンドにより元どおり新しいプライマリ・データベースのスタンバイに戻すことができます。

● Standby DB (Tokyo)側作業

1) Data Guard Associations画面
対象DBの右にあるドットをクリックし、[Failover実行]をクリック
01_Failover01.jpg

2) Failover Database画面
admin パスワードを入力し、[OK]をクリック
01_Failover02.jpg

3) Failover中
01_Failover03.jpg

4) Failover完了
01_Failover06.jpg

● Failover確認

・Tokyo Region の DB (DB01_nrt1kx)確認

PRIMARYへ切り替わっていることを確認

DGMGRL> show database  DB01_nrt1kx

    Database - DB01_nrt1kx

    Role:               PRIMARY
    Intended State:     TRANSPORT-ON
    Instance(s):
        DB011
        DB012

    Database Status:
    SUCCESS

・Osaka Region の DB (DB01_kix1wh)確認

PHYSICAL STANDBYへ切り替わり、Statusは DISABLED - ORA-16661であることを確認

DGMGRL> show database  DB01_kix1wh

    Database - DB01_kix1wh

    Role:               PHYSICAL STANDBY
    Intended State:     APPLY-ON
    Transport Lag:      (unknown)
    Apply Lag:          (unknown)
    Average Apply Rate: (unknown)
    Real Time Query:    OFF
    Instance(s):
        DB01_kix1wh1
        DB01_kix1wh2

    Database Status:
    DISABLED - ORA-16661: the standby database needs to be reinstated

■ Reinstate実行(障害が発生したプライマリ・データベース:Osakaの回復)

フェイルオーバーした障害プライマリ・データベースをスタンバイ・データベースとして復旧します

● Primary DB側作業

1) Data Guard Associations画面
対象DBの右にあるドットをクリックし、[Reinstate実行]をクリック
04_Reinstate01.jpg

2) Reinstate Database画面
admin パスワードを入力し、[OK]をクリック
04_Reinstate02.jpg

3) Failover中
04_Reinstate03.jpg

4) Failover完了
04_Reinstate06.jpg

● Reinstate確認

・Tokyo Region の DB (DB01_nrt1kx)確認

Statusは変わらず、PRIMARYロールであることを確認

DGMGRL> show database  DB01_nrt1kx

    Database - DB01_nrt1kx

    Role:               PRIMARY
    Intended State:     TRANSPORT-ON
    Instance(s):
        DB011
        DB012

    Database Status:
    SUCCESS

・Osaka Region の DB (DB01_kix1wh)確認

Statusは DISABLED - ORA-16661から、SUCCESSへ変わっていることを確認

DGMGRL> show database  DB01_kix1wh


    Database - DB01_kix1wh

    Role:               PHYSICAL STANDBY
    Intended State:     APPLY-ON
    Transport Lag:      0 seconds (computed 1 second ago)
    Apply Lag:          0 seconds (computed 1 second ago)
    Average Apply Rate: 6.00 KByte/s
    Real Time Query:    ON
    Instance(s):
        DB01_kix1wh1 (apply instance)
        DB01_kix1wh2

    Database Status:
    SUCCESS 

■ Standby DB の REDO適用遅延(LAG)確認

V$DATAGUARD_STATSは、スタンバイ・データベース上での問合せに対して、Oracle Data Guardメトリックに関する情報を示します。

SQL> select name,value,time_computed,unit from v$dataguard_stats;

    NAME                 VALUE                                TIME_COMPUTED          UNIT
    -------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------
    transport lag            +00 00:00:00                             04/27/2021 18:49:03        day(2) to second(0) interval
    apply lag            +00 00:00:00                             04/27/2021 18:49:03        day(2) to second(0) interval
    apply finish time        +00 00:00:00.000                         04/27/2021 18:49:03        day(2) to second(3) interval
    estimated startup time       22                               04/27/2021 18:49:03        second

■ 参考

Using Oracle Data Guard with Exadata Cloud Service
Introduction to Oracle Data Guard
Oracle Data Guardコマンドライン・インタフェース・リファレンス
Exadata Cloud Service
Network Setup for Exadata Cloud Service Instances

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0