1. 原理
之前有介绍过怎么使用Transport Data来升级Oracle 11.2.0.3到12.2.版本。http://blog.youkuaiyun.com/cscscscsc/article/details/78035928
这里可以发散一下思维,如果我有一套11.2.0.3的DG环境,假设,我事先在所有的节点都安装好了新的Oracle12.2的数据库软件,并且安装新的数据库且能同步。我这个时候在主库升级11.2.0.3到12.2,从库是不是也能一起升级?带着这个疑问,我们实验一把。
这里有几个条件,大家得注意坑:
l 12.2DG环境中要配置standby_file_management为auto。
l 12.2DG环境中最好不要配置db_file_name_convert,防止主库在transport datafile的时候,主库的路径和备库不一致导致备库升级失败(这里面失败后能不能恢复,我还没研究,目测应该是可以的。可以的话还是对目录做一个软链接,或者最好保持主备库路劲一致)。
l 新建12.2的数据库实例不能和11.2.0.3同名,一个服务器不能搭建两个同名实例,后期升级完了建议在12.2.上新建一个和11.2.0.3同名的service,让应用使用service连接,就不会有问题。
l 11.2.0.3升级肯定是升级到12.2.的NON-CDB。
2. 操作步骤
2.1环境介绍
11g tnsname和db_unique_name名称一样
主库:dzdadg88
备库:dzdadg89
12c tnsname和db_unique_name名称一样
主库:dzditem88
备库:dzditem89
2.2所有节点安装Oracle12.2软件
这里不介绍安装步骤。
2.2所有节点搭建12.2的DG环境(NON-CDB)
在所有节点上搭建12.2的DG环境,主库依然是在11.2.0.3的主库上。如果搭建DG我就不介绍了,新建库和搭建DG和11.2.0.3一样,没什么区别。
记得之前的注意事项吗?
SQL> show parameter db_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
pdb_file_name_convert string
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
2.3将11g主库mount并刷剩余日志到从库
我担心主备库的数据文件SCN不一致会导致升级失败或者因为主从库数据文件不一致导致后期出现问题,所以我们要将主备库数据文件的SCN刷一致后升级。
主库操作:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1.3683E+11 bytes
Fixed Size 2245480 bytes
Variable Size 9126808728 bytes
Database Buffers 1.2751E+11 bytes
Redo Buffers 189480960 bytes
Database mounted.
SQL> alter system flush redo to 'dzdadg89';
System altered.
SQL> select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
464111773603
备库查询:
备库不关闭,查询SCN
SQL> select current_scn from v$database;
current_scn
------------------
464111773603
这个时候我们能发现两边的SCN一致就可以了,避免出现其他问题。
2.4主库使用transport导出
导出步骤请参阅文档 http://blog.youkuaiyun.com/cscscscsc/article/details/78035928
2.4关闭11g主备库
把11g的主备库都shutdown
2.5在12.2创建目录
2.5使用transport导出文件导入12.2升级
导入命令
impdp /' / as sysdba /' parfile=profile.f