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

news2025/1/4 17:38:45

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.coloradmin.cn/o/582888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业使用WordPress网站的6个理由

WordPress 为超过三分之一的网络和超过 38%的顶级 10K 网站提供支持。它最初是一个博客平台,现在是世界上使用最广泛的内容管理系统,对于希望在未来几年扩大规模的网站所有者来说,是一个明智的选择。 除了使用开源软件的好处之外&#xff0c…

从古板到智能:机器程序的华丽转身

因为 ChatGPT 的热潮,目前在恶补人工智能方面的知识。在某一篇文章的评论中,我看到了一个问题:“为什么 ChatGPT 能这么厉害,基本什么问题都能回答,如何做到的” 这也是我想问的问题,在初学编程的时候&…

Packet Tracer - 配置区域策略防火墙

Packet Tracer - 配置区域策略防火墙 拓扑 地址表 设备 接口 IP地址 子网掩码 默认网关 交换机端口 R1 F0/1 192.168.1.1 255.255.255.0 N/A S1 F0/2 S0/3/0 (DCE) 10.1.1.1 255.255.255.252 N/A N/A R2 S0/3/0 10.1.1.2 255.255.255.252 N/A N/A S0/3…

Unity 反射探针

反射射探针 是用来模拟反射周边物体的光照信息的一种解决方案让物体,受周围物体的光照或材质进行影响的一种模拟光照效果。如下图效果: 反射探针属性截图 反射探针类型 Baked 烘焙模式,此种模式需要反射的物体是静态的不能移动,但…

如何高效提问,准确搜索,开发小白不会百度?

How-To-Ask-Question ?其实我也是小白,这个问题没有太多发言权。目前来说,我暂时也没有找到一个通法,但整体上来说也不是无迹可寻(是有一定技巧和经验在里面的)。我之前也经常遇到了一些这方面问题&#x…

1.5. 流程控制(分支与循环)

流程控制是编程中的基本概念,用于控制程序的执行顺序。在 Java 中,流程控制主要分为两类:分支结构(Branching)和循环结构(Looping)。 1.5.1. 分支结构 分支结构是根据条件判断来选择执行不同的…

【*1900 DP+Tree】CF9D

Problem - 9D - Codeforces 题意: 思路: 计数问题,考虑计数DP 因为它是二叉树,比较特殊,所以可以考虑一下线性DP 按照题目最后要算的答案,状态可以这样设计: 设dp[i][j]表示树高为i&#x…

Linux设备驱动程序(二)——建立和运行模块

文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…

旗鱼优化(SFO)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

Thread.sleep( )线程休眠的优化写法

TimeUnit.SECONDS.sleep(10)和Thread.sleep(10 * 1000)都可以用于线程休眠 代码如下: import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.concurrent.TimeUnit; /*** program: moon-cloud-car* author: 阿水* create…

MT6765 处理器参数 MTK6765芯片性能配置|详细参数

MT6765处理器,也被称为Helio P35,是联发科(MediaTek)推出的高性能智能芯片。作为目前市场上受欢迎的低成本智能芯片之一,MT6765以其卓越的性能和创新技术为用户提供了更加顺畅和高效的使用体验。 MT6765作为一款八核芯片,MT6765的…

最佳实践:基于vite3的monorepo前端工程搭建 | 京东云技术团队

一、技术栈选择 1.代码库管理方式-Monorepo: 将多个项目存放在同一个代码库中 ▪选择理由1:多个应用(可以按业务线产品粒度划分)在同一个repo管理,便于统一管理代码规范、共享工作流 ▪选择理由2:解决跨项…

Homeassistant --openwrt docker 安装

openwrt homeassistant安装教程 前提:在N1盒子上面烧录 f大的openwrt系统 (安装81o 或者82o都可以) 一.进入openwrt系统 通常为192.168.1.1 打开网络配置 点击网络点击接口然后修改 这样网络是属于旁路由上网了 可以联通网络了 主要需要填写正确 二.点击docker …

南大通用数据库-Gbase-8a-报错集锦-02-metadata is incomplete on localhost

一、版本信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43 二、问题原因 由于gbase.table_distribution存储了所有引擎为express的表元数据信息,如果此表出现数据损坏&a…

Linux使用PowerShell模块管理MsSql-Server

1.安装PowserShell 更新包列表 sudo apt-get update 安装依赖: sudo apt-get install -y wget apt-transport-https software-properties-common 下载 key: wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb&…

第三方apple pencil哪个好?好用的电容笔排行榜

由于Apple Pencil的推出,让iPad变成了一个轻量化的办公室工具,它的优点就是可以让画家在iPad上作画,能够适用于各种各样的绘画,并且非常适合一些上班族。今天就来为大家推荐几支适合画画的电容笔! 第一部分、电容笔选…

「实在RPA·服装制造数字员工」助力服装「智」造数字升级

服装制造业作为衣食住行的重要组成部分,除了在百姓生活中扮演者着重要角色之外,同时在经济发展中具有重要的地位和作用。它不仅提供了大量就业机会,促进国际贸易和经济发展,同时也推动了技术创新和消费需求的满足。为顺应数字经济…

Vue组件化、通过自定义指令子组件向父组件传递

1.如何安装Vue脚手架? 第一步(仅第一次执行):全局安装vue/clinpm install -g vue/cli 第二步:切换到你要创建项目的目录,然后使用命令创建项目vue create xxxx 第三步:启动项目npm run serve 2…

C语言中二维数组和二维数组分析

问题 最近有个同事发现一个问题:一个二维数组,想把它传给一个函数,具体代码如下: char array[3][128]; void fun(char** array) {strcpy(array[0],"confirm"); }当我试图直接把二维数组名传给函数的时候,f…

接入淘宝API接口,获取店铺详情轻松迈入大数据时代

随着电商行业的飞速发展,API接口已经成为了一种不可或缺的技术。作为中国最大的电商平台,淘宝也拥有着自己的API接口。本文将重点讲解淘宝API接口技术,包括其基本原理、使用方法、优缺点等方面,帮助大家进一步了解淘宝API接口的奥…