传统数据库“上云”之路

  1. 云栖社区>
  2. 云栖大会>
  3. 博客>
  4. 正文

传统数据库“上云”之路

1993wang 2018-05-14 14:52:03 浏览2394

2018云栖大会南京峰会飞天技术汇专场上,阿里云高级产品专家萧少聪从准备、迁移效率和迁移后效果三个方面分享了传统数据库迁移到阿里云数据库及后续使用情况的全链路解决方案,针对主流数据库迁移到阿里云数据库的技术及实施过程进行了详细讲述。

数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!

直播视频回顾

以下为精彩视频内容整理:

阿里云数据库新功能

f882d247fece9a5ebc1800a917e2b4bd35639dbd

从2011年以来,阿里云数据库以高效迭代促进蓬勃发展,目前可以兼容市场主流关系型及非关系型数据库,同时还拥有多项数据库服务工具,都可以帮助用户更好的在数据库基础上解决业务问题。

双节点服务

841ba0da5bcb3530322d7b448661e6cf22932e69

阿里云数据库可以提供在两个不同可用区内,搭建起一个数据库集群。单这一项功能就为企业节约了很多设备投入成本,并且操作简单方便,只需在页面点击即可。

ec767968d4c693c27505205fe18290f79db6b55a

公司同时提供了不同地域级别的数据库集群,这项功能在阿里云数据库里面叫做容灾实例。通过容灾实例的搭建,实现到两地多中心概念。

只读实例与读写分离

a3ea2ba6073b263547c58ac005af428b49ba07fa

大家经常在工作中碰到这样的场景:双十一促销或者年终报表总结的时候,服务器出现卡顿。如何解决这样的问题?通过打开RDS上的只读节点可以达到这个需求,一个RDS最多可以申请10个节点去读取只读实例来满足用户需求。只读节点时按量进行收费的,用过之后释放即可。

efc64fc583cd02b0968717c0bb49f4f1c3e6bcc2

云数据库通过读写分离来达到只读实例使用方便。阿里云目前通过提供读写分离的DNS接口来进行拦截,其中设置Proxy层——如果是只读实例就只有查询功能,如果需要修改功能则进行增删改操作。程序员可以只修改部分连接串来达到想要的效果,把工作的时间更多的放到业务逻辑实现的方面去。

云数据库按需短期扩容

6bae4260c60187fafe116414dc418003f83f4615

双节点集群及只读实例与读写分离的设定,可以让阿里云数据库达到短期扩容的效果。用户可以根据需求选择短期扩容,去应对各项短期服务器增长。例如某公司真正需求为8核32G服务器,为了应对双十一活动需要开展弹性服务器功能。前期我们可以配合企业进行试错性升级测试,找到最合适的资源容量后预定。到达活动约定时间后云数据库扩容应对,活动结束之后工作人员自行释放资源。利用这种方式为公司节省了资源和成本,并且减少了DBA的工作难度,一劳多得。

数据库迁移方案选择

b218b442f01b1bfd3a4d1ebca4209337dabc5a83

上表是目前市场上各个主流数据库的原生方案及阿里云迁移工具的选择方案。阿里云提供两种方法:1.原生方案:DBA接受程度最高,容易实现,但是操作过程中会有停机。2.阿里云迁移工具:最短时间内实现数据库迁移,停机时间最短,操作有些难度。

OSS工具

4b889cde4b50f881ec0b0797289a5112fb705ec5

其中OSS工具为SQL Server数据库特有——使用SQL Server Management Studio生成备份数据,将备份文件上传到OSS,在云数据库SQL Server版控制台进行恢复。通过这种最传统的数据备份和恢复方法,实现了数据库迁移。

DTS原理及落地实施

f2ce25a5e16f8486073f7cec03969c2d56739d7e

DTS工具可以使得数据库迁移停机时间降低到分钟级别。上图表明DTS所支持的数据传输功能。全量数据库迁移和增量数据同步是所有数据库都支持的。DTS最开始把用户数据库做一个初始化的全量备份,然后开始增量传输数据以形成数据追赶,直到全部数据复制到云数据库后停机切换业务即可。

094cb4231b8cf03171831e03de5ec9c9c3d371d5

DTS数据迁移实施分为4个步骤:1.预检测,检测数据库是否符合云端迁移特性,如有错误会展示错误定位及修改意见,修改后继续;2.数据结构迁移;3.数据全量同步——将数据初始化后,DTS会持续的读原数据端日志文件,之后所有文件经过DTS Queue解析之后变成一种增量操作,源源不断的向目标库提交,直到两方数据库数据一致;4.停机实现应用切换。MySQL、SQL Server、PostgreSQL、MongoDB、Redis都是通过这种方式迁移数据库,同构数据库迁移都是非常方便的。

亚当原理及落地实施

1720932af46bea51cd989d02be2bb17fedc1c2f0

阿里云目前提供PPAS云数据库,可以兼容Oracle数据库,并提供亚当这个工具实现数据库迁移。亚当可以提供评估、验证、实施测评服务。

5fd82b4faf91d1ae8e7f6c34479f576a7b620ba2

在准备阶段,用户需要下载一个ADAM Agent,安装在用户Oracle这端,对Oracle一端进行内容收集。它会收集到所有Oracle上面运行过的sql语句,经过脱敏后得到数据库的架构和运行过程。阿里云拿到这些资料,会把它完整的恢复到PPAS数据库中进行运行,得知那些地方的sql语句运行不能通过,可以怎样修改。ADAM Agent是一个非常简单的信息采集器,单线程模式不会对生产模式Oracle产生任何负载,可以放心使用。

11d7aac37778e60bc78610b20cc4032ba9e37925

然后把采集到的数据传输到阿里云评估系统中,系统会按照采集到的信息,对整个Oracle数据库进行分析溯源。分析结果会非常详细的全面展示Oracle数据库的全貌并形成检测报告,达到数据迁移的条理性。

c7e220574ab4bd242137b8821379a221be1732e0

阿里云会对需要改造的sql语句进行详细说明,并且通过中间件会对底层后续的sql语句进行检测,保证用户可以成功使用阿里云服务器。

c433cf4db0cd2c3d5dbc813e5c1fd782d9814d6d

上图是做完数据验证后,亚当迁移数据库全过程。亚当系统借助特性,可以结合Oracle的Golden Gate实现数据的增量和全量,并且还支持30天内数据回流。就是说如果用户的业务切换到PPAS云数据库后,30天内PPAS上的数据会会写到你的原数据库上,保证用户在发现PPAS不能满足用户业务需求的时候可以回到原Oracle上,为用户的权益上了保险。

4f4360ac7911b65b7211d318acd2edcebca29a4c

数据迁移完成之后,怎样知道性能能否达到用户要求?阿里云服务器支持sql语句的双边对测。如果发现问题可以在PPAS上面找原因,看看需要修改的地方。逐行比对可以让用户在上线之前明确直到数据到底是不是可以承载上线压力,这样就不至于真正业务切换过来之后才发现故障问题所在。这样的双保险让用户更加的放心,到目前为止没有一个用户在用上PPAS之后再回到之前的Oracle,这也是阿里云的骄傲之处。

优化及监控

80c5637f4f92194af89c3122b15383f429643cfe

数据迁移到阿里云上面去并不是真正的高枕无忧了。阿里云也提供优化监控功能,在这里我们可以协助用户做慢SQL分析、实例空间分析、锁的资源占用,以及资源使用概览等一系列的监控,通过这些方式发现数据库的潜在问题。

b83af649f590f6b4191962a7e67efef60ef41327

上图是我们的图形数据库分析报告,当然也提供了一键诊断功能,让用户更清晰的查看到问题所在。

dd67513c1e4689043482b81fffbd38c0e08949c9

通过一键诊断,用户得到这样一个报告,并且给出修改意见。

4455fbbbcc4f62704980bb8cb32789e371fbcfd0

上图是每个sql语句的排序,当然排名在前的肯定是有问题的。我们给出的修改意见,是依赖阿里云甚至阿里巴巴这些年在数据库上的积累,提供到云端给所有用户服务。

希望大家通过演讲对阿里云有了具体的感知,也欢迎关注阿里云产品和合作。

本文由云栖志愿小组王晓慧整理编辑