首页 > 数据库 >使用NineData实现亿级别MySQL大表迁移

使用NineData实现亿级别MySQL大表迁移

时间:2023-08-17 15:00:58浏览次数:35  
标签:NineData 提供 MySQL 迁移 数据 大表

MySQL 作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和 DBA 对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高效、准确、稳定的大表迁移能力是非常有必要的。

1. 传统的迁移方案

目前,数据迁移主要分为逻辑迁移和物理迁移,逻辑迁移主要有 mysqldump、mysqlpump 和 load data,物理迁移主要有 XtraBackup。对于这类导入导出和拷贝文件的传统迁移方案,在大表迁移中会存在一些问题:

  • 需要停机,对于物理迁移,不能保障在线业务。

  • 性能差,对于逻辑迁移,单线程导出表。

  • 可靠性差,导出异常后,不支持断点,需要重新导出。

  • 运维性差,迁移期间,不能对导入导出进行暂停、限流等操作。

2. 领先的迁移方案

NineData 提供的数据复制同时包含了数据迁移和数据同步的能力,在不影响业务的前提下,提供了高效、稳定、可运维的大表迁移能力。对大表(单表 227G,行数 10 亿)迁移:NineData 约 30 分钟完成迁移,平均速率 124.2 MB/s,平均 534188 RPS。

通过对 MySQL 大表迁移的性能测试,和传统迁移比,NineData 数据迁移的优势有:

  • 简单易用:一分钟即可完成任务配置,并全自动化完成任务迁移。

  • 强劲性能:完善的智能分片、行级并发、动态攒批等核心技术,有效保证迁移性能。

  • 高可靠:结合新型断点、异常诊断及丰富的修复手段,对于迁移过程中可能出现软硬件故障,提供完善的容灾能力,大大提高了大表迁移的成功率。

通过上述优势,保证了 NineData 在大表迁移场景下的领先性。另外,NineData 还提供了对比功能,包含数据和结构的对比,以及全量、快速和不一致复检的对比方式,并且也支持不同的对比频率。在迁移或复制结束后,通过数据和结构对比,能有效的保障数据的一致性。

NineData 在提供强大迁移能力的同时,也保证了使用的简单性,只需要 1 分钟就能完成迁移任务的配置,实现完全自动化的数据迁移过程。下面我们来看下整个任务的配置过程:

迁移链路的配置

 

  1. 配置任务名称,选择要迁移的源和目标实例。

  2. 选择复制类型,数据迁移选择结构和全量复制(数据迁移)。

  3. 根据需要,选择合适的冲突处理策略。

  4. 点击下一步,进行迁移对象的选择。

选择迁移对象 

 

选择迁移对象:针对不同粒度选择迁移对象:实例、库、表、视图等。

 

 

配置映射和过滤规则:目标实例可以自定义迁移的库名、表名和按照过滤条件进行部分数据迁移,也可以针对表的列名进行映射和部分列迁移。

预检查

 

 

通过丰富的检查项,保证了迁移任务的稳定性及和数据的一致性。到此,我们就完成了一个高性能迁移任务的配置。

 

同时,为了提供更好的迁移体验,NineData 针对迁移过程提供了完善的观测、干预能力。其不但提供对象迁移的详细状态、进展、详情,还通过监控和日志透露后台线程的内部执行情况,帮助用户全方位追踪迁移进展。同时,还针对运行过程中可能出现的异常情况,提供基础诊断能力,及修复、跳过、移除等多种修复策略和迁移限流能力,让用户能够自主快速得诊断并修复链路,保障迁移稳定性。

 

3. 总结

NineData 提供的高效、快速、稳定的 MySQL 大表迁移能力,很好的补充了传统迁移方案的不足。当前,NineData 已经支持数十种常见数据库的迁移复制,同时,除了 SAAS 模式外,还提供了企业专属集群模式,满足企业最高的数据安全合规要求。目前,NineData 已在运营商、金融、制造业、地产、电商等多个行业完成大规模应用实践。如果您感兴趣的话,可以登录官网 https://www.ninedata.cloud/dbmigration,立即开始免费使用。

标签:NineData,提供,MySQL,迁移,数据,大表
From: https://www.cnblogs.com/ninedata/p/17637586.html

相关文章

  • docker mysql
    dockerpullmysql:8.0.16------------------------------------------------------------------------------------------------------------------------------------------------dockerrun\-p3306:3306\-eMYSQL_ROOT_PASSWORD=123456\-v/home/dock......
  • SSO单点登录(SpringSecurity OAuth2.0 redis mysql jwt)
    SSO单点登录什么是单点登录SSO(SingleSignOn)在多系统架构中,用户只需要一次登录就可以无需再次登录(比如你在打开淘宝之后点击里边的天猫)在以前我们的单系统中,用户如果登录多个服务需要多次登录,实现单点登录之后,可以实现一次登录,全部登录!一次注销,全部注销原理图用户......
  • mysql添加只读账号,virtualBox添加端口映射
    用root用户进入mysqlmysql-uroot-pusemysqlCREATEUSER‘test’@’localhost’IDENTIFIEDBY‘testmm'grantselecton*.*totest@"localhost"Identifiedby"testmm";添加端口转发点击设置弹出 添加端口转发,访问1022端口就是访问虚拟机22端口 附加其它......
  • 【Nest教程】连接MySQL数据库 -----转
      来自:https://cloud.tencent.com/developer/article/1774827本人测试这文章确实成功了,建议看上面链接的原文            对于一个WebAPI项目,数据库是必不可少的,Nest与数据库无关,允许您轻松地与任何SQL或NoSQL数据库集成。根据您的偏好,您有......
  • 记一次MySQL死锁问题排查
    事情的起因:我司有一款应用处于新旧系统切换阶段,新旧服务同时穿插运行,新服务不断迭代的同时来不断下线旧服务,其中有一个编辑客户信息的功能因为工作量太大,所以其中一部分内容是通过RPC的方式调用新服务的API进行保存的,然后在出现了一个神奇的问题,RPC接口频繁超时,于是我对RPC接口......
  • MySQL基本命令及基本操作
    MySQL数据库基本操作原创 Cloud研习社 Cloud研习社 2023-08-1210:33 发表于山东收录于合集#一站式教程274个#计算机248个#mysql8个#linux292个#云计算285个教程每周二、四、六更新基本操作有:查看有哪些数据库、查看有哪些表、创建数据库、创建表、查看表信息、......
  • mysql-查询库中所有表名称或者某一张表的所有字段名称
    --查询某一库中所有表的名称,SELECTa.TABLE_SCHEMA,a.TABLE_NAME,a.TABLE_COMMENTFROMinformation_schema.TABLESaWHEREa.table_type='BASETABLE'ANDa.TABLE_SCHEMA='<数据库名称>';--查询库中某一张表中的所有字段SELECTa.TABLE_SCHEMA,a.TABLE_NAME,a.TA......
  • 数据库连接工具例如navicat连接mysql报1045错误怎么解决
    问题描述:使用navicat连接数据库的时候,弹出1045错误,但是我的账户密码都是对的,查找了很多方法,只有下面的方法是有用的解决过程1.登录linux服务器中的mysql数据库,确保账户和密码无异常,登录命令如下://登录数据库mysql-uroot-p配置文件确保了给的账号相关信息没有问题后,我又查询......
  • MySQL面试题全解析:准备面试所需的关键知识点和实战经验
    MySQL有哪几种数据存储引擎?有什么区别?MySQL支持多种数据存储引擎,其中最常见的是MyISAM和InnoDB引擎。可以通过使用"showengines"命令查看MySQL支持的存储引擎。存储方式:MyISAM引擎将数据和索引分别存储在两个不同的文件中,一个是.MYD文件用于存储数据,一个是.MYI文件用于存储索......
  • MySQL事务
    ACID原子性(Atomicity)隔离性(Isolation)一致性(consistency)持久性(Durability)当把现实世界的状态转换映射到数据库世界时,持久性意味着该转换对应的数据库操作所修改的数据都应该在磁盘上保留下来,不论之后发生了什么事故,本次转换造成的影响都不应该被丢失掉事务​是一个......