sql >> データベース >  >> RDS >> Database

RAC OneNodeアーキテクチャでのActiveDataGuardフィジカルスタンバイの設定–パート2

    この記事は、RACOneノードアーキテクチャでActiveDataGuardフィジカルスタンバイを設定する手順を説明する2部構成のシリーズのパート2です。パート1はここにあります。

    1.データベースの複製プロセスが終了したら(記事のパート1)、クラスターウェアにスタンバイデータベースを追加します

     
    srvctl add database -d analytics_dg -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -c RACONENODE -p '+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' -r PHYSICAL_STANDBY -s MOUNT -n analytics_dg -e hostdr
    

    2.データベースをシャットダウンします

    sqlplus> shutdown immediate;
    

    3.「Oracleパスワードファイル」を新しいインスタンス名「orapwanalyticsdg_1」でコピーします

    cd $ORACLE_HOME/dbs
    cp orapwanalytics_dg orapwanalyticsdg_1
    

    4.データベースを開始します

    $ srvctl start database -d analytics_dg
    $ srvctl config database -d analytics_dg
    Database unique name: analytics_dg
    Database name: analytics_dg
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_1
    Oracle user: oracle
    Spfile: +DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora
    Password file:
    Domain:
    Start options: read only
    Stop options: immediate
    Database role: PHYSICAL_STANDBY
    Management policy: AUTOMATIC
    Server pools:
    Disk Groups: DG_DATA,DG_RECO
    Mount point paths:
    Services:
    Type: RACOneNode
    Online relocation timeout: 30
    Instance name prefix: analyticsdg
    Candidate servers: hostdr
    OSDBA group: sdba
    OSOPER group: soper
    Database instances:
    Database is administrator managed
    

    5. Oracle restartのパターンによると、analytics_dgインスタンスはanalyticsdg_1と呼ばれるため、listener.oraを更新する必要があります。

    「listenerreload」コマンドを実行して、リスナーに「listener.ora」エントリを再度読み取らせる。注意!この操作はリスナーの可用性に影響します。

    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = analytics_dg_dgmgrl)
    # (SID_NAME = analytics_dg)
    (SID_NAME = analyticsdg_1)
    (ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/dbhome_1)
    )
    )
    
    >

    6.接続と設定を検証するために、REDOトランスポートサービスが手動で有効になります。

    パラメータDB_BLOCK_CHECKSUM DB_BLOCK_CHECKING およびDB_LOST_WRITE_PROTECT 破損したブロックを防止および検出するために、プライマリとスタンバイの両方のデータベースに設定されます。

    6.1。スタンバイデータベースのパラメータを調整する

    sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ;
    sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES, ALL_LOGFILES) db_unique_name=analytics_dg' scope=both sid='*' ;
    sqlplus> alter system set log_archive_dest_2='service=analytics LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics' scope=both sid='*';
    sqlplus> alter system set fal_server='analytics' scope=both sid='*';
    sqlplus> alter system set fal_client='analytics_dg' scope=both sid='*';
    sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*';
    sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*';
    sqlplus> alter system set db_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';
    sqlplus> alter system set log_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';
    sqlplus> alter system set db_block_checksum=FULL scope=both sid='*' ;
    sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ;
    sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ;
    sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*';
    sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*';
    

    6.2。プライマリデータベースのパラメータを調整します:

    sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ;
    sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES,ALL_LOGFILES) db_unique_name=analytics' scope=both sid='*' ;
    sqlplus> alter system set log_archive_dest_2='service=analytics_dg LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics_dg' scope=both sid='*';
    sqlplus> alter system set fal_server='analytics_dg' scope=both sid='*';
    sqlplus> alter system set fal_client='analytics' scope=both sid='*';
    sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*' ;
    sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*' ;
    sqlplus> alter system set db_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';
    sqlplus> alter system set log_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';
    sqlplus> alter system set db_block_checksum=TYPICAL scope=both sid='*' ;
    sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ;
    sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ;
    sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*' ;
    sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*' ;
    

    6.3。プライマリおよびスタンバイの「ステータス」属性は「有効」を返す必要があります

    sqlplus> select dest_id,status,destination ,error from v$archive_dest where dest_id <=5;
     ID DB_status Archive_dest Error
    ---------- --------- ----------------------------- -------
    1 VALID USE_DB_RECOVERY_FILE_DEST
    2 VALID analytics_dg
    3 INACTIVE
    4 INACTIVE
    5 INACTIVE
    
    sqlplus> select dest_id,status,database_mode,recovery_mode from v$archive_dest_status where status <> 'INACTIVE';
     DEST_ID STATUS DATABASE_MODE RECOVERY_MODE
    ---------- --------- --------------- -----------------------
    1 VALID OPEN IDLE
    2 VALID MOUNTED-STANDBY IDLE
    

    6.4。手動でREDO適用を開始します:

    sqlplus> alter database recover managed standby database using current logfile disconnect;
    

    6.5。プライマリデータベースとスタンバイデータベースの検証間の同期

    sqlplus> select * from v$archive_gap;
    sqlplus> select name, value, datum_time, time_computed from v$dataguard_stats where name like 'apply lag';
    sqlplus> select file_type, number_of_files, percent_space_used from v$recovery_area_usage;
    sqlplus> select current_scn from v$database;
    sqlplus> select sequence#, first_time, applied from v$archived_log order by sequence#;
    

    6.6。 DataGuardBrokerを設定する前にREDOApplyを停止してください

    sqlplus> alter database recover managed standby database cancel;
    Database altered.
    

    7.プライマリデータベースとスタンバイデータベースにDataGuardBrokerを設定する

    注:Data Guard設定ファイルは、ASMの異なるディスクグループ(dg_broker_config_file1およびdg_broker_config_file2

    )に作成されます。

    7.1。プライマリデータベースの場合:

    sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA_DR/analytics/BROKERCFG/brokeranalytics1.dat' scope=both sid='*';
    sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO_DR/analytics/BROKERCFG/brokeranalytics2.dat' scope=both sid='*';
    sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ;
    sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';
    sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';
    

    7.2。スタンバイデータベースの場合:

    sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA/analytics_DG/BROKERCFG/brokeranalytics_dg1.dat' scope=both sid='*';
    sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO/analytics_DG/BROKERCFG/brokeranalytics_dg2.dat' scope=both sid='*';
    sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ;
    sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';
    sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';
    

    7.3。ブローカー設定:

    $ dgmgrl
    dgmgrl> connect sys/xxxxx@analytics
    Connected as SYSDBA.
    dgmgrl> create configuration 'analytics_cfg' as primary database is 'analytics' connect identifier is analytics;
    Configuration "analytics_cfg" created with primary database "analytics"
    dgmgrl> add database 'analytics_dg' as connect identifier is analytics_dg maintained as physical;
    Database "analytics_dg" added
    dgmgrl> edit database 'analytics_dg' set property logxptmode=async;
    Property "logxptmode" updated
    dgmgrl> edit configuration set protection mode as MAXPERFORMANCE;
    Succeeded.
    dgmgrl> enable configuration; 
    Enabled.
    

    SHOW CONFIGURATIONコマンドを使用して、簡単な設定の概要を表示します。

    dgmgrl> show configuration
    
    Configuration - analytics_cfg
    Protection Mode: MaxPerformance
    Databases:
    analytics - Primary database
    analytics_dg - Physical standby database
    Fast-Start Failover: DISABLED
    Configuration Status:
    SUCCESS
    

    7.4。コマンドで設定を検証する

    dgmgrl> show database verbose 'analytics_dg' 'RecvQEntries';
    dgmgrl> show database verbose 'analytics';
    dgmgrl> show database verbose 'analytics_dg';
    

    ノード1:

    sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
    NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE
    --------- -------------------- -------------------- -------------------- -----------
    analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY
    

    ノード2:

    sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
    NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVE DATABASE_ROLE
    --------- -------------------- -------------------- -------------------- -----------
    analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY
    

    スタンバイDB:

    sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
    NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE
    --------- ---------------- -------------------- -------------------- ----------------
    analytics MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY
    

    8.ブローカーでの調整は、設定「MaxConnections」、「TransportDisconnectedThreshold」、および「TransportLagThreshold」に対して行われます[1]

    「maxConnections」プロパティは、プロセスにGAPがある場合に、REDOログファイルからリモートサイトにデータを転送するために並行して使用されるARCnプロセスの数を指定します。 MaxConnectionsが1より大きい値で定義されている場合、REDOトランスポートサービスは複数のARCnプロセスを使用して、REDOログファイルからスタンバイにデータを転送します。

    「TransportDisconnectedThreshold」プロパティを使用すると、最後のプライマリデータベース通信がプロパティで指定された値を超えたときに、論理的または物理的な待機中またはインスタントキャプチャに対する警告ステータスを作成できます。プロパティの値は秒単位で表されます。

    「TransportLagThreshold」プロパティを使用すると、データベースの転送遅延がプロパティで指定された値を超えたときに、論理的または物理的な待機中またはインスタントキャプチャに対する警告ステータスを作成できます。プロパティの値は秒単位で表されます。

    dgmgrl> edit database 'analytics' SET PROPERTY 'MaxConnections'= 4;
    Property "MaxConnections" updated
    dgmgrl> edit database 'analytics' SET PROPERTY TransportDisconnectedThreshold='180';
    Property "transportdisconnectedthreshold" updated
    dgmgrl> edit database 'analytics' SET PROPERTY TransportLagThreshold='900';
    Property "transportlagthreshold" updated
    dgmgrl> edit database 'analytics_dg' SET PROPERTY 'MaxConnections'= 4;
    Property "MaxConnections" updated
    dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportDisconnectedThreshold='180';
    Property "transportdisconnectedthreshold" updated
    dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportLagThreshold='900';
    Property "transportlagthreshold" updated
    

    9.プライマリデータベースの除外ポリシーアーカイブログを変更します。

    rman> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
    

    アクティブなDataguardのアクティブ化

    10.ブローカーでのREDOApplyの停止

    $ dgmgrl
    dgmgrl> connect sys
    dgmgrl> edit database 'analytics_dg' set state = 'apply-off';
    dgmgrl> show database 'analytics_dg'
    

    11.スタンバイインスタンスを読み取り専用モードで開きます。

    sqlplus> alter database open read only;
    

    12.ブローカーでREDOApplyを開始します

    $ dgmgrl
    dgmgrl> connect sys
    dgmgrl> edit database 'analytics_dg' set state = 'apply-on';
    dgmgrl> show database 'analytics_dg'
    
     

    参照

    [1]DataGuardBroker。 https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781

    で入手できます。
    1. ScaleGridはトップ100のクラウドサービスプロバイダーにランクイン

    2. MariaDB SYSTEM_USER()の説明

    3. MySQLのVALUESステートメント

    4. カーソルからデータにアクセスする前に、カーソルが正しく初期化されていることを確認してください