范式迁移 | Squids DBMotion支持Oracle迁移到GaussDB

news/2025/2/13 23:58:08/

Squids DBMotion 2304发版成功,再添重量级数据同步功能——支持Oracle迁移到GaussDB。

GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。并拥有云上高可用、高可靠、高安全,弹性伸缩、一键部署、快速备份恢复、监控告警等关键能力,能为企业提供功能全面、稳定可靠、扩展性强、性能优越的企业级数据库服务。

新建任务

  • 在源库和目标库配置中,Oracle需要填入IP、端口、service_name以及连接Oracle的用户名密码 和 ASM用户名密码。其中ASM用户名密码用于连接数据库获取redo日志;GaussDB需要填入IP、Port、数据库名称、用户名和密码。

  • 迁移选项配置页面上,选择需要同步的表(T3)。DBMotion目前不支持对象迁移,仅支持全量和增量迁移,用户可以勾选需要执行的步骤,并选择冲突策略以及是否过滤DDL。

  • 其他步骤跟同步其他种类数据库相似,配置确认和预检查没问题之后,就可以创建并运行任务了。 

全量和增量同步

  • 如下图所示,源库中原本有7笔数据。

  • 全量迁移:任务开始运行以后,DBMotion会将Oracle的数据迁移到GaussDB上来,这里显示全部迁移成功了。注意:Oracle允许在字符串字段中任意位置包含ascii 0值,GaussDB则不允许有ascii 0值,DBMotion默认会将ascii 0转换为空格字符。

  • 迁移后的目标库数据以及迁移到chr0_user1.t3的7笔数据如下图所示。

  • 在源库上进行插入、更新操作。

  • 查看增量状态,可以看到增量同步的进度和性能。这里增量采用的是o2k,是由沃趣科技自主研发的Oracle日志解析工具。

  • 目标端可查看数据是否完成同步。

校验和其他功能

  • Oracle到GaussDB同步,支持对象校验,DBMotion会校验表和字段在目标端是否存在。

  • 数据校验时,不仅会验行数是否一致,同时也会校验字段值是否一致。此处,由于acsii0被转换为空格,出现两边数据不一致的情况,因此校验数据为不一致。

  • 另外,在监控中可以查看全量和增量迁移时的性能指标

版本更新内容汇总

本次版本更新包括如下内容:

  • 支持 Oracle到GaussDB的全量迁移

  • 支持常规类型和LOB类型的字段

  • 支持Oracle GBK字符集到GaussDB UTF8字符集的转换

  • 支持将ascii0映射到用户指定的字符串,高级配置中可设置替换字符串

  • 支持schema和table名的映射

  • 支持自动转换schman/table/column名,高级配置中可配置三种转换策略:

None: 不自动转换

Normal: 自动将Oracle的大写转换成GaussDB的小写,大小写混合名字不转换。

All: 自动将所有的名字转换成GaussDB的小写

  • 支持按主键或唯一键分片(目前只支持数值列)

  • 多分片并行迁移,分片内批量处理,提升迁移性能

  • 支持Oracle到GaussDB的增量同步

  • 支持常规类型和XMLTYPE字段

  • 支持Oracle GBK字符集到GaussDB UTF8字符集的转换

  • 支持schema/table名的映射

  • 不支持大小写混合的字段名

  • 支持同步无主键表

  • 支持自动冲突处理(覆盖/忽略/失败)

  • 支持并行解析源库日志和并行更新目标端,提供高性能、低延时的同步

  • 支持基本的预检查功能

  • 数据库配置检查

  • 无主键的检查

  • 权限检查

  • 支持对象校验和数据校验

  • 校验表是否存在

  • 校验列名是否一致

  • 校验常规类型的数据是否一致

  • 不能校验LOB类型

  • 不能校验含有乱码的字符值

  • 其它变更

  • 优化元数据库的初始化,加速启动速度,减少连接数

  • 问题修复

  • 修复了增量过程中创建的表不能被校验的问题

  • 修复了MySQL到ClickHouse数据校验失败的问题

  • 修复了数据校验失败时校验状态未更新的问题

  • 修复了获取数据库列表时错误的分页数问题

丝滑的DBMotion,助您云上畅游。

SaaS产品,永久免费使用,赶紧用起来吧!


http://www.ppmy.cn/news/101968.html

相关文章

究诸经典,探寻大模型演变之踪迹

编者按:在仅仅五年的时间里,大语言模型、transformers几乎完全改变了自然语言处理领域。 为了便于快速、扎实、深入地学习大语言模型,本文整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。 以下是译…

使用docker部署mysql的主从复制

前言: 客户需要数据库做一个备份,所以这次部署mysql的主从复制,由于测试原因两个mysql服务都安装在一台服务器上,实际部署中一般分开部署。 介绍: 用途: 实时灾备,用于故障切换读写分离&…

数字图像处理①基于ADMM的全变分去噪算法

文章目录 1. Problem2. 仿真结果3. MATLAB算法4. 源码地址参考文献 1. Problem 在图像处理中,图像信号总会因为各种原因受到噪声的干扰,其中高斯噪声就是典型的干扰类型之一。 针对图像去噪的模型有很多种,其中全变分模型被认为是最有效的模…

C++ constexpr使用理解记录

最近看项目代码,一个constexpr让我的修改总是无法编译,在公司没静下心来看,想起来我还有个csdn,遂在此记录。 1. constexpr在约束什么? rule1: 直接印象就是表达式可以在编译时被确定。 rule2: 蕴含了顶层const&…

数据库 对应的开发语言 mysql PostgreSQL TiDB clickhouse

各数据库及对应开发语言 MySQLC,CPostgreSQLCClickHouseCTiDBsql层用go,存储层用rustOracle内核用C MySQL 最初用 C 实现,现在主要使用 C 实现, PostgreSQL 一直使用 C实现。 ClickHouse使用C实现。 TiDB整个项目分为两层&…

Flutter调优--深入探究MediaQuery引起界面Rebuild的原因及解决办法 | 京东云技术团队

前言 我们可以通过MediaQuery.of(context)方法获取到一些设备和系统的相关信息,比如状态栏的高度、当前是否是黑暗模式等等,使用起来相当方便,但是也要注意可能引起的页面rebuild问题。本文会介绍一个典型的例子,并深入源码来探讨…

ADC子系統參數設計

需求描述: 輸入信號10~50Hz要求準確測量頻率和有效值要求能夠測量到至少150倍基準頻率信號FFT的運算能力首先,有效數據空間可能只有400Bytes。所有的測量值需要達到百分之一的測量精度。 參數演算: 始終記得,你不需要畫蛇添足&…

An illegal reflective access operation has occurred警告

问题描述 今天 在 install Maven项目的时候,控制台出现警告如下: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/E:/DevelopmentKit/Maven/…