mysql主從複製中重點參數配置詳解
log-bin :
搭建主從複製,必須開啟二進制日誌
server-id:
mysql在同一組主從結構中的唯一標識,各個服務器必須不同
server-uuid:
從mysql5.6開始有了該參數,在數據庫啟動過程中自動產生,每個機器都不一樣, uuid存放在auto.cnf文件中
read only:
設置從庫只讀狀態,避免在從庫上寫操作,但該指令對超級管理員是無效的,mysql5.7增加了一個新的參數super_read_only,該參數使得超級管理員也無法進行寫操作。
binlog_format:
二進制日誌的格式,這裡必須是row模式
log_slave_updates:
將從主庫獲得的變更信息在重新寫入從庫的binlog日誌中。
log_error_action:
該參數用來控制當不能寫binlog文件時候,mysql將會怎麼樣,該參數是mysql5.7之後新增的。有abort_server 和 ignore_error, abor_server代表當mysql在寫binlog時候遇到磁盤慢或文件系統不可用時退出;而ignore_error 則表示遇到binlog無法寫入時候,mysql會在錯誤日誌中記錄錯誤,並且還會強制關閉binlog功能,這樣會影響從庫從主庫上獲取日誌的功能,導致主從庫數據不一致,mysql5.7之後默認使用abort_server
binlog-do-db:
使用該參數可選擇性複製數據庫(主庫上設置),如binlog-do-db=ceshi,則意味著只同步ceshi庫,其他庫是不進行復制同步的。
gtid_mode:
決定gtid模式是否開啟,如果使用gtid複製模式,則必須 gtid_mode=on
enforce-gtid-consistency:
使用gtid模式時候,要開啟該參數,保證gtid的一致行enforce-gtid-consistency=on
gtid_next
該參數是session級別的變量,下一個gtid。默認值是automatic
gtid_purged:
丟棄的gtid
relay_log:
記錄從主庫的I/O dump thread過來binlog內容
replicate_do_table:
只複製指定的表,在從庫上使用
replicate_ignore_table:
需要在複製中忽略的表,在從庫上設置使用
replicate_ignore_db:
忽略複製的庫,從庫上設置使用
replicate_do_db:
只進行復制的庫,從庫上設置使用
replicate_wild_do_table:
使用通配符指定需要複製的表,如zs庫下tt開頭的表,則為
--replicate_wild_do_table=zz.tt%
replicate_wild_ignore_table:
使用通配符指定需要忽略的表
master_info_repository:
把master.info(主從狀態,配置信息)記錄下來,默認記錄到file裡面,建議使用表記錄
master_info_repository=table
relay_log_recovery:
為了讓從庫是crash safe的必須要設置relay_log_recovery=1,該參數的的含義是:當從庫發生崩潰或重啟時,它會把那些為做完的中繼日誌刪除,並向主庫重新獲取日誌,再次產生中繼日誌的恢復,建議在從庫上開啟relay_log_recovery參數,默認是關閉的
relay_log_purge:
清除已經執行過的relay log,建議從庫上開啟
slave_net_timeout:
該參數是設置多少秒沒從主庫上獲得binlog之後,從庫認為是超時,從庫 I/O thread會重新連接主庫,該值從mysql5.7.7開始默認值是60s
slave_parallel_type:
該參數從msyql5.7.2引入的,有兩個值,一個是database,另一個是logical_clock,在mysql5.7之後引入了基於組提交的並行複製,通過設置參數 slave_parallel_workers>0 並且slave_parallel_type='LOGICAL_CLOCK'實現
slave_parallel_workers:
設置多個進程來併發的執行relay log中主庫提交的事務,最大值為1024