oracle xtts 测试,我们都被骗了,所有的跨平台迁移都可以通过XTTS实现

自从2015年初进行了xtts增量的U2L迁移测试之后,国内很多人都开始利用这种方案进行数据库跨平台迁移了,基本上都是利用Oracle 封装的perl脚本。其中Oracle MOS文档 11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.1) 明确提到目标端环境必须是Linux,

这里该文档中的一段原话:

The source system may be any platform provided the prerequisites referenced and listed below for both platform and database are met. The destination system must be Linux, either 64-bit Oracle Linux or RedHat Linux, as long as it is a certified version. The typical use case is expected to be migrating data from a big endian platform, such as IBM AIX, HP-UX, or Solaris SPARC, to 64-bit Oracle Linux, such as Oracle Exadata Database Machine running Oracle Linux.

其实这里很容易让人产生误解,这里Oracle并非说不支持其他平台,而是说Oracle 提供的封装perl脚本不支持而已。但是手工进行xtts操作,完全是ok的;经过我的测试也是可行,这里是测试从Hp IA到Solaris Sparc的xtts增量迁移方式,供参考。

1、首先在原端创建测试表空间和测试表.

-创建测试表空间

create tablespace xtts datafile ‘+data’ size 100m;

create table test0504 as select * from dba_objects where 1=2;

alter table test504 move tablespace xtts;

2、备份xtts表空间文件,并传输到目标端(Solaris)

3、目标端进行文件格式转换

convert from platform ‘HP-UX IA (64-bit)’ datafile  ’/tmp/xtts.dbf’ format ‘+DATA/test/datafile/xtts_new.dbf’;

4、原端进行基于SCN的增量备份(这里由于我是测试表空间,所以未启用Block track  changing)

6acff2ada6a6e21ed1534981e0ce634a.png

5、创建备份集传到目标端并进行备份集格式手工转换(Solaris)

将脚本保存为xtts_conv1.sql并执行,如下是脚本内容:

2395a34a6bb447e56cd0d2c44f759308.png

执行结果如下:

SQL> start xtts_conv1.sql;

PL/SQL procedure successfully completed.

6、进行第一次增量应用(Solaris)

说明:为了验证增量数据是否能够同步到目标端,在进行增量备份之前,

我这里先进行了:

SQL > insert into test0504 select * fro dba_objects where rownm < 101;

SQL> commit;

将如下脚本保存为apply_incr1.sql,并执行:

5e89d7f589f3e5352c0d70c993c76c3e.png

执行结果如下:

31ac9205ef785be3fc0311227f338deb.png

7、将原端表空间设置为只读模式

SQL> alter tablespace xtts  read only ;

8、进行最后一次增量备份。

e3f061af2aa97b58953a135c0b336707.png

9、将备份集传输到目标端并进行转换。步骤略(同上)

10、最后一次应用增量备份。步骤略(同上)

11、源端导出元数据

将下列内容保存为exp_xtts.par:

53d93581bf909eeeae77461c758b74b9.png

执行如下命令导出xtts表空间上的元数据信息:

9dd3aa9e302a4a17ce1b3ffb9a126c2b.png

12、目标端导入元数据

将下列内容保存为imp_xtts.par:

bba339ffc514a3ca05ee3b60dfcb5a0d.png

执行如下命令导入元数据。

8e1dba6c44ce34e6bd2c40f7c1d47f3f.png

13、检查数据

8cbcf72216977aa87174a1ad0aa6de84.png

我们可以看出,xtts表空间已经被迁移过来了,并且增量的数据也已经同步了。

所以我想表达的是,所有的跨平台迁移,其实都可以利用XTTS Incremental Backup 功能进行迁移,无论目标端是什么平台。当然,如果字节序相同的情况下,可以直接使用convert database 功能。

补充:

在进行增量应用时,可能会出现如下错误:

53e426fac7c2902fc6f46a73b216f6a8.png

如果遇到这个错误,那么只需要将实例停掉,启动到nomount状态下执行脚本即可。

原文来自微信公众号:数据和云

本文链接:http://www.yunweipai.com/20032.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OGG(Oracle GoldenGate)是Oracle数据库的一种高性能、实时数据复制和数据集成解决方案。它可以从源数据库捕获事务日志,并将这些日志传输到目标数据库实现实时数据同步。OGG的实现原理是通过读取源数据库的redo日志或归档日志,将变更数据以SQL语句或二进制格式传输到目标数据库,然后在目标数据库上重新执行这些变更操作,从而实现数据的同步。 ADG(Active Data Guard)是Oracle数据库的一种高可用性解决方案,它通过在备用数据库上启用只读访问,实现实时数据保护和查询功能。ADG的实现原理是在备用数据库上应用源数据库的redo日志,实时保持备用数据库与源数据库的数据一致性,并将读取请求路由到备用数据库,从而实现实时数据保护和查询功能。 DG(Data Guard)是Oracle数据库的一种灾备解决方案,它通过在备用数据库上应用源数据库的归档日志,实现数据的异地备份和恢复功能。DG的实现原理是将源数据库的归档日志传输到备用数据库,然后在备用数据库上应用这些归档日志,从而实现数据的异地备份和恢复功能。 RAC(Real Application Clusters)是Oracle数据库的一种集群解决方案,它可以将多个服务器组成一个集群,共享数据库和资源,提高数据库的可用性和性能。RAC的实现原理是通过共享存储和共享网络,实现多个服务器对数据库的同时访问,从而提高数据库的可用性和性能。 XTTS(Cross-Platform Transportable Tablespaces)是Oracle数据库的一种跨平台传输表空间的解决方案。它可以将表空间从一个平台迁移到另一个平台,实现跨平台的数据迁移。XTTS实现原理是通过将表空间的数据文件导出为通用的数据文件格式,然后将这些数据文件导入到目标平台的数据库中,从而实现跨平台的数据迁移。 exp/imp和expdp/impdp是Oracle数据库的导出和导入工具,用于将数据库对象和数据导出到文件,然后再从文件中导入到另一个数据库中。exp/imp是传统的导出和导入工具,expdp/impdp是数据泵导出和导入工具。它们的实现原理是通过将数据库对象和数据转换为特定的导出文件格式,然后通过导入工具将这些文件中的对象和数据导入到目标数据库中。 Rman(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以对数据库进行全量备份、增量备份和日志备份,并提供了灵活的恢复选项。Rman的实现原理是通过读取数据库的数据文件和日志文件,将备份数据存储到备份设备中,并在需要恢复时,根据备份数据和日志文件进行恢复操作,从而实现数据库的备份和恢复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值