- 为内部部署数据库部署混合 DR 拓扑
- 完成配置
完成配置
配置 Oracle Data Guard、注册备用数据库以及同步内部部署和备用数据库口令。
配置 Oracle Data Guard 中介
通过在主数据库和备用数据库上启用 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 中介进程。
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 中介进程。
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 命令行界面 (command-line interface, 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 命令行界面 (command-line interface, 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 命令行界面 (command-line interface, 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