企业运维训练营之数据库原理与实践— RDS基础概念介绍—RDS基础概念介绍(上)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 企业运维训练营之数据库原理与实践— RDS基础概念介绍—RDS基础概念介绍(上)

第一章 RDS基础概念介绍

 

一、 RDS基础概念介绍

 

image.png

 

云数据库RDS是Relation Database Service的简称,它是关系型数据库,也是OLTP类的数据库,是基于阿里云飞天分布式操作系统与SSD盘高性能存储的数据库,支持MySQL、PostgreSQL、SQLServer、MariaDB引擎。其中MySQL与PG经过深度自研的内核,相比于开源有一些独有的功能,比如AliSQL上提供了sequence引擎,可以作为自增值的替代方案;又比如大表的异步删除,可以避免引起实例性能抖动或夯掉的风险。

 

除了基础版本以外,RDS均提供了双机热备、数据多副本冗余、自动备份、性能监控、异地容灾、备份与恢复、主备库故障切换等功能,保证了云数据库的安全性、稳定性、可靠性。

 

相比于本地自建数据库,云上RDS数据库无需购买硬件、安装软件,具备开箱即用、低运维的特点;也不必担心硬件规划的问题,能够根据资源需要随时动态调整资源规格。针对MySQL、PostgreSQL、SQLServer、MariaDB引擎,也都做到了透明兼容,可直接迁移使用。

 

自动化运维方面,云RDS数据库提供了API/SDK功能,能够通过API/SDK完成自动化的管理与监控数据库的相关功能;能够通过DAS自动弹性伸缩来减少成本。另外,也可以利用DAS的异常诊断,及时发现数据库运行过程中出现的异常,并可针对异常问题进行自动分析限流、自动添加索引、判断索引添加效果等。

 

云RDS数据库是云上全托管数据库,在容灾、备份、恢复、监控、迁移等方面提供了全套解决方案。

 

容灾方面,购买RDS数据库时,可以选择多可用区部署的形态,可以提供机房级别的容灾能力。对于要求更高的场景,比如跨地域的容灾能力,可以基于DTS数据传输工具,搭建两个RDS实例之间的数据同步,提供跨地域的容灾能力。

 

备份方面,除了RDS实例本身提供的自动备份功能外,也有DBS数据备份功能、跨地域备份功能,可以满足额外的备份需求。

 

恢复方面,可以基于备份在控制台直接操作,恢复到某个备份集或某个时间点以应对恢复需求。

 

监控方面,RDS控制台提供了多个监控项目,比如性能监控指标,诸如CPU、QPS等;也提供了日志监控能力,比如错误日志、洞察日志,帮助审计数据库的运行情况。比如通过SQL洞察功能,可快速准确地掌握SQL在什么时间点开始执行、由哪个用户发起等信息。

 

迁移方面,通过DTS数据传输工具,可以支持同构与异构数据库之间的迁移。在实际业务场景中,经常会遇到以RDS MySQL作为关系型数据库满足日常业务需求,通过DTS数据传输工具将数据同步到比如ADB MySQL或Clickhouse等OLAP类的分析型数据库做报表分析操作。又比如,可以用DTS订阅任务订阅RDS MySQL、RDS PG的日志,使客户端消费相关日志完成业务解耦的需求。

 

云上RDS数据库能够让我们更加聚焦于业务本身的开发,减少运维管理的麻烦。

 

image.png

 

云RDS数据库包括4个系列,分别为基础版本、高可用版本、集群版本与三节点企业版本。每个版本支持的数据库引擎类型不同,适合的业务场景也不同,需要根据业务的特点合理选型。

 

基础版支持MySQL、PG、SQLServer引擎,是单节点部署、计算与存储分离的架构,使用了SSD云盘存储,因此,在备份方面只支持快照备份。另外,它不支持只读节点,无法提供读写分离的功能。因其为单节点的部署架构,因此当节点遇到意外宕机、执行重启或变配、升级版本操作时,会出现较长时间的不可用。因此基础版本不适用于生产环境中,一般只适用于测试环境。

 

高可用版本支持MySQL、PG、SQLServer、MariaDB四种引擎,采用一主一备的高可用架构,支持高可用的容灾切换。当主实例不可访问时,可以快速切换到备实例上。另外MySQL与PG也支持只读实例,可以通过添加只读实例实现读写分离,分担主实例的读请求压力。

 

集群版目前支持MySQL,SQLServer 2种引擎。MySQL引擎采用一主一备或一主二备的高可用性部署,所有备节点可以提供读访问,但是目前集群版本不支持创建只读实例,所以最多可以提供2个只读节点提供访问。SQLServer采用一主一备的高可用架构。备实例可以提供只读访问,也可以创建只读实例以实现读写分离的功能。高可用版本与集群版本的区别仅在于支持的引擎不同和备节点是否可以提供读请求访问。

 

三节点企业版只支持MySQL引擎,采用一主一备一日志的三节点架构部署。当主实例不可访问时,可快速切换到备实例上,实现快速恢复。需要注意,写入相关的操作时,必须保证至少两个节点同步到日志之后才可以完成事务的提交。因此业务保障上的要求为金融级别,目前三节点企业版即将下线,后续有集群版本替换相关安全保证。

 

无论是哪种系列,数据库引擎部署在云平台上,都是对计算资源、存储资源、网络资源创建实例,做相应的资源划分隔离。根据业务量的访问不同,可以灵活地对计算资源做弹性升降配。存储上,只有本地SSD盘才可以支持降低存储的操作,其他存储类型只支持升级存储容量,不支持降低。如果存储空间打满,也会导致实例被锁定,变为只读的状态。因此在业务上或实际生产中,需要注意配置存储的使用率告警,避免存储空间被打满。

 

另外,云RDS数据库也可以支持不同的引擎之间小版本与大版本的升级,社区版本的bug修复或引入新特性后,会通过内核小版本或大版本的发布做迭代。如果小版本太旧,也会主动推送相关升级提示,避免实例稳定性受到影响。

 

image.png

 

RDS实例规格包括共享规格、通用规格、独享规格。

 

共享型只支持SQLServer引擎。每个实例独享被分配到的内存与存储资源,与同一物理机上的其他共享规格实例共享CPU资源,因此可能存在CPU竞争。这适用于对成本有要求但是对稳定性要求较低,需要SQLServer高可用保障业务可用性的场景。

 

通用型支持四种引擎,分为本地盘与云盘。本地盘存在CPU的竞争关系,云盘实例存储资源不和CPU及内存绑定,可以灵活选配。云盘是On-ECS的形态,而ECS本身需要开销一部分内存。在今年6月份之前,实例的内存使用率上没有刨除系统本身开销的内存,因此会让客户误以为内存使用率没有达到百分之百却出现OOM的情况。对此,我们已经对RDS MySQL,RDS PostgreSQL内存在监控上做了修正。

 

通用型存在资源的复用,因此也会存在争抢。如果对业务稳定性要求高,则不建议采用共享型与通用型的实例。

 

独享型也支持四种引擎,完全独享CPU与内存,不会造成资源竞争。独享型适用于对性能稳定性要较求较高的场景。

 

每一种架构对于不同版本均提供了多种规格。

 

云盘的实例除了IOPS能力,还有IO带宽的限制。IO带宽又与存储空间大小相关,比如会按照存储的大小计算IO带宽的大小。IOPS打满或IO打满都会导致实例出现IO方面的瓶颈。IOPS方面,可以通过IOPS使用率进行观察。而针对IO带宽打满目前在前端还未有相关的监控能力,如有需要可提交工单咨询确认。

 

image.png

 

网络方面分为经典网络与专有网络。

 

经典网络采用三层隔离,共用的基础网络上不同用户之间的网络相通。RDS实例只能依靠白名单与账号密码做安全防护,安全性较低。因此,我们推荐最好使用VPC专有网络,目前VPC专有网络也不再支持从专有网络切换到经典网络,如果大家还有经典网络的RDS实例,建议大家可以考虑升级到专有网络。

 

VPC网络也就是虚拟专业网络,采用两层隔离。相对于经典网络,具有更高的安全性与灵活性。不同的VPC之间为相对隔离的环境,可以根据不同的业务类型,按产品划分到不同的VPC网络以保证网络的安全性。

 

在RDS网络拓扑上,当一台ECS部署了程序发起连接时,首先会通过DNS解析RDS的域名,域名会解析到RDS前端的SLB上,再由SLB转发给后端的RDS主实例。如果RDS实例开通了读写分离功能,则会存在代理,SLB会先转发给代理,再由代理转发给后端的RDS 主库或从库,实现读写分离的架功能。

 

购买多可用区实例时需要注意,ECS、SLB与RDS主库可能会跨地域,比如ECS在可用区y,SLB与RDS主库在可用区x,属于跨机房。该种情况下,由于物理距离的增加,会导致网络延迟增加,3ms以内的延迟为正常范围,对网络延迟特别敏感的业务需要考虑这种跨可用区带来的影响。

 

程序访问时需要使用域名地址,不建议使用域名解析生成的VIP进行访问。比如实例变配可能会导致底层的VIP发生变化,如果依然使用域名访问,可能会出现访问连接不到的情况,因此在生产上建议使用域名访问,而且需要保证应用上具有自动重连的机制,比如RDS主库与从库发生了HA切换,此时SLB会将重新解析的请求转发给之前的从库,之前的连接会断开。如果ECS上部署的程序无法自动重连,会导致业务影响时长被拉长。另外,尽量不要对域名做本地解析,底层VIP变化之后此时访问就会出现问题。


接下篇:https://developer.aliyun.com/article/new/supportservice?spm=a2c6h.12873639.article-detail.4.a5317d6dMmaTam&publish=1225650#/?_k=zimvb8

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
18 0
|
3天前
|
SQL 关系型数据库 数据库
数据库空间之谜:彻底解决RDS for SQL Server的空间难题
【8月更文挑战第16天】在管理阿里云RDS for SQL Server时,合理排查与解决空间问题是确保数据库性能稳定的关键。常见问题包括数据文件增长、日志文件膨胀及索引碎片累积。利用SQL Server的动态管理视图(DMV)可有效监测文件使用情况、日志空间及索引碎片化程度。例如,使用`sp_spaceused`检查文件使用量,`sys.dm_db_log_space_usage`监控日志空间,`sys.dm_db_index_physical_stats`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
|
5天前
|
关系型数据库 数据库 数据安全/隐私保护
"告别繁琐!Python大神揭秘:如何一键定制阿里云RDS备份策略,让数据安全与效率并肩飞,轻松玩转云端数据库!"
【8月更文挑战第14天】在云计算时代,数据库安全至关重要。阿里云RDS提供自动备份,但标准策略难以适应所有场景。传统手动备份灵活性差、管理成本高且恢复效率低。本文对比手动备份,介绍使用Python自定义阿里云RDS备份策略的方法,实现动态调整备份频率、集中管理和智能决策,提升备份效率与数据安全性。示例代码演示如何创建自动备份任务。通过自动化与智能化备份管理,支持企业数字化转型。
14 2
|
5天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
7天前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
|
3天前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
|
3天前
|
关系型数据库 MySQL 数据库
探究数据库开源协议:PostgreSQL vs MySQL
探究数据库开源协议:PostgreSQL vs MySQL
|
4天前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
12 0
|
4天前
|
安全 关系型数据库 MySQL
如何在 MySQL 中导入和导出数据库以及重置 root 密码
如何在 MySQL 中导入和导出数据库以及重置 root 密码
14 0
|
4天前
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
8 0

热门文章

最新文章