Oracle XTTS跨平台迁移功能测试与总结(PDF)_by_itpux
Oracle XTTS跨平台表空间增量迁移功能测试与总结(PDF)_by_itpux
xtts(Cross Platform Transportable Tablespaces)可以说是tts的加强版,通过增量的概念用来减少停机时间.对于跨平台不同字节顺序endian_format还是比较有用,当然相同平台或者相同字节顺序也是可以使用.关于XTTS技术,目前ITPUX.com已经做了几个项目,虽然遇到一些小问题,但总算OK,本文是一个简单的测试总结,方便大家学习使用。
1650
1、XTTS概述
Cross Platform Transportable Tablespaces (XTTS) 的由来:
Oracle8i:Transportable TableSpace(TTS)技术诞生,引入了相同平台相同块大小之间的表空间传输。
Oracle9i:TTS开始支持同平台中,不同块大小的表空间传输。
Oracle10g:不仅引入了跨平台的表空间传输方案,也就是我们说的XTTS;
Oracle10gR2:XTTS开始支持传输整个数据库。
Oracle11gR1:可以传输表空间中的某个特定分区。以上过程如下图所示:
1648
在Oracle 11.2.0.4之前的XTTS技术大致步骤如下:
1647
可以看到上图中第一步将表空间置为只读就意味着停机,而总体停机时间中整体数据文件的传输占了很大的比重。
Oracle11.2.0.4:为了应对越来越大的数据量,而停机时间甚至还在减少的情况,出现了新的解决方案—使用增量备份方式的XTTS,这个技术最开始专为Oracle Exadata而开发的,后来非Exadata环境也可以使用了,也就是此文章要介绍的内容。
最新的增量备份XTTS,在源端库保持正常运行的时候传送所有的数据文件,通过不断生成的增量备份并恢复,使正式停机时间越来越短,我们来看下它所涉及操作的停机时间轴。
1646
1645
为了减少正式的停机时间,oracle在xtts中引入了rman的增量备份前滚功能。通过一次又一次的增量备份,使停应用的时间主要包含四个方面:将表空间置为只读,最后进行一次增量前滚,元数据导入,数据文件校验,如上图所示。和传统的表空间传输相比,通过减少数据文件的传输时间,而大大减少了整体停机时间。
使用增备方式的xtts在跨平台迁移方面的说明:
对于数据库的跨平台迁移,方法有很多,例如传统的传输表空间技术(TTS),如果是10gR2+版本,字节序相同的话,那么还能进行rman convert database。甚至使用其他的第三方数据同步软件,例如GoldenGate、DSG、DDS、shareplex等等。
对于上述的技术各有相互的优势,对于数据的逻辑迁移,后面的数据校对工作是比较麻烦的。因此对于数据迁移使用物理迁移还是比较方便。convert database功能限制太多,必须要去源端和目标端字节序一致,如果是字节序不同,例如从AIX迁移至Linux(x86),那么只能通过TTS来操作。
对于传统的TTS,如果数据量较大的情况下,很难满足要求,为此Oracle提供了增强版的XTTS功能,可以进行增量操作,这可以最大程度的降低停机时间,数据量一般在TB级上使用XTTS优势较大,而且停机时间一般在2-4小时。
对于XTTS的增量操作,Oracle提供了2种方式来进行,分别如下:
1)dbms_file_transfer
要求目标端数据库版本必须是11.2.0.4以及更新的版本。
2)RMAN 备份
如果数据库版本低于11.2.0.4,那么只能使用RMAN 备份,如果数据库版本低于11.2.0.4(大于Oracle10R1),那么目标端环境,仍然需要安装11.2.0.4以及更新版本的临时环境,因为XTTS增量的核心脚本功能必须是基于11.2.0.4(+)版本。