概述
最近有个客户在咨询adg跨版本相关问题,大伙都知道不能跨数据库版本,那11.2.0.1到11.2.0.4呢?12.2.0到19c呢?和几个同事讨论后,发现大家都思考过这个问题,但是又不能确定正确答案,引发我的好奇心,确切的说触发知识盲区了hhhh;希望读者看本篇blog能有底气的回答下面的问题。
Oracle ADG跨数据库版本可以搭建吗?
Oracle ADG跨平台版本可以搭建吗?
跨版本搭建ADG后会出现什么问题?
跨版本搭建ADG后是否可以真正实现数据迁移?
目录
一、跨数据库版本搭建ADG
环境:
主库:12.2.0.1.0 os:redhat 7.6
备库:19.5.0.0.0 os:redhat 7.6
技能比较熟练的读者就可以跳过1.1章节
使用两种搭建方法来测试是否能完成跨数据库版本搭建
1.1 前期准备
这里的前期准备工作有参数配置、日志组调整、tns配置等,不管是哪个种方式搭建都需要做的;
1.1.1 归档模式和附加日志
shutdown immediate
startup mount
alter database archivelog;
alter database open;
alter database force logging;
检查:
SQL> select log_mode,force_logging from v$database;
LOG_MODE FORCE_LOGGING
------------ ---------------------------------------
ARCHIVELOG YES
1.1.2 添加1621静态监听
--集群添加
srvctl add listener -l LSNR_DG -p 1621
--- listener.ora 添加以下内容
SID_LIST_LSNR_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = hygge) --根据实际更改
(ORACLE_HOME = /u01/app/oracle/product/12.2.0/dbhome_1) --根据实际更改
(SID_NAME = hygge1) --根据实际更改
)
)
--打开监听
srvctl start listener -l lsnr_dg
--检查监听状态
lsnrctl status
1.1.3 配置tnsname.ora
hyggeold =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.51)(PORT = 1621))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hygge)
)
)
hyggenew =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.21)(PORT = 1621))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.23)(PORT = 1621))
(CONNECT_DATA =
(SERVER = DEDICATED)