近日,阿里云推出RDS只读实例,将满足大量的数据库读取工作负载,帮助用户应对数据库读取压力,实现读取能力的弹性扩展。目前,RDS只读实例属于公测阶段,用户可登陆阿里云官网申请免费使用。
阿里云RDS产品经理王义成表示,阿里云RDS只读实例不但适用于专业的DBA,也非常适用于“小白客户”,备份设置、参数修改、阈值报警等数据库常用应用都是图形化操作,对于不精通数据库的用户也可以“零门槛”使用。
数据库应用一般分为读、写两种类型的请求,当数据库压力较大时,读写请求都会集中到单个节点,无法满足用户的需求,甚至会对主流程业务造成影响。为解决用户对数据库大量读取需求,阿里云推出了RDS只读实例,其以用户的RDS主实例为基础,在同一地域内为用户独立配置的数据库实例与主实例进行数据同步,分担用户数据库的读请求,以满足大量的数据库读取负载。
王义成告诉记者,RDS实例采用主备架构,RDS在支持只读实例后,只读实例将挂载在主节点上,实例的备节点以及只读实例均利用MySQL的原生复制同步主节点的增量数据。
RDS只读实例的使用条件
目前,一个RDS主实例最多可以创建5个只读实例,只读实例的配置大小可与主实例不一致,并且可以根据业务需求,随时升降只读实例规格,整个过程对用户完全透明。此外,RDS只读实例不需要维护账号与数据库,全部通过主实例实现同步。目前,RDS提供近20个系统性能的监控视图,如磁盘容量、IOPS、连接数、CPU利用率、网络流量等,用户可以轻松查看实例的负载。同时,RDS提供多种优化建议,如存储引擎检查、主键检查、大表检查、索引偏多、缺失索引等,用户可以根据优化建议并结合自身的应用来对数据库进行优化。
即日起至2014年10月22日,RDS只读实例处于公测阶段,但对于使用RDS只读实例的用户还是有一定条件的限制。首先是地域的限制,目前RDS只读实例只对杭州地域的用户开放,后续也会在北京、香港、青岛等节点陆续开放;第二,在数据库版本上,目前只支持MySQL 5.6,王义成表示,MySQL 5.6之前的版本在主实例down机后重新选取主实例的时候存在数据丢失的风险(详情参见:http://help.aliyun.com/doc/view/13738436.html?spm=0.0.0.0.B60M35),而MySQL 5.6修复了该问题后,阿里云推出了基于MySQL5.6版本的只读实例。由于在阿里云的用户中,使用MySQL实例的占绝大部分,因此,RDS只读实例也是率先支持MySQL数据库,未来针对SQL Server阿里云也会推出只读实例。
RDS只读实例的创建方法与收费模式
用户使用RDS只读实例,需要先拥有一台阿里云RDS,然后基于RDS主实例购买只读实例。创建一个空的只读实例需要5-10分钟,之后,将主实例的物理备份覆盖到只读实例中,耗时取决于主实例的数据大小;***,只读实例同步创建过程中主实例的增量数据,用户可通过控制台进行管理。
需要注意的是,此次推出的RDS只读实例并不采用包年包月的收费模式,而是更加灵活的采用按小时付费的收费模式,根据用户使用的内存、硬盘存储空间以及公网传输流出部分的流量三个指标收取费用,用户可根据业务的实际需求,调整只读实例的配置,方便使用。此外,RDS只读实例的开通和释放也比较灵活,没有时间限制。对于服务保障,RDS只读实例承诺99%的SLA,并且承诺宕机后24小时之内恢复,若阿里云没有达到服务质量,将会根据宕机时间进行百倍赔偿。
注意事项
对于使用RDS只读实例的用户,还有几点需要注意:
一、由于RDS架构是基于主节点进行MySQL Binlog同步的,因此用户在开通RDS只读实例之前,需将数据库升级到MySQL 5.6版本,并且将应用程序在MySQL 5.6版本的数据库中完整的运行一遍;在主实例(A)升级版本前,***做一下兼容性测试,或者新建一个实例(B),将数据从A实例复制到B实例,然后在B实例上面生成只读实例;
二、用户在购买RDS只读实例前,需要在24小时内进行一次全量备份,以减少只读实例搭建时间;
三、由于只读实例自身限制,只读实例不支持数据库管理、账号管理、数据迁移、数据恢复等功能,用户可以在主实例进行操作,系统自动同步到只读实例;
四、由于用户需求不同,RDS只读实例不会自动帮助用户做读写分离,只读实例使用单独域名,用户需根据业务需求,自行选择哪些请求发往只读实例;
五、RDS只读实例目前最多支持五个节点,五个节点的负载均衡用户自行保证;
六、只读实例的规格配置不要太小,建议大于等于主实例配置;此外,由于只读实例的设计是单节点,没有主备,因此用户需购买多个只读实例来完成高可用目标。
王义成表示,只读实例适用于读取压力较大的业务,例如基于OLTP的电商类应用,需要查看产品信息以及评论的请求较多时,适合通过只读实例来满足这些需求;此外,对于交友类的SNS应用,查看状态或记录都是基于读取的请求,都可以尝试使用只读实例。