所以,對於 MySQL Replication Error 不知不覺就生了兩種 script 來應付,一種是 RDS 當 MySQL Replication Slave 用的,另一個則是一般 MySQL Replication Slave Server 用的:
處理 AWS RDS MySQL Replication Slave Servers:
#!/bin/sh
a=0
while [ $a -lt 1000 ]
do
check=`echo "SHOW SLAVE STATUS \G" | mysql -h YOUR_AWS_RDS_SERVER -u root -ppassword | grep "Last_SQL_Error:" | grep -c "Could not execute"`
if [ $check -eq 0 ] ; then
break
fi
echo "CALL mysql.rds_skip_repl_error;" | mysql -h YOUR_AWS_RDS_SERVER -u root -ppassword
a=$(( $a + 1 ))
done
處理 MySQL Replication Slave Servers:
#!/bin/sh
a=0
while [ $a -lt 2000 ]
do
check=`echo "SHOW SLAVE STATUS \G" | mysql -h YOUR_MYSQL_SLAVE_SERVER -u root -ppassword | grep "Last_SQL_Error:" | grep -c "Error "`
if [ $check -eq 0 ] ; then
break
fi
check=`echo "STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;" | mysql -h localhost -u root -ppassword`
a=$(( $a + 1 ))
sleep 3
done
以上是用在 MySQL Server 彼此算異質系統,只能先透過這招頂替了。
沒有留言:
張貼留言