企业运维训练营之数据库原理与实践—RDS常见问题排除及DAS自动弹性伸缩—RDS常见问题排除及DAS自动弹性伸缩(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 企业运维训练营之数据库原理与实践—RDS常见问题排除及DAS自动弹性伸缩—RDS常见问题排除及DAS自动弹性伸缩(上)

一、 RDS常见问题排除及DAS自动弹性伸缩

 

image.png

 

通过对日常大量客户反馈的问题的分析,我们提炼了使用云上RDS数据库过程中3比较突出的问题。本文将围绕此三场景介绍问题的自助排查以及定位问题的方法。

 

image.png

 

对于连接类的问题,首先要明确访问链路的细节,包括客户端、客户端到RDS之间的网络以及RDS三个方面。比如客户端侧包含从哪里发起连接、用的什么RDS连接地址、客户端在哪里、网络的连通性或是否做了额外的限制导致无法连通。RDS侧包含是否添加安全组或白名单、连接数、连接地址等。另外,还包括数据库的账号密码是否正确、数据库的连接数是否有相应的限制等。

 

总结来说,客户端、客户端到RDS之间的网络以及RDS三者任意一者的配置不合理,都会导致连接可能出现问题。除了上图列出的因素,还有一些更细的影响因子,比如客户可能走的VPN方式访问,设置的MTU不匹配也可能会导致连接之后命令无响应。

 

如果一直连接不上,需要重点检查网络的连通性,比如连接地址是否正确、网络连接是否做了相关配置打通。

 

如果突然连接不上,也需要检测网络连通性;网络不通时,需要检查比如安全组、白名单的变更;网络连通的情况下,需要检查客户端与服务端的情况,比如实例的负载、客户端配置的连接池是否耗尽、服务端的连接数是否打满等。

 

如果是偶尔连接不上,则网络连通性大概率没有问题,更有可能是网络上或客户端和服务端的配置上出现了问题,比如服务端配置的timeout参数不合理,导致空闲太久被断开,客户端再次得到连接时可能会出现报错。

 

对于3种连接异常,可以使用ping、telnet、traceroute、mtr、tcpdump命令来诊断网络连通性、稳定性与连接报错。

 

一直连接不上或突然连接不上,首选ping与telnet来确认网络连通性;如果是偶尔连接不上,则推荐使用traceroute、mtr、tcpdump判断网络情况。

 

image.png

 

对于偶尔连接报错,一定要提前部署好抓包。复现问题后应第一时间将报文反馈给我们进行确认。

 

ping可以确认是否能够正常解析域名网络以及网络时延是多少。ping域名地址时,可以获取到对应的解析IP地址,判断IP地址是否正确。比如做了本地解析后,RDS变更导致底层的VIP发生了变化,如果还在本地做硬解析,则ping的地址还是之前的IP,导致连接不上。

 

Redis等内存型数据库对网络时延特别敏感,实例从ECS到RDS的SLB再到后端的DB,如果出现跨可用区访问,则时延会增加3ms左右。

 

连接不上时,可以用telnet查看端口是否通。使用telnet时,域名的后面要跟上数据库的端口,比如RDS默认端口为3306,如果在RDS控制台做了端口修改,也需要将此处的端口指定为修改后的端口。

 

在RDS侧做白名单拦截一般有两种方式,一种是在SLB做的,一种是在DB上做。在SLB上可能会出现telnet能通但实际连接不上的情况。

 

mtr用于追踪数据包的传输,判断路径中间是否出现丢包。一般会加上-n来避免反解析,-c用于指定发送的数据包数,-report可以以报告的形式输出,后面需要接上域名。输出结果的第一列为节点,第二列为节点对应的解析IP地址,第三列为丢包率,第四列为每秒发送的数据包,第五列为最近探测的延时值,第七列为标准方差,值越大证明节点的稳定性越差。

 

traceroute可以追踪数据包传输时的全部路径与时延。在一条路径上,每个设备会traceroute测试三次,输出结果包含每次测试的时间与设备的名称,一般也会加上-n反解析,-t表示走TCP协议,也可以指定为-i走ICMP协议,-p用于指定具体端口号。

 

image.png

 

网络重传、网络连接抖动等问题抓取,在Linux环境下一般使用tcpdumpwindows环境下可以使用wiresarck,实际使用场景多为Linux环境部署的程序。

 

第一类使用场景为客户端程序报错日志指向不明确,没有将原始的MySQL报错信息展示出来,可以通过抓包的方式定位问题。第二类使用场景为偶尔连接不上或比较疑难的场景中,通常也推荐使用tcpdump。

 

tcpdump的使用步骤分为两步:

 

第一步,抓取报文

 

第二步,分析报文。

 

抓取问题需要自己部署抓包命令,后续如果不具备分析报文的能力,可以将关报文在提交工单时与一并反馈,由我们助对报文进行分析。

 

抓取报文时需要注意3点:

 

tcpdump要部署在存在连接问题的主机上。

 

出现问题前开始抓包,出现问题后停止抓包,要保证报文中出现异常时的报文。另外,程序最好将报错时间精确到秒级的日志打印出来,能够方便定位问题。

 

对低频报错的场景应提前部署循环抓包,但要避免单报文过大导致将磁盘打满。-i是指定端口,-s为0表示自动选择合适的长度抓取数据包,-w指将抓取的报文输出存放到该文件里,-c可以指定文件大小(-c 100表示文件大小为100M),-W指定文件数量 ,(-W 5表示循环写5个文件)。

 

过滤报文时会先进行快速过滤,一般对于有明显MySQL错误码的报文,可以通过mysql.error_code>0快速过滤;连接被重置的问题可以使用tcp.flags.reset=1的方式快速过滤。

 

image.png

 

如上图红框,服务端3306端口给客户端发的fin结束连接的报文与上一个时间相差了30秒。客户端在服务端设置了wait_timeout=30,空闲连接达到30秒后,服务端会进行回收连接。

 

image.png

 

如上面截图执行ping命令,如果能连通则可以获取到时延、IP;如果无法连通,则需要检查网络问题,比如网络连通性、域名解析正确性等。像做了本地解析后当底层VIP发生变化,此时如果再连接RDS实例,则必然连接不上。

 

image.png

 

如果此时进行telnet,也会显示不通,因为进行了本地解析。将1.1.1.1修改后再做telnet即可。


image.png

执行mtr命令时,会在全部探测完之后才以报告的形式输出。重点关注是否从某一跳以后持续性地出现丢包,如果是,再从标准偏差的数值进行具体判断。如走到外部网络运营商环境,则需要向网络运营商反馈。

 

image.png

 

traceroute时中间出现若干行并无大碍,可能是由于网络运营商做了屏蔽,不会返回数据。最后目标端的数据正常则说明没有问题。

接下篇:https://developer.aliyun.com/article/new/supportservice?spm=a2c6h.12873639.article-detail.6.21741b67F3verg&publish=1224221#/?_k=6u4bk3

相关文章
|
1月前
|
关系型数据库 OLAP 分布式数据库
瑶池数据库微课堂|PolarDB/RDS+ADB Zero-ETL:一种免费、易用、高效的数据同步方式
瑶池数据库微课堂介绍阿里云PolarDB/RDS与ADB的Zero-ETL功能,实现免费、易用、高效的数据同步。内容涵盖OLTP与OLAP的区别、传统ETL存在的问题及Zero-ETL的优势(零成本、高效同步),并演示了从RDS MySQL到AnalyticDB MySQL的具体操作步骤。未来将优化和迭代此功能,提供更好的用户体验。
|
1月前
|
运维 关系型数据库 MySQL
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
|
1月前
|
SQL 数据挖掘 关系型数据库
阿里云百炼|析言GBI全新发布:联合云上数据库,助力企业轻松实现ChatBI
析言GBI是阿里云推出的一款基于AI的智能数据分析产品,通过自然语言处理实现对话式数据分析。用户无需编写代码,即可轻松进行数据查询、分析和可视化。该产品支持多种数据库连接方式(如MySQL、PostgreSQL等),并提供多版本选择以适应不同业务需求。即将发布的动态规划BI分析功能将进一步提升复杂问题的拆解与综合分析能力。欢迎访问阿里云百炼应用广场体验析言GBI,并享受200次免费问题额度。
|
2月前
|
运维 关系型数据库 MySQL
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
103 6
|
2月前
|
关系型数据库 开发者 RDS
【实践】体验RDS通用云盘核心能力
这些图片展示了阿里巴巴云开发生态的不同方面,包括开发者工具、平台服务、技术文档、社区支持等,旨在为开发者提供全面的支持和便利,促进技术创新和应用开发。
|
2月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
2月前
|
安全 关系型数据库 MySQL
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
|
4月前
|
安全 NoSQL 关系型数据库
阿里云数据库:助力企业数字化转型的强大引擎
阿里云数据库:助力企业数字化转型的强大引擎
|
4月前
|
存储 NoSQL MongoDB
小川科技携手阿里云数据库MongoDB:数据赋能企业构建年轻娱乐生态
基于MongoDB灵活模式的特性,小川实现了功能的快速迭代和上线,而数据库侧无需任何更改
|
4月前
|
运维 NoSQL BI
简道云搭载阿里云MongoDB数据库,帮助数以万计企业重构业务系统
通过与MongoDB和阿里云团队的合作,让简道云少走了弯路,保障了线上服务的长期稳定运行,提高了吞吐效率,并相应降低了线上运行成本

热门文章

最新文章

推荐镜像

更多