测试开发新技能:Oracle到高斯数据库的无缝迁移

2559 篇文章 2 订阅
2396 篇文章 14 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

Oracle适配迁移高斯数据库简介

在数据库系统切换背景下,使用关系型的Oracle数据库的系统可选择替换为华为的高斯数据库。

高斯数据库属于分布式、多模型数据库,基于PostgreSQL开源数据库且遵循了SQL相关标准开发的数据库,具备高性能、高可靠性、高扩展性。

相比而言,两者数据库在数据存储、内核结构、数据类型、系统函数功能等方面及部分SQL语法均存在一定的差异性。

这些差异存在客观造成数据库对象创建、存储过程编译、SQL解析执行等环节一定差异,无法完全兼容。

Oracle迁移高斯数据库流程及工具

1. 迁移工具

  • UGO:异构数据库结构迁移。是数据对象迁移工具,该功能主要有,移前数据库对象兼容性评估、迁移过程中SQL语法转换配置、以及数据库对象迁移同步、迁移后数据库对象验证。

    该工具可将源数据库的DDL、DML、DCL和业务程序中封装的数据库SQL一键自动转换为GasussDB的SQL语法,提高转化率、最大化降低数据库迁移成本。

    该工具主要通过预迁移评估、结构迁移两大核心功能,实现主流商用数据库到GaussDB的自动化搬迁。

  • DRS:数据实时迁移服务。在UGO完成数据库对象迁移后,可使用该工具实现存量、增量数据迁移。

2. 迁移流程

使用Oracle的数据库系统可采取三部分进行迁移:结构迁移、数据迁移、应用迁移。如下图1所示。

  • 结构迁移:使用UGO评估数据库并获取转换后的异构数据库表结构。

  • 数据迁移:通过华为云管理页面使用数据复制服务DRS进行全量数据迁移并进行完整性校验。

  • 应用迁移:定位DAO层业务代码,使用异构数据库结构迁移平台UGO进行语法转换,根据转换结果调整语法。

Oracle迁移高斯库双向同步方案

Oracle库迁移高斯库大概有三种方式:一次性全量切换,确保gauss同步至oracle;oracle与gauss双向同步;应用侧双写改造。

这里简介一下DRS双向同步方案。

数据迁移方案在保证源库与目标库数据一致、安全性的前提下,可以考虑采用“全量铺底、增量同步、双向同步、阶段迁移”迁移策略,实现Oracle到高斯数据库的稳步切换。

迁移方案图如下图所示:

  • 全量铺底:在初次Oracle同步至高斯库数据,可以基于全量在线迁移方式,将当前Oracle库数据全量同步至高斯库。

    在线迁移过程中,服务可能会产生短暂中断或者不中断,对使用方无感知,可以满足系统实时性要求;

  • 增量同步:增量同步可使用源库与目标库在操作某一方的数据后保持同步;

  • 双向同步:增量同步即可支持Oracle到gauss,也可支持gauss到oracle的同步;

  • 阶段迁移:若系统级别高,表量上千,可以考虑上图中分批次的迁移方式,以解耦后的每个微服务进行迁移。先迁移影响小的微服务,待稳定运行之后,再迁移其余微服务。

数据一致性校验

数据全量同步后,需要进行数据一致性校验,该环节可以使用DRS提供的“一致性比对”功能操作,一方面可以对源库与目标库选中的表的表层级字段做校验,另一方面可以对源库与目标库的表内容进行对比。

总之,全量迁移+增量同步、反向增量同步等操作均需要数据一致性校验。

Oracle迁移高斯数据库经验总结

Oracle数据库涉及表、索引、序列、视图、存储过程、触发器等结构迁移。

迁移过程中由于个别结构不能兼容GaussDB数据库,需要在迁移前做进一步处理。此外,数据同步遇到的特殊问题进行了解决。

结构迁移问题处理

1.触发器问题

Oracle数据库下使用的触发器不能兼容GaussDB库,因此迁移前需要进行改造,不能一次性完全迁移。

  • a. 触发器中long类型可修改为bigint、number或numeric;所有的表结构名和字段名均需大写。

  • b. 高斯库下不支持updating函数,因此,Oracle触发器用到updating函数的需要进行统一改造。

2.序列问题

  • a.序列通常用法是替换Oracle没有自增主键而用。但Gauss的序列cache是session端的,因此会导致sequence不连续。比如cache是100,连接池中A连接拿到1-100,连接池B拿到101-200,但连接池A的没用完,连接池B用完了sequence。等连接池A再次使用sequence的时候,会先将没用完的继续使用,但是sequence已经是200了,结果反而出现了<100的sequence出现。建议sequence改为1。

  • b. oracle序列最大支持9999999999999999999;而高斯最大序列值为9223372036854775807

例如:

图片

3. 存储过程

Oracle下的存储过程在高斯环境已完全不适用,需要将逻辑上卷到应用层面。

4. 无主键表

结构迁移时,针对无主键表的迁移,建议增加主键之后再迁移。如果直接迁移,可能在数据同步层面存在一定的风险,需要进行一致性验证。

5. 内置函数

Oracle有的内置函数在高斯库不存在,通过DRS同步之后,会默认给高斯库schema为“dsc_ora_ext”下创建一个同功能函数。

如:oracle下有内置函数sys_guid(); 同步之后会变为dsc_fn_sys_guid()。

数据同步问题处理

1. BigDecimal格式问题

问题描述:Oracle下表结构中的数值类型字段默认显示当前精度,而Gauss库下默认展示表结构数值类型字段的原始精度(涉及到精度自动以0补全)。

解决方法:系统级层面通过更改配置来校正

Set behavior_compat_options = “hide_tailing_zero”

2. Encoding ‘UTF-8’无法转换

问题描述:Oracle库中有的表存在空串情况,Oracle中可以通过char(0)或字节的方式写入字符\u0000,但Gauss系列无法写入字符\u0000,导致oracle2Gauss出现异常。

解决方法:DRS运维端增加如下配置:

全量:sync.datamove.replicator.standardizeStringType=true

增量:sync.increment.replicator.standardizeStringType=true

3. Java heap space问题

问题描述:一次性全量同步的数据涉及到数据量大的情况,DRS同步过程中,报错service DATAMOVE failed, cause by: java heap space;

解决方法:运维管理端增加如下配置:

sync.tungstenEnv.OPS_FULL_INCRE_MAX=10240

sync.datamove.replicator.fetchSize=100

常用sql语句

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值