企业运维之数据库原理与实践.pdf
《企业运维之数据库原理与实践.pdf》由会员分享,可在线阅读,更多相关《企业运维之数据库原理与实践.pdf(159页珍藏版)》请在咨信网上搜索。
1、封面页(此页面将由下图全覆盖,此为编辑稿中的示意,将在终稿 PDF 版中做更新)目录 第一章 RDS 基础概念介绍.5 一、RDS 基础概念介绍.6 二、Q&A.22 第二章 AliSQL 和读写分离基本原理.24 一、AliSQL.25 二、读写分离.32 三、实例管理.37 四、Q&A.56 第三章 数据管理 DMS.57 一、企业级数据库管理痛点.58 二、数据管理 DMS 概述.59 三、DMS 解决方案.60 四、实验:如何快速连接云数据库 RDS MySQL.72 第四章 RDS 常见问题排除及 DAS 自动弹性伸缩.87 一、RDS 常见问题排除及 DAS 自动弹性伸缩.88 二
2、、实验:RDS MySQL 大促场景下的智能化弹性.111 三、Q&A.115 第五章 数据库 DAS 简介和备份上云方案.117 一、性能诊断与优化.118 二、数据上云.128 三、Q&A.141 第六章 云数据库备份与恢复.142 一、数据库备份恢复介绍.143 二、数据库备份恢复原理.145 三、云上备份恢复能力与场景.154 四、备份恢复实战.157 第一章RDS基础概念介绍分享人:张涛(敬茗)第一章 RDS 基础概念介绍 6 第一章 RDS 基础概念介绍 一、RDS 基础概念介绍 云数据库 RDS 是 Relation Database Service 的简称,它是关系型数据库,也
3、是 OLTP类的数据库,是基于阿里云飞天分布式操作系统与 SSD 盘高性能存储的数据库,支持 MySQL、PostgreSQL、SQLServer、MariaDB 引擎。其中 MySQL 与 PG 经过深度自研的内核,相比于开源有一些独有的功能,比如AliSQL上提供了sequence引擎,可以作为自增值的替代方案;又比如大表的异步删除,可以避免引起实例性能抖动或夯掉的风险。除了基础版本以外,RDS 均提供了双机热备、数据多副本冗余、自动备份、性能监控、异地容灾、备份与恢复、主备库故障切换等功能,保证了云数据库的安全性、稳定性、可靠性。相比于本地自建数据库,云上 RDS 数据库无需购买硬件、安
4、装软件,具备开箱即用、低运维的特点;也不必担心硬件规划的问题,能够根据资源需要随时动态调整资源规格。针对 MySQL、PostgreSQL、SQLServer、MariaDB 引擎,也都做到了透明兼容,可直接迁移使用。自动化运维方面,云 RDS 数据库提供了 API/SDK 功能,能够通过 API/SDK 完成自动化的管理与监控数据库的相关功能;能够通过 DAS 自动弹性伸缩来减少成本。另 第一章 RDS 基础概念介绍 7 外,也可以利用 DAS 的异常诊断,及时发现数据库运行过程中出现的异常,并可针对异常问题进行自动分析限流、自动添加索引、判断索引添加效果等。云 RDS 数据库是云上全托管数
5、据库,在容灾、备份、恢复、监控、迁移等方面提供了全套解决方案。容灾方面,购买 RDS 数据库时,可以选择多可用区部署的形态,可以提供机房级别的容灾能力。对于要求更高的场景,比如跨地域的容灾能力,可以基于 DTS 数据传输工具,搭建两个 RDS 实例之间的数据同步,提供跨地域的容灾能力。备份方面,除了 RDS 实例本身提供的自动备份功能外,也有 DBS 数据备份功能、跨地域备份功能,可以满足额外的备份需求。恢复方面,可以基于备份在控制台直接操作,恢复到某个备份集或某个时间点以应对恢复需求。监控方面,RDS 控制台提供了多个监控项目,比如性能监控指标,诸如 CPU、QPS等;也提供了日志监控能力,
6、比如错误日志、洞察日志,帮助审计数据库的运行情况。比如通过 SQL 洞察功能,可快速准确地掌握 SQL 在什么时间点开始执行、由哪个用户发起等信息。迁移方面,通过 DTS 数据传输工具,可以支持同构与异构数据库之间的迁移。在实际业务场景中,经常会遇到以 RDS MySQL 作为关系型数据库满足日常业务需求,通过 DTS 数据传输工具将数据同步到比如 ADB MySQL 或 Clickhouse 等 OLAP 类的分析型数据库做报表分析操作。又比如,可以用 DTS 订阅任务订阅 RDS MySQL、RDS PG 的日志,使客户端消费相关日志完成业务解耦的需求。云上 RDS 数据库能够让我们更加聚
7、焦于业务本身的开发,减少运维管理的麻烦。第一章 RDS 基础概念介绍 8 云 RDS 数据库包括 4 个系列,分别为基础版本、高可用版本、集群版本与三节点企业版本。每个版本支持的数据库引擎类型不同,适合的业务场景也不同,需要根据业务的特点合理选型。基础版支持 MySQL、PG、SQLServer 引擎,是单节点部署、计算与存储分离的架构,使用了 SSD 云盘存储,因此,在备份方面只支持快照备份。另外,它不支持只读节点,无法提供读写分离的功能。因其为单节点的部署架构,因此当节点遇到意外宕机、执行重启或变配、升级版本操作时,会出现较长时间的不可用。因此基础版本不适用于生产环境中,一般只适用于测试环
8、境。高可用版本支持 MySQL、PG、SQLServer、MariaDB 四种引擎,采用一主一备的高可用架构,支持高可用的容灾切换。当主实例不可访问时,可以快速切换到备实例上。另外 MySQL 与 PG 也支持只读实例,可以通过添加只读实例实现读写分离,分担主实例的读请求压力。集群版目前支持 MySQL,SQLServer 2 种引擎。MySQL 引擎采用一主一备或一主二备的高可用性部署,所有备节点可以提供读访问,但是目前集群版本不支持创建只读实例,所以最多可以提供 2 个只读节点提供访问。SQLServer 采用一主一备的高可用架构。备实例可以提供只读访问,也可以创建只读实例以实现读写分离的
9、功能。第一章 RDS 基础概念介绍 9 高可用版本与集群版本的区别仅在于支持的引擎不同和备节点是否可以提供读请求访问。三节点企业版只支持 MySQL 引擎,采用一主一备一日志的三节点架构部署。当主实例不可访问时,可快速切换到备实例上,实现快速恢复。需要注意,写入相关的操作时,必须保证至少两个节点同步到日志之后才可以完成事务的提交。因此业务保障上的要求为金融级别,目前三节点企业版即将下线,后续有集群版本替换相关安全保证。无论是哪种系列,数据库引擎部署在云平台上,都是对计算资源、存储资源、网络资源创建实例,做相应的资源划分隔离。根据业务量的访问不同,可以灵活地对计算资源做弹性升降配。存储上,只有本
10、地 SSD 盘才可以支持降低存储的操作,其他存储类型只支持升级存储容量,不支持降低。如果存储空间打满,也会导致实例被锁定,变为只读的状态。因此在业务上或实际生产中,需要注意配置存储的使用率告警,避免存储空间被打满。另外,云 RDS 数据库也可以支持不同的引擎之间小版本与大版本的升级,社区版本的 bug 修复或引入新特性后,会通过内核小版本或大版本的发布做迭代。如果小版本太旧,也会主动推送相关升级提示,避免实例稳定性受到影响。第一章 RDS 基础概念介绍 10 RDS 实例规格包括共享规格、通用规格、独享规格。共享型只支持 SQLServer 引擎。每个实例独享被分配到的内存与存储资源,与同一物
11、理机上的其他共享规格实例共享 CPU 资源,因此可能存在 CPU 竞争。这适用于对成本有要求但是对稳定性要求较低,需要 SQLServer 高可用保障业务可用性的场景。通用型支持四种引擎,分为本地盘与云盘。本地盘存在 CPU 的竞争关系,云盘实例存储资源不和 CPU 及内存绑定,可以灵活选配。云盘是 On-ECS 的形态,而 ECS 本身需要开销一部分内存。在今年 6 月份之前,实例的内存使用率上没有刨除系统本身开销的内存,因此会让客户误以为内存使用率没有达到百分之百却出现 OOM 的情况。对此,我们已经对 RDS MySQL,RDS PostgreSQL 内存在监控上做了修正。通用型存在资源
12、的复用,因此也会存在争抢。如果对业务稳定性要求高,则不建议采用共享型与通用型的实例。独享型也支持四种引擎,完全独享 CPU 与内存,不会造成资源竞争。独享型适用于对性能稳定性要较求较高的场景。每一种架构对于不同版本均提供了多种规格。云盘的实例除了 IOPS 能力,还有 IO 带宽的限制。IO 带宽又与存储空间大小相关,比如会按照存储的大小计算 IO 带宽的大小。IOPS 打满或 IO 打满都会导致实例出现IO 方面的瓶颈。IOPS 方面,可以通过 IOPS 使用率进行观察。而针对 IO 带宽打满目前在前端还未有相关的监控能力,如有需要可提交工单咨询确认。第一章 RDS 基础概念介绍 11 网络
13、方面分为经典网络与专有网络。经典网络采用三层隔离,共用的基础网络上不同用户之间的网络相通。RDS 实例只能依靠白名单与账号密码做安全防护,安全性较低。因此,我们推荐最好使用 VPC专有网络,目前 VPC 专有网络也不再支持从专有网络切换到经典网络,如果大家还有经典网络的 RDS 实例,建议大家可以考虑升级到专有网络。VPC 网络也就是虚拟专业网络,采用两层隔离。相对于经典网络,具有更高的安全性与灵活性。不同的 VPC 之间为相对隔离的环境,可以根据不同的业务类型,按产品划分到不同的 VPC 网络以保证网络的安全性。在 RDS 网络拓扑上,当一台 ECS 部署了程序发起连接时,首先会通过 DNS
14、 解析 RDS的域名,域名会解析到 RDS 前端的 SLB 上,再由 SLB 转发给后端的 RDS 主实例。如果 RDS 实例开通了读写分离功能,则会存在代理,SLB 会先转发给代理,再由代理转发给后端的 RDS 主库或从库,实现读写分离的架功能。购买多可用区实例时需要注意,ECS、SLB 与 RDS 主库可能会跨地域,比如 ECS 在可用区 y,SLB 与 RDS 主库在可用区 x,属于跨机房。该种情况下,由于物理距离的增加,会导致网络延迟增加,3ms 以内的延迟为正常范围,对网络延迟特别敏感的业务需要考虑这种跨可用区带来的影响。第一章 RDS 基础概念介绍 12 程序访问时需要使用域名地址
15、,不建议使用域名解析生成的 VIP 进行访问。比如实例变配可能会导致底层的 VIP 发生变化,如果依然使用域名访问,可能会出现访问连接不到的情况,因此在生产上建议使用域名访问,而且需要保证应用上具有自动重连的机制,比如 RDS 主库与从库发生了 HA 切换,此时 SLB 会将重新解析的请求转发给之前的从库,之前的连接会断开。如果 ECS 上部署的程序无法自动重连,会导致业务影响时长被拉长。另外,尽量不要对域名做本地解析,底层 VIP 变化之后此时访问就会出现问题。云 RDS 数据库存储经历了从本地 SSD 盘到 SSD 云盘到 ESSD 云盘的发展历程。ESSD 云盘又经历了 PL1、PL2、
16、PL3 的迭代,性能越来越好。未来,我们也在计划实现 PL-X 系列,能够做到与本地盘的 IO 延迟基本持平。今年下半年,我们已经在推动 SSD 云盘下线,建议用户将 SSD 云盘的实例主动升级到 ESC 云盘,因为 SSD 云盘不支持在线扩容。本地 SSD 盘的磁盘与数据库引擎部署在同一节点的同一台主机上。在所有存储类型中,其 IO 延迟最低,性能最好。做变配存储资源不足时,需要进行跨机迁移,迁移时间与存储大小相关。存储使用量越大,跨机迁移时间越长。而如果本地有资源,第一章 RDS 基础概念介绍 13 则变配耗时相对较短。如果不知道此次变配是本机变配还是跨机变配,可以提供工单咨询确认。SSD
17、 云盘和 ESSD 云盘均采用分布式存储架构的弹性块存储设备,实现了计算节点与存储分离的架构,但会导致 IO 延迟增加。而 ESSD 云盘 PL-X 能够支持 RDS、MySQL、PG 与 MariaDB 在线升级、秒级扩容,SQL Server 可低至分钟级,对业务无感。本地盘增加只读实例时,需要拷贝全量数据,再追加增量的 Binlog,所需时间较久。而在 ESSD 云盘上,增加一个只读节点仅需半个小时以内,相对于本地盘的时间大幅节省。备份方面,云盘只能做快照备份,无法下载快照备份文件,但可以下载物理备份文件用于本地恢复。数据库存储着一个公司的核心数据,因此数据库安全至关重要。维护数据库安全
18、可以分为事前防御与事后审计。事前防御方面,首先,我们提供了数据库账号密码的防护。RDS 数据库上的账号分为高权账号与普通账号。高权账号只能通过控制台或 API 的方式创建,它并不是普通数据库上的最高权限账号,比如,它并不等同于 MySQL 上的 rootlocalhost。第一章 RDS 基础概念介绍 14 云上数据库的高权账号可以断开其他任意非内置账号的数据库连接或可以创建其他普通账号并对其授权。但是在业务管控上建议仅将高权账号授予某一个人或某一个组管理,不应让过多人使用高权账号。比如实际业务上不建议使用高权账号,而是应创建普通账号,合理授权,按照最小化授权的方式使用。白名单安全组定义了哪些
19、 IP 或安全组内的 ECS 可以访问 RDS,即定义了访问源。注意,需要避免白名单与安全组开放过大,导致变相地将 RDS 暴露在过多的客户端面前,造成安全隐患。比如在生产上,不建议将白名单设置为 0.0.0.0/0,会造成访问没有限制。在一些场景中比如 ECS 被黑,可能通过抓包分析程序所用的连接数据库的账号,分析数据库相关的 SQL,通过这些特征提取导致数据库账号被暴力破解,或通过 SQL注入的方式危害数据库的安全。通过 SSL 加密连接,可以保证程序到 RDS 之间的链路安全。但是需要注意开通 SSL 加密会造成 RDS CPU 资源开销的增加,而且需要定期更新证书。在存储加密上,对云盘
20、的实例可以使用 SSD 云盘存储加密,本地盘的实例可以开启TDE 实现表级别的加密。存储加密可以保证即使数据备份泄露,他人也无法解密,保护了数据安全。阿里云账号分为主账号与子账号,在管理云上数据库资源或其他资源时,主账号拥有全部账号的权限。保护好主账号后,可以在子账号上利用 RAM 授权,使特定的人管理特定的资源。比如 DBA 团队可以创建子账号,授予其管理 RDS 的权限等。事后审计方面,云 RDS 数据库提供了 SQL 洞察日志的审计、云监控告警、控制台操作审计与日志管理的功能。SQL 洞察可以审计所有 SQL 操作记录,适用于需要追溯SQL 执行情况的场景,执行成功和失败的 SQL 都会
21、被记录。但是需要注意当 RDS 实例本身出现了 OOM 或踩到 bug 发生 crash,导致 MySQL 进程或 PG 进程异常退出,此时 SQL 还未来得及写入审计日志,因此该类 SQL 很可能不会被记录。第一章 RDS 基础概念介绍 15 通过云监控告警,可以在 CPU 打满或发生 HA 时收到相关告警信息,及时介入。控制台操作审计主要审计控制台上的操作记录,针对主账号和子账号在控制台的操作信息。开通子账号时,如果为其分配了 AK,则需要合理管控子账号。有些客户可能会将 AK 用于自动化的管理工作,将相关的代码上传到比如 Git hub 上,可能会被别有用心的人扫描到代码里使用的 AK,
22、导致 AK 泄露之后出现比如实例被删的情况。在日志管理方面,云 RDS 数据库提供了比如错误日志、慢日志、SQL 洞察日志、主备切换日志等能够了解实例运行情况的日志,帮助管理数据库。云 RDS 数据库整体架构主要分为两条线。其一,应用程序通过域名进行访问。其二,通过 WEB 控制台或 API 接口发送指令给 RDS 完成相关操作。请求发送给后端消息中心,再发送给对应模块,对应模块获取到相关信息之后返回给客户端调用方。比如要通过控制台或 API 查看慢日志,将 API 请求发送给消息中心之后,消息中心会从日志系统里捞取相关时间段的日志信息,返回给客户端。HA 探测系统会定期探测后端部署在节点上实
23、例的可用性。发现不可用或网络不可达且连续多次探测均如此时,就会下发相应的任务完成 HA 切换。在 MySQL 库下面 第一章 RDS 基础概念介绍 16 的 HA HealthCheck 表会定期(一般为 15s)往表里写入一条数据,探测数据库是否可写,如果不可写,则进行切换。如果个某节点的物理主机宕机或提交了大事务导致 HA 探测的语句无法完成 binlog 落盘,也会导致 HA 切换。因此,一般在生产业务中要避免大事务的操作。在线迁移系统会定期检测,比如有一主一备两个实例,当备节点不可用时,会发起在线迁移,始终保证系统有一主一备两个实例能够提供高可用的能力。变配也是通过在线迁移系统完成。备
24、份系统会按照每个实例设置的备份频率,定期备份实例的数据。无论是快照备份还是物理备份,一般首先会选择备节点做备份。如果备节点主从延迟很大,则会选择主节点完成备份。进行 RDS MySQL 备份往往在业务低峰期,而此时可能会同时进行运维操作,例如执行 DDL 变更操作可能会导致备份失败。因此,如果发现备份失败,可以主动尝试发起临时备份任务,以保证当天的备份成功。后续如果需要做快速恢复时,可以寻找最近时间点的备份文件。通过以上一整套系统,可以保证 RDS 数据库的稳定性与安全性。第一章 RDS 基础概念介绍 17 云数据库 RDS 的概览页面如上图所示,包含了该账号下 RDS 实例个数、即将过期个数
25、以及已过期个数、每个地域上有哪些实例。页面上方为消息通知,右侧展示了繁忙实例、空闲实例以及近期重大功能发布。上图为实例列表页面。如果遇到问题,可以将实例 ID 复制粘贴,提交相关工单反馈进行问题排查。点击实例名称可进入实例详情页面。上图为实例详情页面。第一章 RDS 基础概念介绍 18 备份管理可以将本地的备份文件通过导入备份的方式实现上云。跨地域备份可以将相应 A 地域的 RDS 实例备份到 B 地域,实现跨地域的备份能力。已删除实例备份可提供备份恢复的能力。云数据库 RDS 提供了丰富的参数模板,后续也将对参数模板做优化,增加更多参数,让客户更方便地制定相关的参数能力。我们会为每个参数定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 数据库 原理 实践
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Stan****Shan】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Stan****Shan】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。