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

简介: 自从2015年初进行了xtts增量的U2L迁移测试之后,国内很多人都开始利用这种方案进行数据库跨平台迁移了,基本上都是利用Oracle 封装的perl脚本。其中Oracle MOS文档 11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.

自从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)


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

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


执行结果如下:

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,并执行:


执行结果如下:

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

SQL> alter tablespace xtts  read only ;


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


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


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


11、源端导出元数据

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


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


12、目标端导入元数据

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


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


13、检查数据


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

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


补充:

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


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


本文出自数据和云公众号,原文链接


相关文章
|
机器学习/深度学习 自然语言处理
大语言模型(LLM)框架及微调 (Fine Tuning)
大语言模型(LLM)框架及微调 (Fine Tuning)
1123 0
|
存储 网络协议 Linux
Podman 部署私有镜像仓库
Podman 部署私有镜像仓库
|
JavaScript 前端开发 测试技术
移动端(APP)自动化脚本工具详细列举(autojs、easyclick、hamibot、ctrljs ...)
移动端(APP)自动化脚本工具详细列举(autojs、easyclick、hamibot、ctrljs ...)
5568 0
|
Linux 关系型数据库 Oracle
rhel7安装oracle数据库软件,compat-libstdc++-33缺失
Missing or Ignored package compat-libstdc++-33-3.2.3
6904 0
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
1187 0
|
7月前
|
SQL Oracle 关系型数据库
19c多租户架构下的UNDO管理- Local Undo
Oracle 12c引入多租户架构,PDB共享CDB的UNDO表空间。19c新增Local Undo特性,支持各PDB独立管理UNDO,提升性能、隔离性与可管理性,且为热克隆、PDB迁移等高级功能的前提。建议19c环境启用Local Undo。
|
存储 分布式计算 资源调度
Hadoop生态系统概览:从HDFS到Spark
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。它由多个组件构成,旨在提供高可靠性、高可扩展性和成本效益的数据处理解决方案。本文将介绍Hadoop的核心组件,包括HDFS、MapReduce、YARN,并探讨它们如何与现代大数据处理工具如Spark集成。
1222 0
|
机器学习/深度学习 存储 人工智能
StableVideo:使用Stable Diffusion生成连续无闪烁的视频
使用Stable Diffusion生成视频一直是人们的研究目标,但是我们遇到的最大问题是视频帧和帧之间的闪烁,但是最新的论文则着力解决这个问题。
1425 0
|
存储 运维 Oracle
关于MogDB我所知的一切(一)
关于MogDB我所知的一切
1832 0
关于MogDB我所知的一切(一)