- 為內部部署資料庫部署混合 DR 拓樸
- 完成組態
完成組態
設定 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),中介組態檔必須位於共用儲存體上。
- 檢查內部部署資料庫主機的
dg_broker_start
值。應設為 false。SQL> show parameter dg_broker_start;
輸出將與下列類似:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- 檢查內部部署資料庫的 Oracle Data Guard 檔案。
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- 如果您有 Oracle RAC 或 Oracle 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;
- 在主要資料庫上啟動 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
- 檢查待命資料庫主機的
dg_broker_start
值。應設為false
。SQL> show parameter dg_broker_start;
輸出將與下列類似:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- 檢查待命資料庫上的 Oracle Data Guard 檔案。
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- 如果您有 Oracle RAC 或 Oracle 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;
- 在待命資料庫上啟動 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),將待命資料庫設定檔註冊或新增至主要內部部署主機上的中介組態。
- 以
sys
身分登入主要主機。$ dgmgrl sys/sys password@net service name for primary database
- 建立使用主要資料庫名稱的組態。
DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
- 新增待命資料庫。
DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
- 啟用組態。
DGMGRL> enable configuration;
- 顯示組態。
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) 執行處理。
- 檢視內部部署資料庫檔案。
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
- 檢視內部部署資料檔的每個群組大小。
select bytes, group# from v$log;
輸出將與下列類似:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 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
- 為每個
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.
- 檢視日誌檔的群組編號和成員。
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.
- 檢視 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)
- 檢視待命 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
- 使用
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.
- 檢視 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)
- 在 OCI 中編輯待命資料庫執行處理,並將狀態設為
apply-off
,然後結束命令行介面。DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
Succeeded.
DGMGRL> exit
- 登入 OCI 中的待命資料庫執行處理。
[oracle@droci admin]$ sqlplus / as sysdba
- 檢視日誌檔的群組編號和成員。
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
- 檢視每個群組的大小。
select bytes, group# from v$log;
輸出將與下列類似:BYTES GROUP# ---------- ---------- 209715200 1 209715200 3 209715200 2
- 將待命日誌檔群組新增至 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.
- 檢視日誌檔的群組編號和成員。
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.
- 使用
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.
- 在 OCI 中編輯待命資料庫執行處理,並將狀態設為
apply-on
。DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
- 在 OCI 中編輯待命資料庫執行處理,並將傳輸狀態設為
transport-on
,然後結束命令行介面。DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
Succeeded.
DGMGRL> exit
- 檢視 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
- 檢視 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
- 復原管理的待命資料庫。
SQL> recover managed standby database cancel;
輸出將與下列類似:Media recovery complete
- 使用
convert
參數檢視檔案。SQL> show parameter convert;
輸出將與下列類似:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string
- 檢視資料庫檔案。
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
- 檢視資料庫系統變更編號 (SCN)。
SQL> select current_scn from v$database;
輸出將與下列類似:CURRENT_SCN ----------- 2906060
- 檢視 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.
- 使用日誌檔停用復原管理的待命資料庫。
SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
- 檢視資料庫系統變更編號 (SCN)。
SQL> select current_scn from v$database;
輸出將與下列類似:CURRENT_SCN ----------- 2906060
- 使用目的地參數顯示檔案。
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
- 顯示復原的註解。
SQL> select comments from v$recovery_progress;
輸出將與下列類似:COMMENTS -------------------------------------------------------------------- RCVID: 4165711446800375620 SCN: 2907015 COMMENTS -------------------------------------------------------------------- RCVID: 12395680609799335065 SCN: 2906061
- 檢視復原日期。
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