完成組態

設定 Oracle Data Guard、註冊待命資料庫,以及同步內部部署和待命資料庫密碼。

設定 Oracle Data Guard Broker

在主要和待命資料庫啟用 dg_broker_config_file 參數來設定 Oracle Data Guard。對於 Oracle Automatic Storage Management (Oracle ASM),請將代理程式組態檔放在個別的磁碟群組上。對於 Oracle Real Application Clusters (Oracle RAC),中介組態檔必須位於共用儲存體上。

  1. 檢查內部部署資料庫主機的 dg_broker_start 值。應設為 false。
    SQL> show parameter dg_broker_start;
    輸出將與下列類似:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. 檢查內部部署資料庫的 Oracle Data Guard 檔案。
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  3. 如果您有 Oracle RACOracle ASM,就可以變更組態檔位置。
    SQL> alter system set dg_broker_config_file1=broker_config_file location; 
    SQL> alter system set dg_broker_config_file2=broker_config_file location;
  4. 在主要資料庫上啟動 Oracle Data Guard Broker 處理作業。
    SQL> alter system set dg_broker_start=true;
    SQL> show parameter dg_broker_start 
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 
  5. 檢查待命資料庫主機的 dg_broker_start 值。應設為 false
    SQL> show parameter dg_broker_start;
    輸出將與下列類似:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  6. 檢查待命資料庫上的 Oracle Data Guard 檔案。
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  7. 如果您有 Oracle RACOracle ASM,就可以變更組態檔位置。
    SQL> alter system set dg_broker_config_file1=broker_config_file location; 
    SQL> alter system set dg_broker_config_file2=broker_config_file location;
  8. 在待命資料庫上啟動 Oracle Data Guard Broker 處理作業。
    SQL> alter system set dg_broker_start=true; 
    SQL> show parameter dg_broker_start
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 

註冊待命資料庫

使用 Oracle Data Guard 命令行介面 (DGMGRL),將待命資料庫設定檔註冊或新增至主要內部部署主機上的中介組態。

  1. sys 身分登入主要主機。
    $ dgmgrl sys/sys password@net service name for primary database
  2. 建立使用主要資料庫名稱的組態。
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT
              IDENTIFIER IS primary database name;
  3. 新增待命資料庫。
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
  4. 啟用組態。
    DGMGRL> enable configuration;
  5. 顯示組態。
    DGMGRL> show configuration;
    輸出將與下列類似:
    Configuration - OnPremDr
     Protection Mode: MaxPerformance
     Members:
    ORCLCDB - Primary database
     Warning: ORA-16789: standby redo logs configured incorrectly
    orclcdb_iad1s3 - Physical standby database
    Error: ORA-16810: multiple errors or warnings detected for the member
     Fast-Start Failover: Disabled
     Configuration Status:
     ERROR (status updated 10 seconds ago)

將重做日誌檔從內部部署複製到 OCI

redo 日誌檔和其他資料庫檔案從內部部署資料庫複製到 Oracle Cloud Infrastructure (OCI) 執行處理。

  1. 檢視內部部署資料庫檔案。
    select name from v$datafile;
    輸出將與下列類似:
    NAME
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/users01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
  2. 檢視內部部署資料檔的每個群組大小。
    select bytes, group# from v$log;
    輸出將與下列類似:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
  3. 檢視內部部署資料檔的 redo 日誌。
    select member from v$logfile;
    輸出將與下列類似:
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  4. 為每個 redo 日誌新增待命日誌檔群組。
    例如,如果您有三個 redo 日誌檔,請新增三個待命日誌檔群組。
    SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200;
    Database altered.
  5. 檢視日誌檔的群組編號和成員。
    SQL> select group#,member from v$logfile;
    輸出將與下列類似:
    GROUP#          MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
    /opt/oracle/oradata/ORCLCDB/redo01.log
    
    	 4
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    
    	 5
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    
    	 6
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    
    6 rows selected.
  6. 檢視 Oracle Data Guard 中的組態。
    DGMGRL> show configuration
    輸出將與下列類似:
    Configuration - OnPremDr
    Protection Mode: MaxPerformance
      Members:
      ORCLCDB        - Primary database
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 60 seconds ago)
  7. 檢視待命 OCI 資料庫執行處理上的重做日誌。
    select member from v$logfile;
    輸出將與下列類似:
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  8. 使用 sys 使用者名稱和密碼登入待命 OCI 資料庫執行處理上的 Oracle Data Guard 命令行介面 (DGMGRL) 階段作業。
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
    Username: sys
    Password:
    輸出將與下列類似:
    .
    .
    .
    Welcome to DGMGRL, type "help" for information.
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  9. 檢視 OCI 中待命資料庫的組態。
    DGMGRL> show configuration;
    輸出將與下列類似:
    Configuration - OnPremDr
    
      Protection Mode: MaxPerformance
      Members:
      ORCLCDB        - Primary database
        orclcdb_iad1s3 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING  (status updated 50 seconds ago)
  10. 在 OCI 中編輯待命資料庫執行處理,並將狀態設為 apply-off,然後結束命令行介面。
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
    Succeeded.
    DGMGRL> exit
  11. 登入 OCI 中的待命資料庫執行處理。
    [oracle@droci admin]$ sqlplus / as sysdba
  12. 檢視日誌檔的群組編號和成員。
    SQL> select group#,member from v$logfile;
    輸出將與下列類似:
        GROUP#   MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
              /opt/oracle/oradata/ORCLCDB/redo01.log
  13. 檢視每個群組的大小。
    select bytes, group# from v$log;
    輸出將與下列類似:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    3
     209715200	    2
    
  14. 將待命日誌檔群組新增至 OCI 中的資料庫。
    SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200;
    Database altered.
  15. 檢視日誌檔的群組編號和成員。
    SQL> select group#,member from v$logfile;
    輸出將與下列類似:
    GROUP#          MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
    /opt/oracle/oradata/ORCLCDB/redo01.log
    
    	 4
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    
    	 5
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    
    	 6
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    
    6 rows selected.
  16. 使用 sys 使用者名稱和密碼登入待命 OCI 資料庫執行處理上的 Oracle Data Guard 命令行介面 (DGMGRL) 階段作業。
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
    Username: sys
    Password:
    .
    .
    .
    Welcome to DGMGRL, type "help" for information.
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  17. 在 OCI 中編輯待命資料庫執行處理,並將狀態設為 apply-on
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
  18. 在 OCI 中編輯待命資料庫執行處理,並將傳輸狀態設為 transport-on,然後結束命令行介面。
    DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
    
    Succeeded.
    DGMGRL> exit
  19. 檢視 OCI 上待命資料庫中的待命日誌檔。
    SQL> select * from v$logfile where type='STANDBY';
    輸出將與下列類似:
    GROUP# STATUS  TYPE
    ---------- ------- -------
    MEMBER
    --------------------------------------------------------------------
    IS_	CON_ID
    --- ----------
    	 4	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    NO	     0
    
    	 5	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    NO	     0
    
    	 6	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    NO	     0
  20. 檢視 OCI 上待命資料庫中的重做日誌檔。
    SQL> select member from v$logfile where type != 'STANDBY';
    輸出將與下列類似:
    MEMBER
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  21. 復原管理的待命資料庫。
    SQL> recover managed standby database cancel;
    輸出將與下列類似:
    Media recovery complete
  22. 使用 convert 參數檢視檔案。
    SQL> show parameter convert;
    輸出將與下列類似:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		     string
    log_file_name_convert		     string
    pdb_file_name_convert		     string
  23. 檢視資料庫檔案。
    select name from v$datafile;
    輸出將與下列類似:
    NAME
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/users01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
  24. 檢視資料庫系統變更編號 (SCN)。
    SQL> select current_scn from v$database;
    輸出將與下列類似:
    CURRENT_SCN
    -----------
        2906060
  25. 檢視 Oracle Data Guard 存檔詳細資訊。
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    輸出將與下列類似:
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    RFS archive			  0	     0 IDLE
    RFS archive			  0	     0 IDLE
    RFS async		           1	    18 RECEIVING
    RFS ping		            1           18 IDLE
    broker monitor		      0	     0 IDLE
    broker instance slave	      0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive local			0	     0 IDLE
    redo transport timer		0	     0 IDLE
    gap manager			  0	     0 IDLE
    log writer			   0	     0 IDLE
    broker net slave		    0	     0 IDLE
    broker worker			0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    redo transport monitor	     0	     0 IDLE
    
    16 rows selected.
  26. 使用日誌檔停用復原管理的待命資料庫。
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. 檢視資料庫系統變更編號 (SCN)。
    SQL> select current_scn from v$database;
    輸出將與下列類似:
    CURRENT_SCN
    -----------
        2906060
  28. 使用目的地參數顯示檔案。
    SQL>show parameter dest;
    輸出將與下列類似:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- -------------------
    cursor_bind_capture_destination      string	 memory+disk
    db_create_online_log_dest_1	     string	 /u03/app/oracle/redo/
    db_create_online_log_dest_2	     string
    db_create_online_log_dest_3	     string
    db_create_online_log_dest_4	     string
    db_create_online_log_dest_5	     string
    db_recovery_file_dest_size	     big integer 238G
    log_archive_dest_1		     string
    log_archive_dest_10		     string
    log_archive_dest_11		     string
    log_archive_dest_12		     string
  29. 顯示復原的註解。
    SQL> select comments from v$recovery_progress;
    輸出將與下列類似:
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 4165711446800375620
    SCN: 2907015
    
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 12395680609799335065
    SCN: 2906061
  30. 檢視復原日期。
    SQL> select START_TIME,comments from v$recovery_progress order by 1;
    輸出將與下列類似:
    START_TIM
    ---------
    COMMENTS
    --------------------------------------------------------------------
    03-SEP-20
    03-SEP-20
    03-SEP-20
    RCVID: 2657984638848411078
    
    
    START_TIM
    ---------
    COMMENTS
    --------------------------------------------------------------------------------
    03-SEP-20