mysql運維-slave_skip_errors


1 簡介
    mysql在主從復制過程中,由於各種的原因,從服務器可能會遇到執行BINLOG中的SQL出錯的情況,在默認情況下,服務器會停止復制進程,不再進行同步,等到用戶自行來處理。
    slave-skip-errors的作用就是用來定義復制過程中從服務器可以自動跳過的錯誤號,當復制過程中遇到定義的錯誤號,就可以自動跳過,直接執行后面的SQL語句。
2 官方參考

Command-Line Format

--slave-skip-errors=name

System Variable Name

slave_skip_errors

Variable Scope

Global

Dynamic Variable

No

 

Permitted Values

Type

string

Default

OFF

Valid Values

OFF

[list of error codes]

all

ddl_exist_errors

    slave_skip_errors選項有四個可用值,分別為:off,all,ErorCode,ddl_exist_errors。
     默認情況下該參數值是off,我們可以列出具體的error code,也可以選擇all,mysql5.6及MySQL Cluster NDB 7.3以及后續版本增加了參數ddl_exist_errors,該參數包含一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)
    一些error code代表的錯誤如下:
    1007:數據庫已存在,創建數據庫失敗
    1008:數據庫不存在,刪除數據庫失敗
    1050:數據表已存在,創建數據表失敗
    1051:數據表不存在,刪除數據表失敗
    1054:字段不存在,或程序文件跟數據庫有沖突
    1060:字段重復,導致無法插入
    1061:重復鍵名
    1068:定義了多個主鍵
    1094:位置線程ID
    1146:數據表缺失,請恢復數據庫
    1053:復制過程中主服務器宕機
    1062:主鍵沖突 Duplicate entry '%s' for key %d
    my.cnf中的寫法:
slave_skip_errors=1062,1053
slave_skip_errors=all
slave_skip_errors=ddl_exist_errors
    作為mysql啟動參數的寫法:
--slave-skip-errors=1062,1053
--slave-skip-errors=all
--slave-skip-errors=ddl_exist_errors
    從數據庫中查看該參數的值:

mysql> show variables like 'slave_skip%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| slave_skip_errors | 1007 |
+-------------------+-------+


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM