云数据库RDS产品简介

中信云服务团队发表于:2017年05月18日 14:48:32

阿里云关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,RDS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS(Postgre Plus Advanced server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

阿里云数据库 MySQL 版

MySQL 是全球最受欢迎的开源数据库,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用。

Web2.0 时代,风靡全网的社区论坛软件系统 Discuz 和博客平台 Wordpress 均基于 MySQL 实现底层架构。Web3.0 时代,阿里巴巴、Facebook、Google 等大型互联网公司都采用更为灵活的 MySQL 构建了成熟的大规模数据库集群。

阿里云数据库 MySQL 版基于 Alibaba 的 MySQL 源码分支,经过双 11 高并发、大数据量的考验,拥有优良的性能和吞吐量。除此之外,阿里云数据库 MySQL 版还拥有经过优化的读写分离、数据压缩、智能调优等高级功能。

阿里云数据库 SQL Server 版

SQL Server 是发行最早的商用数据库产品之一,作为 Windows 平台(IIS + .NET + SQL Server)中的重要一环,支撑着大量的企业应用。SQL Server 自带的 Management Studio 管理软件内置了大量图形工具和丰富的脚本编辑器。您通过可视化界面即可快速上手各种数据库操作。

阿里云数据库 SQL Server 版不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的 License 费用,您无需再额外支出 License 费用。

阿里云数据库 PostgreSQL 版

PostgreSQL 是全球最先进的开源数据库。作为学院派关系型数据库管理系统的鼻祖,它的优点主要集中在对 SQL 规范的完整实现以及丰富多样的数据类型支持,包括JSON 数据、IP 数据和几何数据等,而这些数据类型大部分商业数据库都不支持。

除了完美支持事务、子查询、多版本控制(MVCC)、数据完整性检查等特性外,阿里云数据库 PostgreSQL 版还集成了高可用和备份恢复等重要功能,减轻您的运维压力。

阿里云数据库 PPAS 版

PPAS(Postgres Plus Advanced Server)是一个稳定、安全且可扩展的企业级关系型数据库,基于全球最先进的开源数据库 PostgreSQL,并在性能、应用方案和兼容性等方面进行了增强,提供直接运行 Oracle 应用的能力。您可以在 PPAS 上稳定地运行各种企业应用,同时得到更高性价比的服务。

阿里云数据库 PPAS 版集成了账号管理、资源监控、备份恢复和安全控制等功能,并将持续地更新完善。

云数据库RDS系统架构

数据链路服务

阿里云数据库提供全数据链路服务,包括 DNS、负载均衡、Proxy 等。因为 RDS 使用原生的 DB Engine,对数据库的操作高度类似,基本没有学习成本。另外,阿里云数据库提供 DMS 服务,极大的方便了用户访问使用数据库。

DNS

DNS 模块提供域名到 IP 的动态解析功能,以便规避 RDS 实例 IP 地址改变带来的影响。在连接池中设置域名后,即使对应的IP地址发生了变化,仍然可以正常访问 RDS 实例。

例如,某 RDS 实例的域名为 test.rds.aliyun.com,对应的 IP 地址为 10.10.10.1。某程序连接池中设置为 test.rds.aliyun.com 或 10.10.10.1 都可以正常访问 RDS 实例。

一旦该 RDS 实例发生了可用区迁移或者版本升级后,IP 地址可能变为 10.10.10.2。如果程序连接池中设置的是域名 test.rds.aliyun.com,则仍然可以正常访问 RDS 实例。但是如果程序连接池中设置的是IP地址 10.10.10.1,就无法访问 RDS 实例了。

负载均衡

负载均衡 模块提供实例 IP 地址(包括内网 IP 和外网 IP),以便屏蔽物理服务器变化带来的影响。

例如,某 RDS 实例的内网 IP 地址为 10.1.1.1,对应的 Proxy 或者 DB Engine 运行在 192.168.0.1 上。在正常情况下,负载均衡 模块会将访问 10.1.1.1 的流量重定向到 192.168.0.1 上。当 192.168.0.1 发生了故障,处于热备状态的 192.168.0.2 接替了 192.168.0.1 的工作。此时 负载均衡 模块会将访问 10.1.1.1 的流量重定向到 192.168.0.2 上,RDS 实例仍旧正常提供服务。

Proxy

Proxy 模块提供数据路由、流量探测和会话保持等功能。

数据路由功能:支持大数据场景下的分布式复杂查询聚合和相应的容量管理。

流量探测功能:降低 SQL 注入的风险,在必要情况下支持 SQL 日志的回溯。

会话保持功能:解决故障场景下的数据库连接中断问题。

DB Engine

RDS 全面支持主流的数据库协议,具体情况如下表所示:

数据库类型 版本

MySQL 5.1(Deprecated),5.5,5.6

SQL Server 2008 R2,2012

PostgreSQL 9.4

PPAS 9.3(高度兼容 Oracle)

DMS

DMS(Data Management Service)是一个访问管理云端数据的 Web 服务,提供了数据管理、对象管理、数据流转和实例管理等功能。

DMS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS 等数据源。

高可用服务

高可用服务由 Detection、Repair、Notice 等模块组成,主要保障数据链路服务的可用性,除此之外还负责处理数据库内部的异常。

另外,RDS 还通过迁移到支持多可用区的地域和采用适当的高可用策略,提升 RDS 的高可用服务。

Detection

Detection 模块负责检测 DB Engine 的主节点和备节点是否提供了正常的服务。通过间隔为 8~10 秒的心跳信息,HA 节点可以轻易获得主节点的健康情况,结合备节点的健康情况和其他 HA 节点的心跳信息,Detection 模块可以排除网络抖动等异常引入的误判风险,在 30 秒内完成异常切换操作。

Repair

Repair 模块负责维护 DB Engine 的主节点和备节点之间的复制关系,还会修复主节点或者备节点在日常运行中出现的错误。

例如:

主备复制异常断开的自动修复

主备节点表级别损坏的自动修复

主备节点 Crash 的现场保存和自动修复

Notice

Notice 模块负责将主备节点的状态变动通知到 负载均衡 或者 Proxy,保证用户访问正确的节点。

例如:Detection 模块发现主节点异常,并通知 Repair 模块进行修复。Repair 模块进行了尝试后无法修复主节点,通知 Notice 进行流量切换。Notice 模块将切换请求转发至 负载均衡 或者Proxy,此时用户流量全部指向备节点。与此同时,Repair 在别的物理服务器上重建了新的备节点,并将变动同步给 Detection 模块。Detection 模块开始重新检测实例的健康状态。

多可用区

多可用区是在单可用区的级别上,将同一地域的多个单可用区组合成的物理区域。相对于单可用区 RDS 实例,多可用区 RDS 实例可以承受更高级别的灾难。

例如,单可用区 RDS 实例可以承受服务器和机架级别的故障,而多可用区 RDS 实例可以承受机房级别的故障。

目前多可用区 RDS 不额外收取任何费用,在已开通多可用区地域的用户可以直接购买多可用区 RDS 实例,也可以通过跨可用区迁移将单可用区 RDS 实例转化成多可用区 RDS 实例。

注意: 因为多可用区之间存在一定的网络延迟,因此多可用区 RDS 实例在采用半同步数据复制方案的时候,对于单个更新的响应时间会比单可用区实例长。这种情况最好通过提高并发量的方式来实现整体吞吐量的提高。

高可用策略

高可用策略是根据用户自身业务的特点,采用服务优先级和数据复制方式之间的不同组合,以组合出适合自身业务特点的高可用策略。

服务优先级有以下两个级别:

RTO(Recovery Time Objective)优先:数据库应该尽快恢复服务,即可用时间最长。对于数据库在线时间要求比较高的用户应该使用 RTO 优先策略。

RPO(Recovery Point Objective)优先:数据库应该尽可能保障数据的可靠性,即数据丢失量最少。对于数据一致性要求比较高的用户应该使用 RPO 优先策略。

数据复制方式有以下三种方式:

异步复制(Async):应用发起更新(含增加、删除、修改操作)请求,Master 完成相应操作后立即响应应用,Master 向 Slave 异步复制数据。因此异步复制方式下, Slave 不可用不影响主库上的操作,而 Master 不可用有较小概率会引起数据不一致。

强同步复制(Sync):应用发起更新(含增加、删除、修改操作)请求,Master 完成操作后向 Slave 复制数据,Slave 接收到数据后向 Master 返回成功信息,Master 接到 Slave 的反馈后再响应应用。Master 向 Slave 复制数据是同步进行的,因此 Slave 不可用会影响 Master 上的操作,而 Master 不可用不会引起数据不一致。

半同步复制(Semi-Sync):正常情况下数据复制方式采用强同步复制方式,当 Master 向 Slave 复制数据出现异常的时候(Slave 不可用或者双节点间的网络异常),Master 会暂停对应用的响应,直到复制方式超时退化成异步复制。如果允许应用在此时更新数据,则 Master 不可用会引起数据不一致。当双节点间的数据复制恢复正常(Slave 恢复或者网络恢复),异步复制会恢复成强同步复制。恢复成强同步复制的时间取决于半同步复制的实现方式,阿里云数据库 MySQL5.5 版和 MySQL5.6 版有所不同。

用户可以根据自身业务特点,选择服务优先级和数据复制方式的不同组合方式,提高可用性。


中信云服务团队