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不会记录来源于主库的操作记录。