重庆思庄Oracle、Redhat认证学习论坛

标题: XTTS(Cross Platform Incremental Backup) 的测试例子 [打印本页]

作者: 王硕    时间: 2015-12-27 22:14
标题: XTTS(Cross Platform Incremental Backup) 的测试例子
本帖最后由 王硕 于 2016-1-3 18:17 编辑

对于数据库的跨平台迁移,大 家所熟悉的方法有很多,例如传统的传输表空间技术(TTS),如果是10gR2+ 版本,字节序相同的话,那么还能进行 rman convert database。甚至使用其他的第三方数据同步软件,例如 GoldenGate,DSG,DDS,shareplex 等等。


对于上述的技术,各有相互的优势,对于数据的逻辑迁移,后面的数据校对工作是比较麻烦的。

因此,对于数据迁移,我个人还是更倾向去使用物理迁移。convert database 功能限制太多,必须要去源端和目标端字节序一致,如果是字节序不同,例如从 AIX 迁移至 Linux(x86),那么只能通过 TTS 来操作。

对 于传统的 TTS,如果数据量较大的情况下,很难满足要求,为此 Oracle 提供了增强版的 XTTS 功能,可以进行增量操作,这可以最大程度的降低停机时间。这一功能之前 Oracle 仅仅针对 exadata 开发,后面对于非 exadata 环境也可以进行使用了。

对于 XTTS 的增量操作,Oracle 提供了2种方式来进行,分别如下:

1)dbms_file_transfer
2)RMAN 备份

对 于第一种方法,要求目标端数据库版本必须是 11.2.0.4 以及更新的版本。如果数据库版本低于 11.2.0.4,那么只能使用第2种方式。即使使用第2种方法,如果数据库版本低于 11.2.0.4,那么目标端环境,仍然需要安装 11.2.0.4 以及更新版本的临时环境。因为XTTS增量的核心脚本功能必须是基于11.2.0.4(+)版本。

如下是我的一个简单测试,是基于 RMAN 备份的方式,供参考!

1. 目标端安装 11.2.0.4 软件环境(如果不用 ASM,那么不需要安装 grid)
该步骤略.

2. 目标端准备 convert Instance(以及修改相关的环境变量)

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7AD.tmp.png

注意,只需要将辅助实例启动到 nomount 状态即可.


3. 源端解压 rman convert 脚本

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7AE.tmp.jpg


4. 源端修改 xtt.properties 内容

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7AF.tmp.jpg


说明:
tablespaces:表示你需要传输的表空间名称
platformid: 表示源端平台编号,该值可以从 v$transportable_platform 获取


5. 源端运行 perl 脚本,准备 Prepare 操作


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7BF.tmp.png


该操作执行完毕之后,会在 xtts 目录下产生几个文件,其中 xttplan.txt 文件中的内容如下:

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7C0.tmp.jpg


该文件中的数值,数据库的 SCN。如果后面再次运行脚本进行增量操作时,该值会发现改变。

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7C1.tmp.jpg


上述脚本是 perl 脚本产生的 rman convert 脚本,需要将该脚本传递到目标端主机。注意,上述脚本文件格式需要注意,同时并行度是默认的,可以进行调整。

6. 将数据文件传输到目标端


这里你可以直接使用如下的方式进行 scp:scp oracle11@133.37.253.3:/telephone_cdr/oracle11203/dfcopydir/TEST_TAB_5.tf /ogg/11204/xtts


我这里直接进行 ftp 传递,因为 scp 有问题,操作如下:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7C2.tmp.jpg


7. 将源端的 rman convert 脚本传到目标端


这里在传递文件的时候,将源端的 xtts 目录下的所有文件都传递到目标端。如果直接在目标端解压 rmancovert 程序,那么还需要修改相关的配置文件,以及将源端的 xttplan.txt 等传过来。


我这里省略了传递其他文件的步骤:

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7C3.tmp.jpg


8. 目标端进行数据文件的转换


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7D4.tmp.png



转换之后,如下:

[ora1124@cszwbdb1 xtts]$ cd test/
[ora1124@cszwbdb1 test]$ ls -ltr
total 1048588
-rw-r—– 1 ora1124 dba 1073750016 Feb 10 10:19 TEST_TAB_5.xtf
[ora1124@cszwbdb1 test]$

9. 创建增量数据(源端数据库)

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7D5.tmp.png


10. 源端数据库创建增量备份

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7F5.tmp.png


上述步骤的增量备份信息,会写入到如下 txt 文件中。

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7F6.tmp.jpg


11. 将增量备份信息传到目标端


将 $/telephone_cdr/oracle11203/backup/0hputq9s_1_1 传到目标端:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF7F7.tmp.png


注 意:这里传递增量数据信息的时候,还需要将源端 xtts 目录下的 xttplan.txt,以及 tsbkupmap.txt 文件都传输到目标端。每当你进行一次增量的备份操作,这2个文件的内容都会发现变化。每一次增量操作之后,都需要将这2个文件传到目标端数据库的 xtts 目录中。


对于一个比较大量的系统来讲,上述的增量操作,我们可以进行多次。假设我们进行了多次操作之后,在停机时间的时候,再将源端数据库中需要传输的表空间设置为只读模式,如下:


12. 源端数据库最后一次增量操作


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF808.tmp.png


13. 目标端进行增量转换和数据写入同步



在测试的过程中,发现了不少的问题,需要进行排除,最后发现该脚本本身提供了 debug 功能,如下:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF828.tmp.png



说明:我们可以看到关键性的操作已经关闭,之所以后面会报 ORA-00205 错误,是因为我们的用于转换的临时辅助实例 XTT 是 nomount 状态,是没有控制文件的,因此这个错误直接忽略之.

14.  最后将表空间相关的元数据插入到目标端数据库


该 perl 脚本本身提供了产生脚本的功能,如下:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF829.tmp.png



产 生的脚本内容在 /ogg/11204/xtts/xttplugin.txt 文件中,我们创建相关的 directory 和 network_link 即可。不过我这里创建 link 后,impdp 有问题,因此我直接通过 exp/imp 元数据的方式来进行了,如下:


15.  源端数据库,导致元数据


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF83A.tmp.png


16.  目标端数据库导入元数据



1)首先创建相关的用户信息(其中 roger 用户是我的增量操作中创建的测试用户)


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF83B.tmp.png


2) 导入元数据


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF84B.tmp.png


17. 验证数据是否 OK


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsF84C.tmp.jpg



我们可以看到,最后我们的增量操作的数据,已经可以查询到了.


备注:在最近的一个运营商项目中,客户的2套 10TB 的 RAC,我计划使用该方法来进行迁移(AIX–>Linux)。

------ The End


作者: tc514821    时间: 2015-12-31 11:05
操作的图片无法显示,把文档传上来啊!谢谢
作者: 王硕    时间: 2016-1-1 17:36
tc514821 发表于 2015-12-31 11:05
操作的图片无法显示,把文档传上来啊!谢谢

现在可以看见了吗?

作者: tc514821    时间: 2016-1-3 09:07
王硕 发表于 2016-1-1 17:36
现在可以看见了吗?

还是看不到啊

作者: 王硕    时间: 2016-1-3 18:24
标题: XTTS(Cross Platform Incremental Backup) 的测试例子
tc514821 发表于 2016-1-3 09:07
还是看不到啊

[qq]2358040767[/qq]

xtts传输.rar

826.4 KB, 下载次数: 111


作者: tc514821    时间: 2016-1-4 09:53
thanks!!!!!
作者: 郑全    时间: 2016-1-4 11:56
使用非ie 浏览器来编辑图片就可看到图片.
作者: 王硕    时间: 2016-1-4 18:35
郑全 发表于 2016-1-4 11:56
使用非ie 浏览器来编辑图片就可看到图片.

我原来就用的火狐,  自己也能看到的啊






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2