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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5025|回复: 7
打印 上一主题 下一主题

[转载] XTTS(Cross Platform Incremental Backup) 的测试例子

[复制链接]
跳转到指定楼层
楼主
发表于 2015-12-27 22:14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 王硕 于 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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2015-12-31 11:05:07 | 只看该作者
操作的图片无法显示,把文档传上来啊!谢谢
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2016-1-1 17:36:53 | 只看该作者
tc514821 发表于 2015-12-31 11:05
操作的图片无法显示,把文档传上来啊!谢谢

现在可以看见了吗?
回复 支持 反对

使用道具 举报

地板
发表于 2016-1-3 09:07:00 | 只看该作者
王硕 发表于 2016-1-1 17:36
现在可以看见了吗?

还是看不到啊
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-1-3 18:24:19 | 只看该作者

XTTS(Cross Platform Incremental Backup) 的测试例子




xtts传输.rar

826.4 KB, 下载次数: 111

回复 支持 反对

使用道具 举报

7#
发表于 2016-1-4 11:56:46 | 只看该作者
使用非ie 浏览器来编辑图片就可看到图片.
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2016-1-4 18:35:40 | 只看该作者
郑全 发表于 2016-1-4 11:56
使用非ie 浏览器来编辑图片就可看到图片.

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-20 15:17 , Processed in 0.108923 second(s), 22 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表