复制中的一些重要的参数
Log-bin
Server-id
Log-bin-index
binlog_format
binlog_cache_size
max_binlog_size
sync_binlog
expire_logs_days
log_bin_trust_function_creators
|
Log-bin
log-bin 是开启binlog
Binlog文件名前缀,可以是全路径
Log-bin=mybinlog
Log-bin=/data/mysql/test_3306/mybinlog
修改binlog的格式 只修改自己session级别的就可以了不要修改全局级别的 推荐row模式
Server-id
唯一区别ID,统一集群内不可重复
可动态修改(Service-uuid 以后有可能代替server-id)
Binlog_format
Binlog日志格式:statement,row,mixed三种
可动态修改
log-bin-index
mysql-bin.index 指定logs-index-file放在那里
Log-bin-index=/data/mysql/test_3306/mybinlog/mysql-bin
Binlog_cache_size
Binlog写入buffer
可动态修改
Binlog_cache_size binlog写入buffer 可动态修改
先写日志再写入引擎层写入binlog_cache_size(通常1M就可以了)
max_binlog_size
限制单个binlog大小 默认是一G 推荐200M 根据日志产生量 可以动态修改
sync_binlog=n
调优重要的参数
交易型:建议设置成1 0系统决定刷新 1 每个sql刷新binlog(性能差)对性能影响强的参数
expire_logs_days=n
n天后自动删除binlog可动态修改 默认没开启
binlog把磁盘占满了 应用卡住了 一般保留7天 1天生成30G的binlog 最多就是7天
log_bin_trust_function_creators
默认是0 开启改成1
创建存储过程指定用户名
Deter 就要指定用户 不是这个用户创建的 别的用户创建不了
Error log 看到异常的abort connection 拒绝连接请求
log_waRININGS=1 不看参数级别了
log_warnings=2 默认是0
binlog_error_action=abort_server(直接在应用层报错) sql报错不会卡在那里 5.6分区满了只能在error log 中看见日志
binlog_row_image【full|miniaml|noblog】
binlog_row_image 5.6中的参数 row的格式日志很大
Update 之前之后都记录上所以日志感觉很大 这个参数可以把写前的忽略掉
Miniaml 记录变更的字段和行的标识
没有变更到的就不记录了
Noblob 没涉及blob 不记录blob字段
Binlog_rows_query_log_event=1|0
默认是关闭的
Row 记录不了 query
5.6引入了新参数
开启参数后 =1 开启 =0关闭 默认是关闭的
query_event 用户写入sql会记录在里面
在gtid里面
从库记录binlog
Log-bin
Log-slave-updates:从库也会记录binlog
Enforce-gtid-consistency 用来控制gtid 能记录什么东西 安全的记录操作安全的事务
gtid为什么从库开启binlog 记录事务的号
executed_gtid_set 执行过的gtid集合 gtid目前发展不大完善 gtid参数变化还是很频繁的
从库的过滤规则
replicate-do-table
replicate-ignore-table
replicate-rewrite-db
replicate-wild-do-table
replicate-wild-ignore-table
replicate-do-db
replicate-ignore-db