mysql主從之slave-skip-errors和sql_slave_skip_counter

來源:互聯網
上載者:User

標籤:影響   erro   sdn   資料庫   廠商   bsp   這一   不可用   mysql   

一般來說,為了保險起見,在主從庫維護中,有時候需要跳過某個無法執行的命令,需要在slave處於stop狀態下,執行 set global sql_slave_skip_counter=1以跳過命令。但在測試和開發環境下,有時候為了快速解決不影響開發,需要使用set global sql_slave_skip_counter=N,其意思即為在start slave時,從當前位置起,跳過N個event。每跳過一個event,則N--.

這一點還是很好驗證的,測試過的就有明確體會了,不想測試的可參考下http://www.cnblogs.com/yhlx/articles/3740598.html。

除了跳過N個event外,還有一個很重要的參數是slave-skip-errors,其有四個可用值,分別為:off、all、ErorCode、ddl_exist_errors。

根據各個值得字面意思即可知道它們的用法,但是其中ddl_exist_errors值卻比較特別,它代表了一組errorCode的組合,分別是:

1007:資料庫已存在,建立資料庫失敗
1008:資料庫不存在,刪除資料庫失敗
1050:資料表已存在,建立資料表失敗
1050:資料表不存在,刪除資料表失敗
1054:欄位不存在,或程式檔案跟資料庫有衝突
1060:欄位重複,導致無法插入
1061:重複鍵名
1068:定義了多個主鍵
1094:位置線程ID
1146:資料表缺失,請恢複資料庫

但是還要注意的是,該值只在mysql cluster版的mysqld中才可用,而在mysql Server版的mysqld中不可用。

使用這個參數除了http://blog.csdn.net/wulantian/article/details/38369259和http://bugs.mysql.com/bug.php?id=39393提及的bug外,更嚴重的是它會讓不該忽略的操作也被忽視,進而導致業務不正確,尤其是如果從庫提供和主庫一樣嚴重程度的業務時,比如即時風控和程式化操作基於的即時盈虧預警,為此有些廠商甚至都出現過幾百萬的索賠。

mysql主從之slave-skip-errors和sql_slave_skip_counter

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.