自从2015年初进行了xtts增量的U2L迁移测试之后,国内很多人都开始利用这种方案进行数据库跨平台迁移了,基本上都是利用Oracle 封装的perl脚本。其中Oracle MOS文档 11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.1) 明确提到目标端环境必须是Linux, 这里该文档中的一段原话:
其实这里很容易让人产生误解,这里Oracle并非说不支持其他平台,而是说Oracle 提供的封装perl脚本不支持而已。但是手工进行xtts操作,完全是ok的;经过我的测试也是可行,这里是测试从Hp IA到Solaris Sparc的xtts增量迁移方式,供参考。 1、首先在原端创建测试表空间和测试表. -创建测试表空间
2、备份xtts表空间文件,并传输到目标端(Solaris) 3、目标端进行文件格式转换
4、原端进行基于SCN的增量备份(这里由于我是测试表空间,所以未启用Block track changing) 5、创建备份集传到目标端并进行备份集格式手工转换(Solaris) 将脚本保存为xtts_conv1.sql并执行,如下是脚本内容: 执行结果如下:
6、进行第一次增量应用(Solaris) 说明:为了验证增量数据是否能够同步到目标端,在进行增量备份之前, 我这里先进行了:
将如下脚本保存为apply_incr1.sql,并执行: 执行结果如下: 7、将原端表空间设置为只读模式
8、进行最后一次增量备份。 9、将备份集传输到目标端并进行转换。步骤略(同上) 10、最后一次应用增量备份。步骤略(同上) 11、源端导出元数据 将下列内容保存为exp_xtts.par: 执行如下命令导出xtts表空间上的元数据信息: 12、目标端导入元数据 将下列内容保存为imp_xtts.par: 执行如下命令导入元数据。 13、检查数据 我们可以看出,xtts表空间已经被迁移过来了,并且增量的数据也已经同步了。 所以我想表达的是,所有的跨平台迁移,其实都可以利用XTTS Incremental Backup 功能进行迁移,无论目标端是什么平台。当然,如果字节序相同的情况下,可以直接使用convert database 功能。 补充: 在进行增量应用时,可能会出现如下错误: 如果遇到这个错误,那么只需要将实例停掉,启动到nomount状态下执行脚本即可。 加入"云和恩墨大讲堂"微信群,参与讨论学习 |
|