阿里云关系型数据库RDS(Relational Database Service)版包含MySQL、SQLServer、PostgreSQL和PPAS 四种存储引擎,您可以方便、快捷地创建出适合自己应用场景的数据库实例。

阿里云关系型数据库RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

云数据库MySQL版

云数据库MySQL版基于阿里巴巴的MySQL源码分支,经过双十一高并发、大数据量的考验,拥有优良的性能和吞吐量。云数据库MySQL版支持实例管理、帐号管理、数据库管理、设置实例白名单、备份恢复、数据透明加密以及迁移数据等基本功能。除此之外还提供如下高级功能:

•只读实例:在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,云数据库MySQL 5.6版的实例支持只读实例,利用只读实例满足大量的数据库读取需求,以此增加应用的吞吐量。

•读写分离:读写分离功能是在只读实例的基础上,额外提供了一个读写分离地址,联动主实例及其下的所有只读实例,实现了自动的读写分离链路。应用程序只需连接同一个读写分离地址进行数据读取及写入操作,读写分离程序会自动将写入请求发往主实例,而将读取请求按照用户设置的权重发往各个只读实例。用户只需通过添加只读实例的个数,即可不断扩展系统的处理能力,应用程序上无需做任何修改。

•CloudDBA数据库性能优化:针对SQL语句的性能、CPU使用率、IOPS使用率、内存使用率、磁盘空间使用率、连接数、锁信息、热点表等,CloudDBA提供了智能的诊断及优化功能,能最大限度发现数据库存在的或潜在的健康问题。CloudDBA的诊断基于单个实例,该诊断会提供问题详情及相应的解决方案,可为您管理实例运行状况带来极大的便利。

•数据压缩:云数据库MySQL 5.6版支持通过TokuDB存储引擎压缩数据。经过大量测试表明,数据表从InnoDB存储引擎转到TokuDB存储引擎后,数据量可以减少80%到90%,即2T的数据量能压缩到400G甚至更低。除了数据压缩外,TokuDB存储引擎还支持事务和在线DDL操作,可以很好兼容运行于MyISAM或InnoDB存储引擎上的应用。

云数据库SQL Server版

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

云数据库SQL Server版支持实例管理、帐号管理、数据库管理、设置实例白名单、备份恢复、数据透明加密以及迁移数据等基本功能。

云数据库PostgreSQL版

PostgreSQL是全球最先进的开源数据库,它的优点主要集中在对SQL规范的完整实现以及丰富多样的数据类型支持,包括JSON数据、IP数据和几何数据等。除了完美支持事务、子查询、多版本控制(MVCC)、数据完整性检查等特性外,阿里云数据库PostgreSQL版还集成了高可用和备份恢复等重要功能,减轻您的运维压力。

云数据库PostgreSQL版支持实例管理、帐号管理、数据库管理、设置实例白名单、备份恢复以及迁移数据等基本功能。

云数据库PPAS版

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

阿里云数据库PPAS版集成了实例管理、帐号管理、数据库管理、设置实例白名单、备份恢复以及迁移数据等基本功能。

即开即用

您可以通过API进行RDS规格定制,创建后RDS实时生产出目标实例。

按需升级

随着数据库压力和数据存储量的变化,您可以灵活调整实例规格,且升级期间RDS不会中断数据链路服务。

透明兼容

RDS与原生数据库引擎的使用方法一致,您无需二次学习,上手即用。另外RDS兼容您现有的程序和工具。使用通用的数据导入导出工具即可将数据迁移到RDS,迁移过程中的人力开销非常低。

管理便捷

阿里云负责RDS的日常维护和管理,包括但不限于软硬件故障处理、数据库补丁更新等工作,保障RDS运转正常。您也可自行通过阿里云控制台完成数据库的增加、删除、重启、备份、恢复等管理操作。

2.2高性能

参数优化

所有RDS实例的参数都是经过多年的生产实践优化而得,在RDS实例的生命周期内,我们持续对其进行优化,确保RDS一直基于最佳实践在运行。

针对您的应用场景特点,RDS会锁定效率低下的SQL语句并提出优化建议,以便您优化业务代码。

当您使用外网连接和访问RDS实例时,可能会遭受DDoS攻击。当RDS安全体系认为您的实例正在遭受DDoS攻击时,会首先启动流量清洗的功能,如果流量清洗无法抵御攻击或者攻击达到黑洞阈值时,将会进行黑洞处理。

流量清洗和黑洞处理的方法及触发条件如下:

流量清洗

只针对外网流入流量进行清洗,处于流量清洗状态的RDS实例可正常访问。流量清洗的触发和结束由系统自动完成,单个RDS实例满足以下任一条件即触发流量清洗:

PPS(Package Per Second)达到3万;

BPS(Bits Per Second)达到180Mb;

每秒新建并发连接达到1万;

激活并发连接数达到1万;

非激活并发连接数达到10万;

黑洞处理

只针对外网流入流量进行黑洞处理,处于黑洞状态的RDS实例不可被外网访问,此时应用程序通常也处于不可用状态。黑洞处理是保证RDS整体服务可用性的一种手段。

黑洞触发条件如下:

BPS(Bits Per Second)达到2GB;

流量清洗无效;

黑洞结束条件为:黑洞在2.5小时后自动解除;

建议您通过内网访问RDS实例,可以使RDS实例免受DDoS攻击的风险。

您可以设置允许访问RDS的IP地址,指定之外的IP地址将被拒绝访问。每个账号只能看到、操作自己的数据库。

2.3.3系统安全

RDS处于多层防火墙的保护之下,可以有力地抗击各种恶意攻击,保证数据的安全。RDS服务器不允许直接登录,只开放特定的数据库服务所需要的端口。RDS服务器不允许主动向外发起连接,只能接受被动访问。

2.3.4TDE加密

透明数据加密(Transparent Data Encryption,简称TDE)可以对实例数据文件执行实时I/O加密和解密。数据在写入磁盘之前会进行加密,从磁盘读入内存时会进行解密。TDE不会增加数据文件的大小。开发人员无需更改任何应用程序,即可使用TDE功能。

2.4高可靠性

双机热备

RDS采用热备架构,物理服务器出现故障后服务秒级完成切换,整个切换过程对应用透明。

多副本冗余

RDS服务器中的数据构建于RAID之上,数据备份存储在OSS上。

数据备份

RDS提供自动备份的机制,您可以自行选择备份周期,也可以根据自身业务特点随时发起临时备份。

数据恢复

支持按备份集和指定时间点来创建克隆实例恢复数据,数据验证无误后即可将数据迁回RDS主实例,从而完成数据回溯。

云数据库RDS版的系统架构如下:

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

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模块提供数据路由、流量探测和会话保持等功能。

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

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

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

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

5.6(含只读实例)

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

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

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

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

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

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

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

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

高可用策略

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

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

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

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恢复或者网络恢复),异步复制会恢复成强同步复制。

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

备份恢复服务主要提供数据的离线备份、转储和恢复。

备份模块负责将主备节点上面的数据和日志压缩和上传。RDS默认将备份上传到OSS中,在特定场景下还支持将备份文件转储到更加廉价和持久的归档存储上。在备节点正常运作的情况下,备份总是在备节点上面发起,以避免对主节点提供的服务带来冲击;在备节点不可用或者损坏的情况下,备份模块会通过主节点创建备份。

恢复模块负责将OSS上面的备份文件恢复到目标节点上。

回滚主节点功能:您发起数据相关的误操作后可以通过回滚功能按时间点恢复数据。

修复备节点功能:在备节点出现不可修复的故障时自动新建备节点来降低风险。

创建只读实例功能:通过备份来创建只读实例。

转储模块负责备份文件的上传、转储和下载。目前备份数据全部上传至OSS进行存储,您可以根据需要获取临时链接来下载。在某些特定场景下,转储模块支持将OSS上面的备份文件转储至归档存储来提供更长时间和更低费用的离线存储。

云数据库提供物理层、网络层、应用层等多方位的监控服务,保证业务可用性。

Service模块负责服务级别的状态跟踪,监控负载均衡、OSS、归档存储和日志服务等RDS依赖的其他云产品是否正常,包括功能和响应时间等。对RDS内部的服务,Service也会通过日志来判定是否正常运作。

Network模块负责网络层面的状态跟踪,包括ECS与RDS之间的连通性监控,RDS物理机之间的连通性监控,路由器和交换机的丢包率监控。

OS模块负责硬件和OS内核层面的状态跟踪,包括:

硬件检修:不断检测CPU、内存、主板、存储等设备的工作状态,预判是否会发生故障,并提前进行自动报修。

OS内核监控:跟踪数据库的所有调用,并从内核态分析调用缓慢或者出错的原因。

Instance模块负责RDS实例级别的信息采集,包括:

实例的可用信息;

实例的容量和性能指标;

实例的SQL执行记录;

调度服务由Resource模块完成,主要提供资源调配服务。

Resource模块主要负责RDS底层资源的分配和整合,对您而言就是实例的开通和迁移。例如,您通过RDS控制台或者API创建实例,Resource模块会计算出最适合的物理服务器来承载流量。RDS实例迁移所需的底层资源也由Resource负责分配和整合。在经过长时间的实例创建、删除和迁移后,Resource模块会计算资源碎片化程度,并定期发起资源整合以提高服务承载量。

4.5 迁移服务

迁移服务主要帮助您把数据从本地数据库迁移到阿里云数据库,或者把阿里云数据库的一个实例迁移到另一实例中。云数据库提供了DTS(Data Transmission Service)工具,方便您快速迁移数据库。

DTS是一个云上的数据传输服务,能快速的将本地数据库或者RDS中的实例迁移到另一个RDS实例中。目前DTS支持MySQL、SQL Server和PostgreSQL三种数据库。

DTS还提供了三种迁移模式,分别为结构迁移、全量迁移和增量迁移。

结构迁移

DTS会将迁移对象的结构定义迁移到目标实例,目前支持结构迁移的对象有表、视图、触发器、存储过程和存储函数。

全量迁移

DTS会将源数据库迁移对象已有数据全部迁移到目标实例中。(在全量迁移过程中,为了保证数据一致性,无主键的非事务表会被锁定;锁定期间这些表无法写入,锁定时长依赖于这些表的数据量大小;在这些无主键非事务表迁移完成后,锁才会释放。)

增量迁移

DTS会将迁移过程中数据变更同步到目标实例。(如果迁移期间进行了DDL操作,这些结构变更不会同步到目标实例。)

RDS支持搭配云数据库Memcache版、云数据库Redis版和对象存储OSS等存储产品使用,适用于多样化存储的场景,如下图:

缓存数据持久化

RDS可以和云数据库Memcache版和云数据库Redis版搭配使用,组成高吞吐、低延迟的存储解决方案。与RDS相比,云数据库缓存产品有两个特性:

响应速度快,云数据库Memcache版和云数据库Redis版请求的时延通常在几毫秒以内。

缓存区能够支持比RDS更高的QPS(每秒处理请求数)。

多结构数据存储

OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。RDS可以和OSS搭配使用,组成多类型数据存储解决方案。例如,当业务场景为论坛时,RDS搭配OSS使用,注册用户的图像、帖子内容的图像等资源存储在OSS中,以减少RDS的存储压力。

阿里云数据库MySQL版支持直接挂载只读实例,分担主实例读取的压力。MySQL版数据库的主实例和只读实例都具有独立的连接地址,当您开启读写分离功能后,系统就会额外提供一个读写分离地址,联动主实例及其下的所有只读实例,实现了自动的读写分离。应用程序只需连接同一个读写分离地址进行数据读取及写入操作,读写分离模块会自动将写入请求发往主实例,而将读取请求按照您设置的权重发往各个只读实例。您只需通过添加只读实例的个数,即可不断扩展系统的处理能力,应用程序上无需做任何修改, 如下图:

开放数据处理服务又称大数据计算服务(MaxCompute,原名ODPS),可服务于批量结构化数据的存储和计算,提供海量数据仓库的解决方案以及针对大数据的分析建模服务。

通过数据集成服务,可将RDS数据导入MaxCompute,实现大规模的数据计算,如下图:

阿里云河南合作伙伴&金冠同利

客户咨询电话:/15515585371

技术服务电话:/17737502756