我在独立数据中心的服务器上运行主服务器,在AWS中运行从服务器。
复制失败并出现此错误:“主服务器上发生LOST_EVENTS事件。消息:写入二进制日志时出错”。
上次脱机时,它从4k字节/秒的写入吞吐量跃升至40k,并在几周内稳步上升至252k。
1)我想知道为什么在失败后写入吞吐量会稳定增加?
2)我想知道在cloudwatch失败的情况下,可以在cloudwatch中使用什么指标来创建SNS电子邮件?现在,我认为最好的办法是在主服务器上运行一个简单的bash脚本,将Master_Log_File与Relay_Master_Log_File在'show slave status'上进行比较。并完全放弃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
答案 0 :(得分:0)
我没有从CloudWatch中找到一个很好的指标,所以我制作了这个脚本,该脚本每10分钟通过cron检查一次从属状态-如果找到Slave_SQL_Running或Slave_IO_Running!='是',它将发送一封电子邮件:
>#!/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