使用DTS实现TiDB到GaiaDB数据迁移

news2024/11/24 22:30:55

1 概览

本文主要介绍通过 DTS 数据迁移功能,结合消息服务 for Kafka 与 TiDB 数据库的 Pump、Drainer 组件,完成从TiDB迁移至百度智能云云原生数据库 GaiaDB。

  • 消息服务 for Kafka:详细介绍参见:消息服务 for Kafka 产品介绍

  • 百度智能云云原生数据库GaiaDB:详细介绍参见:云原生数据库 GaiaDB

2 需求场景

适用于使用百度智能云数据传输服务 DTS(以下简称 DTS),将 TiDB 数据库实例的数据,通过公网/专线迁移到目标端 GaiaDB 实例中。

3 方案概述

3.1 迁移前置条件

  • 已创建作为迁移源端的 TiDB 实例。

  • 已创建作为迁移目标端的 GaiaDB 实例。

3.2 数据库账号授权

数据库权限列表
源端 TiDBSELECT, SHOW VIEW
目标端 GaiaDBCREATE, CREATE ROUTINE, CREATE VIEW, ALTER, ALTER ROUTINE, SELECT, INSERT, UPDATE, DELETE, DROP, INDEX

3.3 注意事项

  • DTS 在执行全量迁移时将占用源库和目标库一定的资源,可能会导致数据库负载上升。如果数据库业务量较大或服务器规格较低,可能会加重数据库压力,甚至导致数据库服务不可用。建议您在执行数据同步前谨慎评估,在业务低峰期执行数据同步。

  • 如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。

4 配置步骤

4.1 准备工作

  • 如果 TiDB 数据库具有白名单限制访问,您需要将 DTS 服务器IP地址加入 TiDB 白名单中。详情参见 DTS 授权 IP 白名单。

  • 若您需要增量同步,则需进行以下配置:

0011865c1e073f471b00789a8eda2278.jpeg

TiDB2GaiaDB.png
    1. 部署 Pump 和 Drainer 组件,详情请参见 TiDB Binlog 集群部署。

    2. 修改 Drainer 组件的配置文件,设置输出为 Kafka,详情请参见 Kafka 自定义开发。

    3. 部署 Kafka 集群,您可以选择自建或使用百度智能云消息服务 for Kafka,详情参见创建消息服务 for Kafka

注意: 1. 当接入方式为专线接入时,请确保Kafka集群部署在专线接入相同的 VPC 内。2. 若选择百度智能云消息服务作为中转 Kafka,请在创建集群时确保将 网络配置>产品间转储 开关打开。

4.2 配置数据迁移

4.2.1 创建任务

首先,在创建任务界面配置数据传输任务的部分上下游连接信息,创建任务时支持源端/目标端位置选择自建数据存储和百度智能云数据库。

源端可根据数据源接入方式选择不同的接入类型:

接入类型:自建数据存储(公网)

31491b040f8567526377a32bc7162b27.jpeg
  • 接入类型:支持公网/BCC/BBC/DCC 自建 TiDB 实例。

  • 数据类型:固定选择 TiDB。

  • 地域:自建数据存储实例所在的百度智能云逻辑地域。

接入类型:自建数据存储(专线)

8c9cd43fc2b57048cf15ba05fd1c42a3.jpeg
  • 接入类型:支持专线接入 TiDB 实例。

  • 数据类型:固定选择 TiDB。

  • 地域:专线接入实例所在的百度智能云逻辑地域。

  • 专线接入所在网络:仅接入类型选择专线接入时存在。专线接入有三个可选项分别为:该地域的 VPC 列表、该地域的可用区列表、选定可用区对应的子网列表。VPC 列表中请选择专线所在的 VPC。

目标端接入类型可直接选择云原生数据库 GaiaDB:

接入类型:云原生数据库 GaiaDB

5466334b4bfab010f5df15d7e310301b.jpeg
  • 接入类型:支持云原生数据库 GaiaDB 实例。

  • 数据类型:固定选择 GaiaDB。

  • 地域:云原生数据库 GaiaDB 实例所在的百度智能云逻辑地域。

5ea1b272c712f6b3fd51a9c165afd74e.jpeg
  • 允许一键反向:开启后,可以支持割接后执行一键反向,一键建立反向回滚同步任务。

  • 链路规格:根据限流需求按需选择。

完成配置后点击【下一步】按钮完成创建任务,返回列表页。

4.2.2 配置任务

列表页点击任务操作栏右侧【配置任务】按钮进入配置任务界面。

ac6fad84fefa0b7be19e77c394ff0448.jpeg

4.2.2.1 连接信息配置

源端连接信息配置:

接入类型:自建数据存储(公网)

550a09a31b744202ef3c505cf0cd10ad.jpeg
  • 主机名/IP:公网接入时,需要填入 TiDB 实例的公网 IP,支持填写域名。

  • 端口:填入 TiDB 实例的端口。

  • 账号:填入 TiDB 实例的访问账号。

  • 密码:填入 TiDB 实例的访问密码。

  • 是否同步增量:若需要做增量同步,需要开启此选项,开启后需要填写 Kafka 连接信息,如下所示:

962698ae94eb1cc821c8774e607abf21.jpeg
  • Kafka 版本:选择 Kafka 版本号。

  • Kafka Broker:填入 Kafka Broker,支持格式 IP:端口,IP 与端口以英文冒号分隔,多个地址以英文逗号分隔,如 192.168.1.1:9092,192.168.1.2:9093。

  • Kafka Topic:填入 Kafka Topic 名称,Topic 需要提前创建好。

  • Kafka 消息格式:填入 Kafka 消息格式,当前仅支持 "tidb-binlog" 格式。

  • Kafka 访问控制:填写 kafka 访问控制策略。

接入类型:自建数据存储(专线)

72073ce130f5bd1e45f828137af85879.jpeg
  • 主机名/IP:专线接入时,需要填入 TiDB 实例在百度智能云 VPC 内的 IP。

  • 端口:专线接入时,需要填入 TiDB 实例在百度智能云 VPC 内的端口。

  • 授权白名单:在源数据库的网络白名单中加入授权白名单 IP,确保源端可与该 IP 连通。

  • 账号:填入 TiDB 实例的访问账号。

  • 密码:填入 TiDB 实例的访问密码。

  • 是否同步增量:若需要做增量同步,需要开启此选项,开启后需要填写 Kafka 连接信息。

目标端连接信息配置:

接入类型:云原生数据库 GaiaDB

1997908aa76b72fea29b39543743e935.jpeg
  • 实例 ID:接入类型为云原生数据库 GaiaDB 时,表示云原生数据库 GaiaDB 的实例 ID。

完成配置后点击【授权白名单进入下一步】按钮,进入对象映射配置页。

4.2.2.3 对象映射

配置任务-对象映射界面 TiDB 版配置参数说明如下:

9e7b20a2a964059dbe56462ca6c8748b.jpeg
  • 迁移类型:支持结构迁移、全量迁移和增量同步,其中增量同步为必选。

  • 同步语句选择:增量同步阶段,支持指定需要同步的 SQL 语句类型,可多选。

  • 特殊 DDL 过滤:增量同步阶段,在选择了同步 DDL 语句的情况下,支持过滤。

  • 自定义同步位点:当未选择结构迁移和全量迁移,仅选择了增量同步时,可以指定增量同步的起始位点,DTS 支持选择两种起始位点。详情可见:自定义同步位点。

    • offset:以 Kafka Topic 消息日志的偏移量作为起始位点,格式参考:100;

    • commitTs:以 TiDB 事务的提交时间点作为起始位点,格式参考:426164827296890882;

  • 限制传输速度:全量迁移和增量同步阶段更细粒度的限流策略,支持按照每秒迁移的行数和每秒迁移的数据量限制任务的传输速度。详情可见:迁移限速。

  • 重试时间:源端/目标端实例无法连接后自动重试,用户可根据实际情况调整重试时间,或者在源端和目标端的实例释放后尽快释放 DTS 实例。

  • 同步 Online DDL:指定是否同步由 gh-ost, pt-osc、DMS 工具执行的表结构变更操作。详情可见:同步 Online DDL。

  • 传输对象:DTS 支持三种配置传输对象方式。

    • 整个实例:将源端除系统库外的所有数据迁移到目标端,不迁移的系统库为:mysql、sys、information_schema、performance_schema。

    • 手动选择:选择此选项时,将出现如下的库表选择页面,页面左侧会展示源端所有的库表信息,在页面左侧选择需要迁移的库表,库表信息将会被自动添加到页面右侧。点击右侧库表名旁的"编辑"按钮可以设置库表名映射、列名映射、行过滤、列过滤(白名单)、列过滤(黑名单)等功能;(注:"编辑"功能在一键反向任务中不可用)。

    • 模式匹配(在一键反向任务中,该选项不可用),详情可见:自定义迁移对象。

6a818c39266ffb83b88ecdb3744eff65.jpeg

完成配置后点击【保存并预检查】按钮,开始执行预检查。

4.2.3 预检查和启动任务

DTS 会在预检查阶段对任务配置及源端/目标端 MySQL 实例做检查,确认是否满足数据迁移需求。其中,检查结果分为四类:

74acbacec03a61779e692d5df22a7abf.jpeg
  • 失败:表示该检查项不通过,且严重影响数据迁移的正常执行。失败的检查项无法强制通过,建议您根据修复建议处理后重新预检查。

  • 警告:表示该检查项不通过,对数据迁移有一定负面影响。您可以确认后点击【强制通过】按钮强制通过检查。

  • 成功:表示该检查项通过。

  • 未开始:表示该检查项未开始执行。

若出现检查失败,您可以修改任务配置后重新执行预检查,或返回列表页后重新执行预检查。

43e0dfd1a96d9df9577cc7a17b11a196.jpeg

预检查通过后,您可直接启动数据迁移任务。

cc68c8849e33417f1515ce2ba4052bed.jpeg

4.3 执行数据校验

在列表页观察到正向数据流进入复制变更阶段,且延迟追平。

35fce279fe278a06e870736f71ee4d3e.jpeg

可以点击任务 ID 进入任务详情页。选择右侧数据一致性校验,点击【创建一致性校验】按钮后,可根据需要调整数据校验配置。完成后点击【确定】按钮,启动数据校验。

7c108b3d4985742a50dc06b8cd723e5d.jpeg b538d84cbe0e094cb44d6ad2f38f4a81.jpeg

执行完成的数据校验任务状态为任务结束,您可以点击【查看详情】查看数据校验详情,可以看到校验结果和数据不一致统计。对校验结果的详细解释可见:创建数据校验任务

81a6831df2f4fbee66c94ebed19e8ab0.jpeg 897aa584e184c94959b88af09306e0ea.jpeg

5 DTS 支持迁移的 TiDB 数据类型

TiDB数据类型DTS是否支持
BOOLEAN支持
TINYINT支持
SMALLINT支持
MEDIUMINT支持
INT支持
BIGINT支持
DECIMAL支持
FLOAT支持
DOUBLE支持
BIT支持
YEAR支持
DATE支持
TIME支持
DATETIME支持
TIMESTAMP支持
CHAR支持
VARCHAR支持
BINARY支持
VARBINARY支持
TINYTEXT支持
TEXT支持
MEDIUMTEXT支持
LONGTEXT支持
TINYBLOB支持
BLOB支持
MEDIUMBLOB支持
LONGBLOB支持
SET支持
ENUM支持
JSON支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1405732.html

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

相关文章

Ubuntu Desktop 隐藏 / 显示文件和文件夹

Ubuntu Desktop 隐藏 / 显示文件和文件夹 1. GUI hot key2. Show hidden and backup filesReferences 1. GUI hot key Ctrl H: 隐藏 / 显示文件和文件夹 2. Show hidden and backup files Edit -> Preferences -> Views References [1] Yongqiang Cheng, https://yo…

AI大概不会很快抢走你的饭碗哦!

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

交互式AI百舸争流,声通科技要再次破题实现IPO?

仅隔半年,声通科技两次递表可以窥见其上市势在必行的决心。 事实也确实如此,由于对赌期限在即,声通科技上市迫在眉睫。 招股书显示,若声通科技未能于2024年12月31日之前完成合资格首次公开发售。那么声通科技及其创始人将赎回已…

Redis服务端优化(持久化配置、慢查询、命令及安全配置、内存配置)

文章目录 持久化配置慢查询命令及安全配置内存配置 持久化配置 慢查询 命令及安全配置 漏洞:Redis未授权访问配合SSH key文件利用分析-腾讯云开发者社区-腾讯云 (tencent.com) 漏洞出现的核心的原因有以下几点 Redis未设置密码利用了Redis的config set命令动态修…

Go 基本数据

第 2 章 基本数据类型 Go 的数值类型包括了不同大小的整数 、浮点数 、复数; 各种数值类型分别有自己的大小,对正负号支持也各不相同; 1. 整数(OK) 整数类型(整型)整数类型Go 语言同时支持 有…

VUE---插槽

一、插槽的作用&场景 1、在封装组件的时候&#xff0c;将可变的结构设计为插槽&#xff08;<slot></slot>&#xff09; 2、使用上述组件的时候&#xff0c;可以按需为插槽提供自定义的结构&#xff0c;以达到复用组件且高度自定的效果 二、基本语法 1、组件内…

关于网络安全 的 ARP欺骗 实验操作

实验设备&#xff1a; Windows server 2008 kali 1. vmware--上面菜单栏--虚拟机--设置--网络--NAT 模式 确定靶机与攻击机的连通性&#xff08;互相能 ping 通&#xff09; 靶机查看 arp 表&#xff08;arp -a&#xff09; 查看攻击机(kali)物理地址&#xff08;ip addr&…

MIT 6s081 lab4.xv6进程调度

xv6进程调度 在xv6中&#xff0c;调度发生的两种情况&#xff1a; 时钟中断导致的进程切换&#xff08;也叫时间片轮转&#xff09;睡眠锁&#xff0c;当进程调用sleep时&#xff0c;发生cpu的调度 xv6进程相关概念 xv6用struct proc来描述进程 // Per-process state stru…

uvicorn日志清空问题以及uvicorn日志配置

uvicorn日志清空问题 1、配置&#xff1a; uvicorn starlette 2、现象描述&#xff1a; 当我使用uvicorn starlette进行Python web开发的时候&#xff0c;本来想把所有的日志都打印到一个文件里面&#xff0c;于是我写了一个启动脚本&#xff0c;所有的日志都输出到log.t…

最大流-Dinic算法,原理详解,四大优化,详细代码

文章目录 零、前言一、概念回顾(可略过)1.1流网络1.2流1.3最大流1.4残留网络1.5增广路径1.6流网络的割1.7最大流最小割定理1.7.1证明 1.8Ford-Fulkerson方法 二、Dinic算法2.1EK算法的可优化之处2.2Dinic算法的优化策略2.3Dinic算法原理2.3.1找增广路2.3.2更新剩余容量 2.4算法…

浏览器无网

目录 1.运行网络诊断&#xff0c;确认原因 原因A.远程计算机或设备将不接受连接(该设备或资源(Web 代理)未设置为接受端口“7890”上的连接 原因B.DNS服务器未响应 场景A.其他的浏览器可以打开网页&#xff0c;自带的Edge却不行 方法A&#xff1a;关闭代理 Google自带翻译…

<C++>STL->vector

vector的介绍 vector的使用文档 vector是一个可改变数组大小的序列容器vector和数组一样采取连续的空间存放数据&#xff0c;可以使用方括号访问vector的元素&#xff0c;和数组一样高效。但是vector的大小可以动态增长&#xff0c;而数组不行实际上vector内部使用一个动态分…

MySQL-SQL-DQL

DQL-介绍 DQL-语法 基本查询 1、查询多个字段 2、设置别名 3、去除重复记录 条件查询 1、语法 2、条件 聚合函数 1、介绍 2、常见的聚合函数 3、语法 分组查询 1、语法 2、where与having区别 排序查询 1、语法 2、排序方式 分页查询 1、语法 DQL-执行顺序

多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效…

C++大学教程(第九版)6.29素数

题目 (素数)素数是只能被1和自已整除的整数。例如,235和7是素数而468和9不是素数 a)编写一个函数&#xff0c;确定一个数是否是素数。 b)在程序中使用这个函数&#xff0c;该程序确定和打印2 ~10000之间的所有素数。在确信已找到所有的素数之前&#xff0c;实际需测试这些数中…

五邑大学餐厅网络点餐系统设计与实现(包含完整源码详细开发过程)

博主介绍&#xff1a;✌专研于前后端领域优质创作者、本质互联网精神开源贡献答疑解惑、坚持优质作品共享、掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战&#xff0c;深受全网粉丝喜爱与支持✌有需要可以联系作者我哦&#xff01; &#x1f345;文末获…

你不知道的git如何撤销回退版本

简言之&#xff1a;从1 回退到 3&#xff0c;在3版本通过回退记录(git reflog)找到它的上一条回退记录的hash值&#xff0c;复制1的hash值进行回退&#xff0c;执行git reset --hard 粘贴1的hash值进来&#xff0c;此时就回到1的版本了&#xff0c;执行git log即可看到1、2、3、…

安装pytorch GPU的方法,一次安装成功!!win10、win11皆可用!!

前提—查看是否有NVIDIV英伟达显卡&#xff01;&#xff01; 在控制面板打开设备管理器 一、查看电脑的显卡驱动版本 方法一&#xff1a;在cmd命令窗口中输入nvidia-smi&#xff0c;可以发现版本为12.2 方法2&#xff1a;点击NVIDIA控制面板→系统信息 二、安装CUDA 方法1…

算法(4)——前缀和

目录 一、前缀和的定义 二、一维前缀和 三、一维前缀和OJ题 3.1、前缀和 3.2、寻找数组中心下标 3.3、除自身以外数组的乘积 3.4、和为K的数组 3.5、和可被K整除的子数组 3.6、连续数组 四、二位前缀和 4.1、二维前缀和 4.2、矩阵区域和 一、前缀和的定义 对于一个…

探索全球DNS体系 | 从根服务器到本地解析

DNS 发展 DNS&#xff08;Domain Name System&#xff09;的起源可以追溯到互联网早期。 早期的挑战&#xff1a; 早期互联网主要通过IP地址进行通信&#xff0c;用户需要记住复杂的数字串来访问网站。 需求的催生&#xff1a; 随着互联网的扩大&#xff0c;更简单、易记的…