点击上方"蓝字"
关注我们,享更多干货!
前提
当我们收到反馈说数据库响应慢或者压测过程中数据库有报错,第一步先收集数据库服务器资源使用情况,这一步是处理所有故障的前提。
--负载
top 命令
htop 命令
--cpu
lscpu 命令
--内存大小
free -g
--磁盘大小
df-Th
--磁盘使用跟踪
nohup iostat -xmt 1 > iostat.log 2>&1 &
--网络延时
应用程序与数据库之间的网络延时,集群内主库与同步备库之间的网络延时
nohup ping 目标ip | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime())}' > ping.log 2>&1 &
*模拟网络延时小知识*
模拟同城机房网络延迟在0.7ms ~ 0.9ms ;
添加网络延迟模拟:tc qdisc add dev enp23s0f1(网卡) root netem delay 0.8ms 0.1ms ;
删除网络延时模拟:tc qdisc dev dev enp23s0f1(网卡) root netem delay 0.8ms 0.1ms。
常见问题
一.Xlog目录磁盘空间不足
Xlog日志目录满的原因有以下几个:
集群内有宕机的备节点,或者主备节点之间的网络不通;
无效的复制槽未及时清理;
开启归档,但归档失败;
Xlog保留数量过多。
备节点故障:
通过网络及数据库日志信息,判断节点故障原因,并尽快恢复主备节点之间的复制关系,当故障无法快速解决时,建议修改数据库参数来改变主库Xlog保留大小。
enable_xlog_prune = on
max_size_for_xlog_prune:默认是2T,建议修改值为104857600 (100GB),或根据磁盘空间自行调整
无效复制槽:
查看是否存在无效的复制槽导致Xlog清理不及时,需要将延时最大的复制槽删除。
--查看复制槽
select slot_name,coalesce(plugin,'_') as pl