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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 企业运维训练营之数据库原理与实践— 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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
110 2
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 索引优化与慢查询优化:原理与实践
通过本文的介绍,希望您能够深入理解MySQL索引优化与慢查询优化的原理和实践方法,并在实际项目中灵活运用这些技术,提升数据库的整体性能。
101 5
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维在企业IT管理中的应用与实践####
本文深入探讨了智能化运维(AIOps)的核心技术原理,通过对比传统运维模式,揭示了AIOps如何利用大数据、机器学习等先进技术提升故障预测准确性、优化资源分配及自动化处理流程。同时,文章详细阐述了智能化运维平台的实施步骤,包括数据收集与分析、模型训练与部署、以及持续监控与优化,旨在为企业IT部门提供一套切实可行的智能化转型路径。最后,通过几个典型应用案例,如某大型电商平台的智能告警系统和金融企业的自动化故障排查流程,直观展示了智能化运维在实际业务场景中的显著成效,强调了其在提升运维效率、降低运营成本方面的关键作用。 ####
54 4
|
2月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
2月前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
80 2
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
195 3
|
2月前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
79 1
|
1月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
41 0
|
3月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
111 5
Mysql(3)—数据库相关概念及工作原理

热门文章

最新文章