传统应用层逻辑分库DB迁移阿里云DRDS+RDS分布式数据库

简介: 随着互联网快速发展,我们的结构化关系数据库在高并发、海量数据的情况下面临单机扩展性问题,首先是单机数据库容量瓶颈,单机数据库在业务高速增长的情况下依赖硬件升级也会到达天花板,并且使用成本变得非常高,而且扩展性的复杂性也是比较高,传统数据库扩容往往意味着服务中断,很难做到业务无感知或者少感知。

随着互联网快速发展,我们的结构化关系数据库在高并发、海量数据的情况下面临单机扩展性问题,首先是单机数据库容量瓶颈,单机数据库在业务高速增长的情况下依赖硬件升级也会到达天花板,并且使用成本变得非常高,而且扩展性的复杂性也是比较高,传统数据库扩容往往意味着服务中断,很难做到业务无感知或者少感知。

    通过数据水平切换来现实分库可以帮助提升数据库整体性能、横向扩展性,切分后有效的降低了单台机器的访问负载,同时最大限度的降低了数据库服务节点宕机后的损失。

    

传统应用业务层逻辑或组件分库实现方式

8947d2a7aac0f0c67547674d0b1bcab3234307bc

                                应用和数据库按业务地域水平拆分     

 26a154bd9b1b4b32a402bb55710a6cd8e9b9bc46

                                应用JDBC驱动层组件封装实现水平拆分

 

传统模式的分库我们看以看到有把系统应用及数据库按业务属性(比如城市、区域、类型等)水平拆分为多个独立分系统,通过在接入层做路由;另外就是在应用通过封装JDBC Driver组件来实现访问分库,类似于通过MySQL的JDBC驱动访问MySQL。传统模式的分库方式虽然使用简单实用容易上手,但是版本难以控制/问题难以追踪排除,并且DB连接仍然和传统数据库一样无法收敛。

 

阿里云DRDS+RDS分布式数据库功能及优势

042267be6f48a9fb6787a06b64f0ab0bc6619caf

基于阿里云DRDS+RDS实现的分布式数据库数据读写存储集群化,不受单机限制,业务使用的连接数也无限制,DRDS中间件服务节点及后端RDS存储服务点都可以支持横向和纵向升级扩展,支持多种拆分模式规则,实现数据水平拆分;兼容 MySQL 协议和大部分 MySQL SQL 语法,无业务侵入式使用读写分离,提供全面的运维和监控能力:

     分库分表:支持 RDS/MySQL 的分库分表,在创建分布式数据库后,只需选择拆分键,DRDS 就可以按照拆分键生成拆分规则,实现数据水平拆分。
透明读写分离:通过使用 RDS 只读实例或者 MySQL 备机实现读写分离,帮助应用解决事务、只读实例或者备机挂掉、指定主备访问等细节问题,对应用无侵入,在 DRDS 控制台即可完成读写分离相关操作。
数据存储平滑扩容:当出现数据存储容量和访问量瓶颈时,DRDS 支持在线存储容量扩展,扩容无需应用改造,扩容进度支持可视化跟踪
服务升降配:DRDS 实例可以通过改变资源数量实现服务能力的弹性扩展。
分布式运维指令集:DRDS 提供独有分布式数据库运维指令集,如 SHOW SLOW、TRACE、SHOW NODE 等指令,快速发现和定位问题。
全局唯一数字序列:DRDS 支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。
数据库账号权限体系:DRDS 支持类单机 MySQL 账号和权限体系,确保不同角色使用的账号操作安全。
分布式事务:DRDS 结合分布式事务套件 GTS,可以支持分布式事务,保证分布式数据库数据一致性。
监控报警:DRDS 支持对核心资源指标和数据库实例指标的实时监控和报警,如实例 CPU、网络 IO、活跃线程等,实时发现资源和性能瓶颈。

 

   

数据迁移-多分库DB数据迁移到DRDS+RDS分布式单个逻辑库

     目前阿里云提供数据迁移工具DTS或数据集成等产品,另外数据集成开源版Datax可以下载部署支持更灵活的方式;

     数据传输(数据传输(Data Transmission)是阿里云提供的一种支持RDBMS(关系型数据库)、NoSQL、OLAP等多种数据源之间数据交互的数据服务。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力。通过数据传输可实现不停服数据迁移、数据异地灾备、跨境数据同步、缓存更新策略等多种业务应用场景)是阿里云提供的一种支持RDBMS(关系型数据库)、NoSQL、OLAP等多种数据源之间数据交互的数据服务。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力。通过数据传输可实现不停服数据迁移、数据异地灾备、跨境数据同步、缓存更新策略等多种业务应用场景

Mysql到DRDS数据迁移指导手册: https://help.aliyun.com/document_detail/48470.html

 

数据集成是稳定高效、弹性伸缩的数据同步平台,提供丰富的异构数据源之间数据高速稳定的数据移动及同步能力。丰富的数据源支持:文本存储(FTP/SFTP/OSS/多媒体文件 等)、数据库(RDS/DRDS/MySQL/PostgreSQL 等)、NoSQL(Memcache/Redis/MongoDB/HBase 等)、大数据(MaxCompute/ AnalyticDB/HDFS 等) 、MPP数据库(HybridDB for MySQL等)

迁移工具

部署方式

迁移方式

优势

DTS

PAAS云服务

全量+增量

不停服迁移/白屏化操作

数据集成

PAAS云服务

全量

支持数据库类型丰富/白屏化操作/同步任务管理

Datax

自建部署

全量

灵活,可满足复杂数据迁移场景

 

  

1.     对于传统分库方式往DRDS+RDS的数据迁移,分库数比较少/要求不停服的情况下可以使用DTS,主要是因为每个源分库需要创建一个数据迁移任务,如果分库数较多,那么创建迁移任务的工作量也是很大的;另外对于目标数据源结构变化大,需要源数据库多表合并jion迁移到目标库的场景不适应DTS,可以使用数据集成

2.     分库数较多和需要源数据库多表合并jion迁移到目标库,比如几十上百分库数的,建议使用数据集成或datax来迁移数据;但不支持增量迁移,要实现增量迁移的需要源表有insert或update时间戳

目录
相关文章
|
12月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1858 1
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
12月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
关系型数据库 MySQL 数据库
MySQL数据库上云迁移
本文介绍了将数据库迁移到RDS for Mysql的两种主要方法:停服迁移和不停服迁移。停服迁移适合可短暂中断服务的场景,通过mysqldump或DTS完成;不停服迁移适用于需保持业务连续性的场景,推荐使用DTS实现结构、全量及增量数据迁移。文中详细列出了每种方法的具体操作步骤,帮助企业根据需求选择合适的迁移方案。
474 1
MySQL数据库上云迁移
|
关系型数据库 MySQL Java
【YashanDB知识库】Kettle迁移MySQL到YashanDB
本文介绍了使用Kettle将MySQL数据库中的中文数据迁移到YashanDB的方法,解决因YMP不支持Latin1字符集导致的乱码问题。提供了Windows和Linux两种环境下的操作步骤,包括配置JAVA环境、解压作业包、设置数据库连接(MySQLInput与YashanOutput)、修改表列表配置文件及运行迁移任务。Windows环境支持图形界面便于调试,Linux环境网络性能更优。通过详细的操作指南,确保数据迁移成功并可重试无冲突。
|
SQL 关系型数据库 MySQL
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB

推荐镜像

更多