1、基本參數
bind-address=192.168.1.151
server_id=513306
#(主從不相同,規範建議:後IP+端口)
skip_name_resolve=off
#(跳過主機名/域名解析)
transaction-isolation=read-committed
2、關于binlog二進制日志參數
log_bin=/mysql/log/3306/binlog/itpuxdb-binlog #(必需)
log_bin_index=/mysql/log/3306/binlog/itpuxdb-binlog.index #(必需)
binlog_format=row #(必需)
binlog_rows_query_log_events=on #二進制日志中記錄更詳細的SQL操作 #(必需)
sync_binlog = 1 #預設,MySQL每次送出事務之前會将二進制同步到磁盤上,保證伺服器崩潰時不會丢失事件
innodb_flush_log_at_trx_commit=1 #預設,每次事務送出時MySQL都會把log buffer的資料寫入log file,并且flush(刷到磁盤)中去。
--------------------------------------------------------------------------------------------------------------------
log_bin_trust_function_creators = 1 #預設為0,同步函數和存儲過程
max_binlog_size = 2048M #預設為1024M
expire_logs_days = 7 # binlog保留多少天,看具體安排
binlog_cache_size = 1M #預設是32K,binlog緩存的大小,設定要當心,建議1~4M,根據業務繁忙情況
innodb_support_xa = 1 #這個參數是在主庫上設定的,預設是自動開啟的。
看到XA首先想到的就是分布式事務了,這個參數確定事務日志寫入bin-log的順序是事務的time-line是一緻的。
這樣在系統崩潰的時候,啟用日志恢複,可以嚴格按照時間線來恢複資料庫。
3、關于relay_log中斷日志參數
relay_log = /mysql/log/3306/relaylog/itpuxdb-relay.log
relay-log-recover = 1
#I/O thread crash safe -IO線程安全
打開replication中繼日志崩潰恢複模式,replication支援中繼日志的自我修複功能。
當slave叢庫當機後,如果replay-log發送損壞,導緻一部分中繼日志沒有處理,就自動放棄未執行的replay-log,
重新從master上擷取日志,完成了中繼日志的恢複,該參數表示目前接收到的relay-log全部删除,
然後從SQL線程回放到位置重新拉取)
relay_log_info_repository = table
# SQL thread crash safe -SQL線程安全
預設是file,SQL線程的資料回放是寫資料庫操作,relay-info是寫檔案操作,這兩個操作很難保證一緻性,
relay-info将寫入到mysql.slave_relay_log_info 這張表中)
master_info_repository = table
#預設是file,IO線程也是接收一個個的event,将接收到的event,
通過設定參數master_info_repository 可以将master-info資訊寫到什麼位置,性能上比設定為FILE有很高的提升;
可靠性也得到保證,設定為TABLE後,master-info将資訊儲存到mysql.slave_master_info
4、關于同步方式的參數
loose_rpl_semi_sync_master_enabled = 1
#MySQL 5.6開啟主的半同步複制(rpl_semi_sync_master_enabled)
loose_rpl_semi_sync_slave_enabled = 1
#MySQL 5.6開啟從的半同步複制(rpl_semi_sync_slave_enabled)
loose_rpl_semi_sync_master_timeout = 5000 #逾時5秒,切回異步
rpl_semi_sync_master_wait_for_slave_conut = 1 #至少收到1個slave發回的ack
rpl_semi_sync_master_wait_point=AFTER_SYNC #MySQL5.7的方法;開啟無損複制
rpl_semi_sync_master_wait_point=AFTER_COMMIT #MySQL5.7的方法;開啟半同步複制
5、關于GTID的參數
gtid_mode = on
log_slave_updates = 1
enforce_gtid_consistency = 1
gtid_mode:
- on :産生GTID,slave隻接收帶GTID的事務
-ON_PERMISSIVE:産生GTID,slave接受不帶GTID事務也接受帶GTID的事務
-OFF:不産生GTID,slave隻接受不帶參GTID的事務
-OFF_PERMISSIVE:不産生GTID,slave接受不帶GTID事務也接受帶GTID的事務
enforce-gtid-consistency:
-on:當發現語句/事務不支援GTID時,傳回錯誤資訊
-WARN:當發現不支援語句/事務,傳回警告,并在日志中記錄警告資訊
-OFF:不檢查是否有GTID不支援的語句/事務
log-slave-updates:
當從庫log_slave_updates參數沒有開啟時,從庫的binlog不會記錄來源于主庫的操作記錄。