TapData 信创数据源 | 国产信创数据库 PolarDB MySQL 数据同步指南,加速国产化进程,推进自主创新建设

news/2024/11/17 18:55:35/文章来源:https://www.cnblogs.com/tapdata/p/18357387

随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与**阿里云、华为云、麒麟软件、优炫数据库、Apache Doris、人大金仓、OceanBase **等国产数据库及操作系统完成产品生态集成认证或产品兼容互认证。

本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——PolarDB

国产化浪潮之下,基础软件自主可控迫在眉睫,越来越多的国内企业开始从 Oracle、MySQL 这一类海外数据库向国产数据库迁移,TapData 的能力恰好满足企业快速、无痛实现迁移的需求,有效推动信创行业国产化建设更进一步。信创领域和基础软件设施的自主可控作为国家重点关注领域,全面国产化替代的进程仍在全速前进中。

同为国产基础软硬件生态的积极建设者,TapData 一直以来都在坚持拓展并持续深化与更多国产信创数据库的生态与战略伙伴关系,以期推动更多行业数据管理解决方案及创新应用的落地,提供更加广泛的基础设施选择及技术服务保障,从而为加速国产软硬件产品的应用普及与协同发展贡献力量。纯国产自研的背景更是为 TapData 的这一发展目标添翼。目前,TapData 已成功实现对主流国产数据库的广泛支持,以 PolarDB 为例

云原生数据库 PolarDB 是阿里云自研产品,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供秒级弹性、高性能、海量存储、安全可靠的数据库服务。100% 兼容 MySQL 和 PostgreSQL 生态,支持分布式扩展,高度兼容 Oracle 语法。版本包括云原生数据库 PolarDB MySQL 版、云原生数据库 PolarDB PostgreSQL 版和云原生数据库 PolarDB 分布式等。PolarDB 在全球范围内拥有超过 10,000 名企业级用户,部署实例超百万核 CPU,三年间增长率高达 400%,成为最受欢迎的国产数据库之一。

此外,作为 2024年8月墨天轮中国数据库流行度排行榜上的 Top2 以及 7月榜首,PolarDB 在云原生领域具有显著优势,用户量庞大,增长迅速,是国产数据库中的佼佼者。其创新设计的“分布式共享内存和存储”多主数据库架构,性能达到了业界同类数据库的3倍,并且已实现大规模商用,充分验证了其在实际业务场景中的卓越表现。那么,如何高效实现 PolarDB 的数据同步?

一、PolarDB 数据迁移与同步方案

更多详情,参见《PolarDB 产品文档-操作指南》:https://help.aliyun.com/zh/polardb/user-guide

云原生数据库 PolarDB 提供了多种数据迁移与同步方案,可满足不同上云、迁云以及业务同步等需求,支持在不影响业务的情况下平滑实现引擎间的数据迁移与同步,以 PolarDB MySQL 版本为例:

① 使用阿里云数据传输服务(DTS)

DTS(Data Transmission Service)是阿里云提供的数据传输服务,适用于 PolarDB 的迁移与同步场景,支持RDBMS、NoSQL、OLAP等数据源间的数据交互。

PolarDB 的数据迁移

  • 使用场景
    • 从 RDS 迁移至 PolarDB
    • PolarDB 间的数据迁移
    • 从其他数据库迁移至 PolarDB
    • 从 PolarDB 迁移至其他数据库

**PolarDB 的实时同步 **

  • 使用场景:
    • PolarDB 间的数据同步
    • PolarDB 与其它数据库的数据同步

支持的数据库

当源为 PolarDB MySQL 版时,DTS 对源库与目标库的支持情况如下:

  • 源库:PolarDB MySQL 版所有版本
  • 目标库:包含 PolarDB MySQL、自建MySQL、RDS MySQL、云原生数据仓库 AnalyticDB MySQL 版、云原生数据仓库 AnalyticDB PostgreSQL 版、ClickHouse 等在内的 10+ 数据目标

② 使用实时数据同步工具 TapData

TapData 是一个以低延迟数据移动为核心优势构建的现代数据平台,可用于实现核心数据系统之间的实时同步、实时交换及实时处理。

PolarDB 的数据迁移

  • 使用场景:
    • 从其他数据库迁移至 PolarDB
    • PolarDB 间的数据迁移
    • 从 PolarDB 迁移至其他数据库

PolarDB 的实时同步

  • 使用场景:
    • PolarDB 间的数据同步
    • PolarDB 与其它数据库的数据同步

支持的数据库

当源为 PolarDB MySQL 版时,TapData 对源库与目标库的支持情况如下:

  • 源库:PolarDB MySQL 5.6、5.7、8.0
  • 目标库:包含 PolarDB MySQL、MySQL、RDS MySQL、ClickHouse、Elasticsearch、Kafka 等在内的 60+ 数据目标

二、TapData 高效同步教程:以 PolarDB MySQL → RDS MySQL 为例

更多详情,参见《TapData 帮助文档-连接数据源-云数据库 PolarDB MySQL》:
https://docs.tapdata.net/prerequisites/cloud-databases/polardb-mysql

完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加 PolarDB MySQL 数据连接(支持版本:PolarDB MySQL 5.6、5.7、8.0),后续可将其作为源或目标库来构建数据管道。这里我们将以 PolarDB MySQL 为数据源,RDS MySQL 为数据目标进行模拟演示。(*涉及工具版本为 TapData 本地部署版)

版本指路:

点击登录 TapData Cloud

申请试用 TapData 本地部署版

① 前提条件(作为源)

开启 Binlog

  • 必须开启 MySQL 的 binlog ,Tapdata 才能正常完成同步工作。
  • 级连删除(CASCADE DELETE),这类由数据库产生的删除不会记录在binlog内,所以不被支持。 修改 $MYSQL_HOME/mysql.cnf, 例如:

server_id = 223344 log_bin = mysql-bin expire_logs_days = 1 binlog_format = row binlog_row_image = full

配置解释:

  • server-id: 对于 MySQL 中的每个服务器和复制客户端必须是唯一的
  • binlog_format:必须设置为 row 或者 ROW
  • binlog_row_image:必须设置为 full
  • expire_logs_days:二进制日志文件保留的天数,到期会自动删除
  • log_bin:binlog 序列文件的基本名称
    重启 MySQL

/etc/inint.d/mysqld restart

验证 binlog 已启用,请在 mysql shell 执行以下命令

show variables like 'binlog_format';

输出的结果中,format value 应该是"ROW"
验证 binlog_row_image 参数的值是否为full:

show variables like 'binlog_row_image';

输出结果中,binlog_row_image value应该是"FULL"
创建MySQL账号
MySQL 以后,对密码加密的方式不同,请注意使用对应版本的方式,设置密码,否则会导致无法进行增量同步 使用以下命令,确认 supplemental logging 是否开启

3.3.1 5.x版本

create user 'username'@'localhost' identified by 'password';

3.3.2 8.x版本

// 创建用户 create user 'username'@'localhost' identified with mysql_native_password by 'password'; // 修改密码 alter user 'username'@'localhost' identified with mysql_native_password by 'password';

给 TapData 账号授权
对于某个数据库赋予select权限

GRANT SELECT, SHOW VIEW, CREATE ROUTINE, LOCK TABLES ON <DATABASE_NAME>.<TABLE_NAME> TO 'tapdata' IDENTIFIED BY 'password';

对于全局的权限

GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'tapdata' IDENTIFIED BY 'password';

约束说明
当从 MySQL 同步到其他异构数据库时,如果源 MySQL 存在表级联设置,因该级联触发产生的数据更新和删除不会传递到目标。如需要在目标端构建级联处理能力,可以视目标情况,通过触发器等手段来实现该类型的数据同步。

② 创建 PolarDB MySQL 的连接

  1. 进入 TapData 控制台,在左侧导航栏,单击连接管理
  2. 单击页面右侧的创建,在弹框中,搜索并选择 PolarDB。
  3. 在跳转到的页面,根据下述说明填写 PolarDB 连接信息:

  1. 单击连接测试,测试通过后单击保存

*提示:如提示连接测试失败,请根据页面提示进行修复。

③ 创建 RDS MySQL 的连接

  1. 参照 PolarDB 连接创建流程,完成 RDS MySQL 连接配置信息填写,添加数据目标:

  1. 测试 RDS MySQL 的连接:

④ 创建数据复制/开发任务

  1. 左侧导航栏点击数据复制,并点击右侧创建:

  1. 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标

  1. 单击源与目标节点,即可按需对二者进行设置:

  1. 保存任务

⑤ 任务启动与监控

  1. 启动任务,任务全量同步正常运行:

  1. 增量同步开启

以上,便是借助 TapData 快速实现 PolarDB MySQL 到 RDS MySQL 的全、增量同步的模拟教程。

后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase 等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。

< 上一篇 OceanBase

【推荐阅读】

  • 如何高效整合分散数据,构建统一的实时数据平台?
  • 流式处理 vs 批处理,新数据时代的数据处理技术该如何选择?
  • TapData 医疗美容行业数字化白皮书上线
  • 战略资讯 | TapData 牵手思想科技,开启数据管理新篇章!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlserver取消阻止表更改

😘宝子:除非不再醒来,除非太阳不再升起,不然都请你好好生活,挣扎着前进,开心的笑。(●◡●)

pbootcms 网站打开提示:未检测到您服务器环境的sqlite3数据库扩展...

pbootcms 网站打开提示:未检测到您服务器环境的sqlite3数据库扩展...按照提示信息操作,检查php.ini中是否已经开启sqlite3扩展。详细介绍->pbootcms提示错误信息 未检测到您服务器环境的sqlite3数据库扩展扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟…

Python网页应用开发神器fac 0.3.0全新版本发布

大家好我是费老师,在Python生态中,有很多以Python为主要开发语言,实现网页应用开发的框架,其中最为知名的有Dash、flet、streamlit、gradio、nicegui等。 如果综合考虑流行度、开发效率、开发自由度、相关生态成熟度、可拓展性、安全性等各方面的能力,Dash是其中天花板级别…

天线选择快速指导

《swra351b-DN035 -- Antenna Quick Guide (Rev. B).pdf》

pbootcms新手必读|安装需知|环境要求|快速部署|获取授权码|模板制作

环境要求服务器:Linux / Windows / Nginx / Apache / IIS PHP版本:不小于5.4,完美支持php7。推荐PHP5.6和PHP7.3 MYSQL版本:5.0以上。推荐使用5.5+快速部署1、将官网下载的压缩包里面所有文件和文件夹上传到你的网站根目录 (支持安装在二级目录)2、数据库默认采用的是sqlit…

pbootcms教程—设置的会话目录创建失败!

pbootcms教程&mdash;设置的会话目录创建失败!这个问题常见于宝塔面板,用户将pbootcms模板传到宝塔上,打开域名出现这个问题。解决方法:1、打开宝塔面板,左侧找到文件,找到对应的站点目录,如下图:2、按照下图进行设置,点确定,如果默认就是这样的设置,也要点下确定…

pbootcms模板自动清理runtime缓存

打开/apps/home/controller/ExtLabelController.php文件找到// 测试扩展单个标签 private function test() { $this->content = str_replace({pboot:userip}, get_user_ip(), $this->content); }}在它下面加入 // 自动会话清理脚本public function clean…

使用Github Action来拉取docker镜像

前提 只需一个github账号即可注意: 免费版 Action 每天能使用1小时,每个月33小时(基本上够用) 国内网络访问github网速并不稳定,但是用来应急还是可以的拉取逻辑GitHub Action 来拉取和打包镜像 从 github 上下载压缩包 上传到自己的服务器上 解压加载镜像到自己的服务器上…

zabbix“专家坐诊”第251期问答

问题一 Q:zabbix模板自带的监控项很多都不需要,也不用删除,就是怎么让他们都不展示出来A:禁用掉 Q:还是在的,我想要就看不见,不是不启用,想要效果跟删除一样,看不见,不会妨碍浏览,这些自带的模板很多都很废 A:是指标列表不想看到还是这个地方不想看到 问题二 Q:z…

使用一次sql语句,返回分页数据和总条数

日常搬砖,总少不了需要获取分页数据和总行数。 一直以来的实践是编码两次sql请求,分别拉分页数据和totolCount。 最近我在思考: 常规实践为什么不是 在一次sql请求中中执行多次sql查询或多次更新,显而易见的优势: ① 能显著减低“客户端和服务器之间的网络往返次数”,提高…

API 设计 实践

深度 | API 设计最佳实践的思考 https://mp.weixin.qq.com/s/qWrSyzJ54YEw8sLCxAEKlA深度 | API 设计最佳实践的思考 谷朴 阿里云开发者 2019年05月09日 08:10阿里妹导读:API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API…

关于并查集

关于冰茶姬关于冰茶姬 简述 冰茶姬是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。 顾名思义,冰茶姬支持两种操作:合并(Union):合并两个元素所属集合(合并对应的树)查询(Find):查询某个元素所属集…