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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 企业运维训练营之数据库原理与实践— RDS基础概念介绍—RDS基础概念介绍(中)

接上篇:/article/1225652?spm=a2c6h.13148508.setting.14.187d4f0efY6Nsuimage.png

 

云RDS数据库存储经历了从本地SSD盘到SSD云盘到ESSD云盘的发展历程。 ESSD云盘又经历了PL1、PL2、PL3的迭代,性能越来越好。未来,我们也在计划实现PL-X系列,能够做到与本地盘的IO延迟基本持平。

 

今年下半年,我们已经在推动SSD云盘下线,建议用户将SSD云盘的实例主动升级到ESC云盘,因为SSD云盘不支持在线扩容。

 

本地SSD盘的磁盘与数据库引擎部署在同一节点的同一台主机上。在所有存储类型中,其IO延迟最低,性能最好。做变配存储资源不足时,需要进行跨机迁移,迁移时间与存储大小相关。存储使用量越大,跨机迁移时间越长。而如果本地有资源,则变配耗时相对较短。如果不知道此次变配是本机变配还是跨机变配,可以提供工单咨询确认。

 

SSD云盘和ESSD云盘均采用分布式存储架构的弹性块存储设备,实现了计算节点与存储分离的架构,但会导致IO延迟增加。而ESSD云盘PL-X能够支持RDS、MySQL、PG与MariaDB在线升级、秒级扩容,SQL Server可低至分钟级,对业务无感。

 

本地盘增加只读实例时,需要拷贝全量数据,再追加增量的Binlog,所需时间较久。而在ESSD云盘上,增加一个只读节点仅需半个小时以内,相对于本地盘的时间大幅节省。备份方面,云盘只能做快照备份,无法下载快照备份文件,但可以下载物理备份文件用于本地恢复。

 

image.png

 

数据库存储着一个公司的核心数据,因此数据库安全至关重要。维护数据库安全可以分为事前防御与事后审计。

 

事前防御方面,首先,我们提供了数据库账号密码的防护。RDS数据库上的账号分为高权账号与普通账号。高权账号只能通过控制台或API的方式创建,它并不是普通数据库上的最高权限账号,比如,它并不等同于MySQL上的root@localhost。云上数据库的高权账号可以断开其他任意非内置账号的数据库连接或可以创建其他普通账号并对其授权。

 

但是在业务管控上建议仅将高权账号授予某一个人或某一个组管理,不应让过多人使用高权账号。比如实际业务上不建议使用高权账号,而是应创建普通账号,合理授权,按照最小化授权的方式使用。

 

白名单安全组定义了哪些IP或安全组内的ECS可以访问RDS,即定义了访问源。注意,需要避免白名单与安全组开放过大,导致变相地将RDS暴露在过多的客户端面前,造成安全隐患。比如在生产上,不建议将白名单设置为0.0.0.0/0,会造成访问没有限制。

 

在一些场景中比如ECS被黑,可能通过抓包分析程序所用的连接数据库的账号,分析数据库相关的SQL,通过这些特征提取导致数据库账号被暴力破解,或通过SQL注入的方式危害数据库的安全。通过SSL加密连接,可以保证程序到RDS之间的链路安全。但是需要注意开通SSL加密会造成RDS CPU资源开销的增加,而且需要定期更新证书。

 

在存储加密上,对云盘的实例可以使用SSD云盘存储加密,本地盘的实例可以开启TDE实现表级别的加密。存储加密可以保证即使数据备份泄露,他人也无法解密,保护了数据安全。

 

阿里云账号分为主账号与子账号,在管理云上数据库资源或其他资源时,主账号拥有全部账号的权限。保护好主账号后,可以在子账号上利用RAM授权,使特定的人管理特定的资源。比如DBA团队可以创建子账号,授予其管理RDS的权限等。

 

事后审计方面,云RDS数据库提供了SQL洞察日志的审计、云监控告警、控制台操作审计与日志管理的功能。SQL洞察可以审计所有SQL操作记录,适用于需要追溯SQL执行情况的场景,执行成功和失败的SQL都会被记录。但是需要注意当RDS实例本身出现了OOM或踩到bug发生crash,导致MySQL进程或PG进程异常退出,此时SQL还未来得及写入审计日志,因此该类SQL很可能不会被记录。

 

通过云监控告警,可以在CPU打满或发生HA时收到相关告警信息,及时介入。控制台操作审计主要审计控制台上的操作记录,针对主账号和子账号在控制台的操作信息。开通子账号时,如果为其分配了AK,则需要合理管控子账号。有些客户可能会将AK用于自动化的管理工作,将相关的代码上传到比如Git hub上,可能会被别有用心的人扫描到代码里使用的AK,导致AK泄露之后出现比如实例被删的情况。

 

在日志管理方面,云RDS数据库提供了比如错误日志、慢日志、SQL洞察日志、主备切换日志等能够了解实例运行情况的日志,帮助管理数据库。

 

image.png

 

云RDS数据库整体架构主要分为两条线。

 

? 其一,应用程序通过域名进行访问。

 

? 其二,通过WEB控制台或API接口发送指令给RDS完成相关操作。请求发送给后端消息中心,再发送给对应模块,对应模块获取到相关信息之后返回给客户端调用方。比如要通过控制台或API查看慢日志,将API请求发送给消息中心之后,消息中心会从日志系统里捞取相关时间段的日志信息,返回给客户端。

 

HA探测系统会定期探测后端部署在节点上实例的可用性。发现不可用或网络不可达且连续多次探测均如此时,就会下发相应的任务完成HA切换。在MySQL库下面的HA HealthCheck表会定期(一般为15s)往表里写入一条数据,探测数据库是否可写,如果不可写,则进行切换。如果个某节点的物理主机宕机或提交了大事务导致HA探测的语句无法完成binlog落盘,也会导致HA切换。因此,一般在生产业务中要避免大事务的操作。

 

在线迁移系统会定期检测,比如有一主一备两个实例,当备节点不可用时,会发起在线迁移,始终保证系统有一主一备两个实例能够提供高可用的能力。变配也是通过在线迁移系统完成。

 

备份系统会按照每个实例设置的备份频率,定期备份实例的数据。无论是快照备份还是物理备份,一般首先会选择备节点做备份。如果备节点主从延迟很大,则会选择主节点完成备份。

 

进行RDS MySQL备份往往在业务低峰期 ,而此时可能会同时进行运维操作,例如执行DDL变更操作可能会导致备份失败。因此,如果发现备份失败,可以主动尝试发起临时备份任务,以保证当天的备份成功。后续如果需要做快速恢复时,可以寻找最近时间点的备份文件。

 

通过以上一整套系统,可以保证RDS数据库的稳定性与安全性。

 

image.png

 

云数据库RDS的概览页面如上图所示,包含了该账号下RDS实例个数、即将过期个数以及已过期个数、每个地域上有哪些实例。页面上方为消息通知,右侧展示了繁忙实例、空闲实例以及近期重大功能发布。

 

image.png

 

上图为实例列表页面。如果遇到问题,可以将实例ID复制粘贴,提交相关工单反馈进行问题排查。

 

点击实例名称可进入实例详情页面。

 

image.png

 

上图为实例详情页面。

接下篇:/article/1225649?spm=a2c6h.13148508.setting.16.187d4f0efY6Nsu

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
19 0
|
1天前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
11 2
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
22 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
1天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
18 0
|
1天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
22 0
|
1天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
1天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
1天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。

推荐镜像

更多
http://www.vxiaotou.com