「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」
一、介绍
The Database Configuration Assistant (DBCA) can also be used as a simple command-line method to create an Oracle Data Guard physical standby database.
The DBCA command qualifier used to create the physical standby database is createDuplicateDB
.
1 | bash复制代码dbca -createDuplicateDB |
更详细参数可参考:The createDuplicateDB command creates a duplicate of an Oracle database.
Notes:
1、12.2.0.1开始支持DBCA创建物理备库
1 | bash复制代码##限制: |
2、18c之后,以上限制已经取消,支持主库是CDB或者RAC环境。
二、环境准备
主机名 | ip | DB Version | db_name | db_unique_name | |
---|---|---|---|---|---|
主库 | orcl | 192.168.1.172 | 19.3.0.0 | orcl | orcl |
备库 | orcl_stby | 192.168.1.180 | 19.3.0.0 | orcl | orcl_stby |
Notes:
1、db_unique_name主备库不能相同。
2、db_name主备库需保持一致。
3、主备库DB版本需保持一致。
三、搭建过程
1、Oracle软件安装
主库一键安装:
1 | bash复制代码./AllOracleSilent.sh -i 192.168.1.172 -d 19c -n orcl -o orcl -b /u01/app -s AL32UTF8 |
备库一键安装:(备库仅安装ORACLE软件,不建库)
1 | bash复制代码./AllOracleSilent.sh -i 192.168.1.180 -d 19c -w Y -n orcl_stby -o orcl -b /u01/app -s AL32UTF8 |
一键安装脚本可参考:ORACLE一键安装单机11G/12C/18C/19C并建库脚本
2、环境配置
a.配置hosts文件
主库:
1 | bash复制代码cat <<EOF >> /etc/hosts |
备库:
1 | bash复制代码cat <<EOF >> /etc/hosts |
b.配置静态监听和TNS
主库+备库:
1 | bash复制代码##listener.ora |
c.主库配置参数
1 | sql复制代码SQL> select force_logging,log_mode,cdb from gv$database; |
d.主库添加stanby log文件
1 | sql复制代码set line222 |
3、 DBCA AsStandby
1 | bash复制代码dbca -silent -createDuplicateDB \ |
4、设置主库+备库DG参数
1 | sql复制代码--主库设置DG参数 |
5、开启日志应用
1 | sql复制代码SQL> select open_mode,database_role from v$database; |
6、测试同步情况
1 | sql复制代码set line222 |
四、Database Switchover
1 | bash复制代码--是否存在GAP |
主库:
1 | sql复制代码ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; |
备库:
1 | sql复制代码alter system set log_archive_dest_state_2=DEFER; |
五、Failover
Failover后,原主库将从DG配置中删除,如果原主库启用了Flashback,则在修复故障后,故障的数据库可恢复为新的standby数据库。
1 | sql复制代码ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH; |
测试Failover
1、主库开启闪回,防止Failover后无法再次切回备库
1 | sql复制代码alter database flashback on; |
2、备库进行Failover
1 | sql复制代码ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH; |
3、将原主库闪回,切换回备库
1 | sql复制代码--查询新主库的scn号 |
六、Snapshot Standby
Snapshot standby database是ORACLE 11g的新特性。允许Physical standby短时间的使用read write模式。
1、切换为Snapshot Standby
1 | sql复制代码--记录表test状态 |
2、切换回PHYSICAL STANDBY
1 | sql复制代码--关闭数据库 |
**注意:**一旦snapshot standby被激活的时间超出了primary 的最大负载时间,再次的本地更新操作将会产生额外的异常。
七、开启FLASHBACK(备库)
1 | sql复制代码--取消日志应用 |
参考官方文档12c:Using DBCA to Create a Data Guard Standby 12C
参考官方文档19c:Using DBCA to Create a Data Guard Standby 19C
参考官方文档21c:Using DBCA to Create a Data Guard Standby 21C
参考MOS文档:Creating a Physical Standby database using DBCA duplicate (Doc ID 2283697.1)
本文转载自: 掘金