2016年5月8日 星期日

MySQL Replication 跳過當前執行失敗的 SQL 命令

在使用 MySQL Replication 不知道大家有沒有遇到過當你沒有指定 binlog-do-db 的話全部的資料庫都會進行覆寫,MySQL 也不例外,如果你執行了類似 create user 的動作,而 Slave 已經有了這個 user 的話就會造成當前的 SQL 指令持續失敗



 

像這樣的問題,是必須一開始就設定好,但如果不小心出現了這樣的問題,也不需要擔心,在 MySQL 可以使用 sql_slave_skip_counter 來解決問題

 
mysql> stop slave; 
mysql> SET GLOBAL sql_slave_skip_counter = 1;
mysql> start slave;

 

上述指令的 SET GLOBAL sql_slave_skip_counter = 1; 代表的是 1 個 event

在 Innodb 中,一個 event 代表的是一組 sql 指令,並非一筆 sql

但是在 MyIsam 中,每一筆 sql 指令都代表一個 event,這是因為在 MyIsam 還未支援 event。

 

 

Orignal From: MySQL Replication 跳過當前執行失敗的 SQL 命令

沒有留言:

張貼留言