合 使用rman备份恢复迁移Oracle 11.2.0.4到新机器并使用AutoUpgrade自动升级到12.2.0.1版本
Tags: Oracle数据迁移升级AutoUpgrade
前言
在最近的项目里,客户有2套11.2.0.4的数据库,需要迁移上云,数据量较大(一个600g,一个2T),停机时间6小时以内,还有很多其它的库需要同时切割,目前想到的迁移方案有:
1、XTTS进行全量+增量迁移。
缺点:物理迁移,在最后一次增量的时候,源端数据库需要设置为只读模式,只能读,不能写。云端数据库在最后一次增量之前都不能使用。
由于客户需要提前做POC测试,而且网络不是直达的,需要经过中转机,所以,该方案放弃。
2、使用数据泵+OGG方式。
缺点:逻辑迁移,对于特殊的列不能同步(例如long列),需要正式切割前进行大量的实验观察,否则可能造成个别数据不一致。
这个方案,我想着使用OGG的微服务会比较好,结果安装了好几个版本的OGG微服务(从12.3到21.3),兼容性都不支持11.2.0.4,无奈只能放弃!
3、进行全量+增量的rman备份恢复,最后做数据字典升级。可以使用手动脚本升级,也可以使用DBUA升级,也可以使用最新的AutoUpgrade工具升级。
缺点:数据字典升级时间稍微长点,预估1~2小时左右,但可控在切割时间内。
优点:方案成熟,变数少,可以做压缩备份,减少中间网络传输的时间。
本文我们使用方案3来做演练,升级方式选择AutoUpgrade工具。
环境介绍
1 2 3 4 5 6 7 8 9 | docker rm -f lhrora11204 docker run -itd --name lhrora11204 -h lhrora11204 \ --privileged=true \ lhrbest/oracle_11g_ee_lhr_11.2.0.4:2.0 init docker rm -f lhrora1221 docker run -itd --name lhrora1221 -h lhrora1221 \ --privileged=true \ lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0 init |
参考文档:
手动升级到 Non-CDB Oracle Database 12c Release 2(12.2)的完整核对清单 (Doc ID 2297983.1、2173141.1)
使用 DBUA 升级数据库到 Database 12c 版本2(12.2)的完整核对清单 (Doc ID 2364820.1、2189854.1)
Oracle Database AutoUpgrade allows DBAs to upgrade one or many databases without human intervention, all with one command and a single configuration file.
最后升级脚本的时间跟数据库组件的个数、类型和是否含有特殊组件有关,另外也跟机器性能也有一定的关系,我在云主机上测试的,30分钟即可升级完毕。
这个升级,目标端12C 也是没有PDB的CDB吧?
对的