mysql - 对发生故障的从属 AWS 服务器使用什么指标

标签 mysql amazon-web-services amazon-rds amazon-cloudwatch master-slave

我有一个主服务器在独立数据中心的服务器上运行,还有一个从服务器在 AWS 中。

复制失败并出现以下错误:“主服务器上发生事件 LOST_EVENTS。消息:写入二进制日志时出错”。

上次离线时,写入吞吐量从 4k 字节/秒跃升至 40k,并在几周内稳步增加到 252k。

1)我想知道为什么失败后写入吞吐量会稳定增加?

2) 我想知道在 cloudwatch 失败时可以使用什么指标来创建 SNS 电子邮件给我?现在,我认为最好的办法是在主服务器上运行一个简单的 bash 脚本,在“显示从状态”上将 Master_Log_File 与 Relay_Master_Log_File 进行比较;并完全放弃 CloudWatch。

编辑更新脚本:

这是我每 10 分钟运行一次的脚本,用于检查从属状态(直到我在 CloudWatch 中找到替代指标):

#!/bin/bash                                                                                            
a=$(mysql --host=*amazonaws.com --port=3306 -u whatever -ppass -N -B -e "show slave status;")                                                          
e=$(echo "$a" | awk -F\\t '{print $12}') #Slave_SQL_Running
d=$(echo "$a" | awk -F\\t '{print $26}') #Seconds_Behind_Master
if [ "$e" != 'Yes' ]; then
  echo -e "slave mysql server down \n slave SQL running: $e \n seconds behind master: $d" | mail -s 'slave mysql server down' admin@email.com
fi

最佳答案

我没有从 CloudWatch 中找到好的指标,所以我制作了这个脚本,它通过 cron 每 10 分钟检查一次从属状态 - 如果发现 Slave_SQL_Running 或 Slave_IO_Running != 'Yes',它会发送一封电子邮件:

#!/bin/bash
a=$(mysql --host=host --port=3306 -u master -ppword -N -B -e "show slave status;")
b=$(echo "$a" | awk -F\\t '{print $6}') #Master_Log_File
c=$(echo "$a" | awk -F\\t '{print $10}') #Relay_Master_Log_File
e=$(echo "$a" | awk -F\\t '{print $12}') #Slave_SQL_Running
d=$(echo "$a" | awk -F\\t '{print $26}') #Seconds_Behind_Master
f=$(echo "$a" | awk -F\\t '{print $12}') #Slave_IO_Running
if [ "$e" != 'Yes' ] || [ "$f" != 'Yes' ]; then
  echo -e "server id - slave mysql server down \n master log file: $b \n relay master log file: $c \n seconds behind master: $d \n Slave IO Running: $f \n Slave SQL Running: $e " | mail -s 'slave mysql server down' email@email.com
fi

关于mysql - 对发生故障的从属 AWS 服务器使用什么指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49623735/

相关文章:

python - Django - 默认端口 0 而不是 3306 - 无法连接到 '127.0.0.1' 上的 MySQL 服务器 (61)

php - 我如何存储 PDO 对象

PHP MySQL 将数据从一张表插入另一张表

amazon-web-services - AWS S3 存储桶中对象的数量或大小是否会对性能产生影响

mysql - Aurora MySql 数据库备份大小大幅增加

database - 如何增加 Amazon RDS Aurora 数据库中的 MySQL 查询缓存?

postgresql - 简单查询,迁移后加锁

php include() 不起作用?

amazon-web-services - 为什么我的单部分 MP3 文件由于 InvalidPart 多部分文件上传错误而无法上传到 AWS S3?

mysql - 如何限制单个 MySQL 数据库的存储大小