开发者学堂课程【关系型数据库 ACP 认证课程:RDS-云关系行数据库的解析与实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/927/detail/14628
RDS-云关系行数据库的解析与实践
三、RDS 的基本管理
(1)实例管理
即创建/删除/变配数据库的过程,包含:
①计费方式
②类型
③实例规格
有入门级和企业级等不同规格,其中入门级的配置比企业级的更低。
④网络类型
⑤地域/可用区
由于高可用版本有主从两个节点,所以需要选择主可用区。
⑥系列
⑦存储类型
⑧存储引擎
(2)库/账号管理
● 由于 RDS 拥有自身的数据库及数据库账号管理体系,使得用户无法直接使用命令进行数据库创建。
● 用户可以通过 RDS 管理控制台创建数据库,且数据库名称实例内唯一,实例间互不影响。
如图:
● 对于 MySQL 实例,最多可创建500个数据库
● 数据库账号管理可用于创建新的数据库账号,或者修改已有数据库账号的信息。
● RDS MySQL 实例支持两种数据库账号:高权限账号和普通账号,其中普通账号只有读权限和写权限,而高权账号虽然有创建普通账号和给普通账号赋权等权限,但是并不等于 ROOT 账号,但足以满足各种需求。
如图:
● 对于 MySQL 实例,每个实例最多可创建500个数据库账号
● 账号创建后,若账号类型无法切换,可以删除账号后重新创建同名账号
(3)如何连接 RDS 数据库
首先给一个 url 地址,把原来地址替换成 url ,然后进行以下步骤:
①确认是否满足内网访问的条件:
ECS 实例与 RDS 实例位于同一地域
ECS 实例与 RDS 实例的网络类型相同
②设置IP白名单(只有在白名单里的才能被放在 RDS 中):
通用白名单模式
高安全白名单模式
③连接 RDS 实例:可以通过原生命令行、第三方工具、程序编码、 DMS 等连接。
(4)参数管理
● RDS MySQL 为了保障服务可用性,没有开放部分重要参数,但为了满足不同的业务场景需求(如追求更高性能),RDS MySQL 提供各类系统参数模板,可以创建自定义参数模板,根据自己的业务场景,实现批量参数设置。
如图:
可以看到,上图包括可修改参数、参数修改历史、模板等可供选择,其中参数的修改包括修改参数的默认值、运行参数值、是否重启、参数值范围、参数描述等。
(5)监控管理
通过 RDS 可以直观的看到 CPU 和内存的监控情况,通过监控可以看到当前存在的问题,比如磁盘空间不足和 CPU 使用率过高等情况,其中如果 CPU 使用率过高完全是由于业务引起的,可以通过架构、实例规格升配去做实例的升级或者开启只读实例做读写分离等方式解决。
(6)安全管理
RDS 的安全管理主要分为三部分:
①事前
事前通过设置白名单(只要设置了白名单的 ECS 没有出错,就不会发生安全问题)和绑定 VRC来控制访问源
②事中
事中通过链路 SSL 和 TDE 来加密措施开启数据落盘加密,加密后,数据存在云盘并已加密,即前面提及的密钥管理,由于有加解密的操作,开启加密后效率会降低,以上操作对用户透明。
③事后
事后进行操作审计和数据库审计措施,其中数据库审计措施是指将数据库的操作记录下来,而在控制台对 RDS 做备份处理等操作是可以开启操作审计的。而业务层本身对数据的读写数据库的审计是由第二数据库来做的。
(7)可用性管理
①数据库 RDS 支持高可用切换功能。
②当主实例不可用时,会自动触发主备切换,将主实例和备实例进行互换,保障实例的高可用性。
③此外,您还可以手动切换主备实例。
主库和备库可以选择多可用区,多可用区的目的,可用区是有独立网络电力的数据中心,而且可用区与可用区之间有一个间隔,多可用区的作用是进行跨区级别容灾,避免意外发生。
四、RDS 的访问与存储
1.访问方式
如图:
ECS 先访问到 DNS 解析,再由一个地址访问 SLB ,然后到 RDS 运行,中间的代理过程可以省去,如果开启代理,则由代理转发至 RDS ,代理可以解决切换时的闪断问题。
2.数据库代理
RDS 数据库代理是位于数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的所有请求,具有高可用、高性能、可运维、简单易用等特点,同时提供自动读写分离、事务拆分、连接池等高级功能。
(1)代理有两种类型:
①共享代理:共享/争抢代理资源、不支持高级特性,所以已下线
已经下线,大家共享在一个池子中,会有资源争抢的情况效果不是很好,在有些高并发场景对数据库压力比较大时性能不好,所以不支持高级特性。
②独享代理:更好的稳定性、更好的隔离性、更好的性能、收费功能
如图是独享代理的一个开启页面:
3.存储类型
(1)本地 SSD 盘:
在 I/O 性能方面,I/O 延迟低,性能好。在规格变配灵活性方面,可选配置较多,存储容量也可单独调整。在弹性扩展能力方面,需要拷贝数据,可能需要几个小时。
(2)SSD 云盘:
在 I/O 性能方面,有额外的网络 I/O ,性能相对较差。在规格变配灵活性方面,可选配置较多,存储容量也可单独调整,在弹性扩展能力方面,分钟级。
(3)ESSD 云盘(推荐):
在 I/O 性能方面,相对 SSD 云盘有大幅度提升,最高能达到百万级别。在规格变配灵活性方面,可选配置较多,存储容量也可单独调整。在弹性扩展能力方面,分钟级。
在数据库而言推荐使用 ESSD 云盘,以为ESSD 云盘 I/O 最高能达到百万级别,可选的配置比较多,容量也可以单独调整,同时性能上有很大的提升。
4.存储引擎
● RDS for MySQL 提供了多种存储引擎,其中 InnoDB 最为常用
● 阿里云强烈推荐使用 InnoDB 存储引擎,不仅因为其具备更好的性能,而且由于 InnoDB 其自身良好的设计,能够更有效避免数据表损坏情况的发生。
(1)InnoDB 是 MySQL 的默认存储引擎,它提供了高可靠性和高性能,并具有以下主要优点:
①事务安全性(符合 ACID )
②MVCC(多版本并发控制)
③InnoDB 行级锁
④一致性非锁定读
⑤支持外键引用完整性约束
⑥大数据处理与优化
⑦支持不同存储引擎表的混合查询
⑧崩溃恢复
MySQL最常用的引擎为InnoDB,阿里云也推荐使用InnoDB引擎,因为InnoDB引擎不仅性能好,设计很好避免数据表损坏的发生。
5.实例类型
(1)只读实例
● 在对数据库有少量写请求,但有大量读请求的应用场景下(如淘宝业务),单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的费数教据库读取需求,增加应用的吞吐量。
如图:
● 只读实例采用 MyQL 的原生复制功能,将源数据库实例(以下简称主实例)的更改同步到所有相关的只读节点。根据 MySQL 内存大小:内存>=64GB 最多可建10个只读实例,内存<64G8最多可自5个只读实例。即不同数据库可以创建的只读实例的数量不同,只读节点采用单个物理节点的架构,只读节点 down 机后,阿里云承诺将在24小时内恢复。
(2)异地灾备实例
①对于数据可靠性有强需求的业务场景或是有监管需求的金融业务场景,RDS 提供异地灾备实例,帮助用户提升数据可靠性。
②RDS 通过数据传输服务(DTS)实现主实例和异地灾备实例之间的实时同步。
③主实例和灾备实例均搭建主备高可用架构,当主实例所在区域发生突发性自然灾害等状况,主实例和备实例均无法连接时,可将异地灾备实例切换为主实例,在应用端修改数据库连接地址后,即可快速恢复应用的业务访问。
④灾备实例可通过 DTS 管理控制台实现同步对象变更、同步速度设置、延迟报警等同步链路原生功能。
灾备实例还有以下功能特点:
①提供独立的数据库连接地址,由用户应用端自助控制连接。
②使用主备高可用架构。
③按量付费,即开即用、即停即止。
④提供独立的白名单配置、账号管理。
如图:
可以做异地容灾,在可用区,地域 A 和 B 都选用了主备高可用架构,它们之间通过 DTS 进行同步。
(3)只读实例、主备实例和灾备实例三者之间的关系
①只读实例和主备实例在同一地域,可以在不同可用区;备实例和主实例在同一个地域;灾备实例和主备实列在不同地或。
②只读实例可以根据需要创建最多10个;备实例数量是固定的1~2个,高可用版1个,三节点企业版(原金融版)2个;灾备实例是不同地域的一主一备。
③只读实例创建并设置读权重后就会持续提供服务;备实例和灾备实例在主实例正常运行时都不会提供服务。
详情可见下图:
(4)分析实例
● RDS MySQL 提供分析实例功能,可以将 RDS MySQL 主实例中的数据自动同步到 MySQL 分析实例中,解决 RDS MySQL 复杂分析查询卡顿问题,实现毫秒级针对万亿级数据进行即时的多维分析透视和业务探索。
如图:
五、操作演示
1.购买 RDS
购买 RDS ,计费方式可以选择包年包月或者按量付费,然后选择地域如杭州,类型如 MySQL、PolarDB、 SQLServer ,如选择 MySQL5.7,系列如基础版(基础版没有 SLA 所以推荐使用高可用版或三节点企业版)选项。
2.创建数据库
3.创建账号
4.使用 DMS 登录 RDS MySQL
5.创建表
6.参数演示