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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 企业运维训练营之数据库原理与实践— 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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
监控 NoSQL 数据建模
使用Apache Cassandra进行分布式数据库管理的技术实践
【6月更文挑战第5天】本文探讨了使用Apache Cassandra进行分布式数据库管理的技术实践。Cassandra是一款高性能、可扩展的NoSQL数据库,适合大规模、高并发场景。文章介绍了其高可扩展性、高性能、高可用性和灵活数据模型等核心特性,并详细阐述了环境准备、安装配置、数据建模与查询以及性能优化与监控的步骤。通过本文,读者可掌握Cassandra的运用,适应不断增长的数据需求。
|
14天前
|
缓存 监控 数据库
数据库优化实践
在应对电商平台数据库性能下降问题时,公司通过查询优化、硬件升级、索引调整、锁机制改进、数据库分区、读写分离及引入缓存等措施,显著提升了性能。实时监控和用户反馈显示,查询响应时间缩短,事务处理加快,用户体验和业务扩展能力均得到改善。这强调了数据库性能管理对数字化时代业务的重要性及持续优化的必要性。
|
14天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
71 2
|
16天前
|
存储 关系型数据库 MySQL
MySQL表分区的选择与实践小结
当面对百万或千万级数据量的表,即使有索引,查询速度也可能较慢。此时,可以采取分库、分表或分区策略来提升性能。分库分表涉及创建新数据库或表,可能需更改逻辑代码;
63 3
|
16天前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
189 1
|
17天前
|
存储 人工智能 数据库
【LangChain系列】第四篇:向量数据库与嵌入简介及实践
【5月更文挑战第18天】 本文介绍了构建聊天机器人和语义搜索的关键组件——向量存储和嵌入。首先,文章描述了工作流程,包括文档拆分、生成嵌入和存储在向量数据库中。接着,通过Python代码展示了如何设置环境并处理文档,以及如何创建和比较文本嵌入。向量存储部分,文章使用Chroma存储嵌入,并进行了相似性检索的演示。最后,讨论了故障模式,如重复文档和未捕获结构化信息的问题。整个博文中,作者强调了在实际应用中解决这些问题的重要性。
115 0
|
22天前
|
SQL 存储 关系型数据库
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!(下)
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!
108 2
|
22天前
|
SQL 关系型数据库 MySQL
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!(上)
必知的 MySQL 索引失效场景【包括实践验证】,别再踩坑了!
58 2
|
22天前
|
存储 Java 分布式数据库
【分布式计算框架】HBase数据库编程实践
【分布式计算框架】HBase数据库编程实践
25 1
|
2天前
|
Prometheus 监控 关系型数据库
数据库同步革命:MySQL GTID模式下主从配置的全面解析
数据库同步革命:MySQL GTID模式下主从配置的全面解析
10 0