log-bin  二进制日志

server-id 早起版本必须添加  1-pow(2,32)-1 推荐使用 端口号+ip最后一位  5.6后可以动态修改

server-uuid (5.6以后) 默认存在 $datadir/auto.cnf 下         5.6后可以动态修改

log-bin-index  包含二进制日志文件名

binlog-format  statement row mixed 三种  可动态修改

binlog_cache_size=1M - 2M

max_binlog_size 默认是1G  生成间隔在2分钟以上 推荐128M 或者256M

限制单个binlog大小 可以动态修改

sync_binlog=n

binlog在同步完之后,commit以后是否要刷到磁盘上 默认更高的性能设置成0 由操作系统控制是否刷到磁盘上

如果是教育系统,为了安全推荐设置成1

多少个SQL之后,调用fdatasync()函数刷新 binlog 到disk

fsync() / fdatasync() 区别是什么

fsync() 是完全刷新到磁盘,fdatasync 只刷新数据 不刷新metadata 可动态修改

expire_logs_days=n  推荐保存7天

n天后自动删除binlog

可动态修改

log_bin_trust_function_creators

开启binlog时,是否允许创建存储程序(除非有super权限,或指定deterministic,reads sql data,nosql)

可以动态修改

log_warnings

如果这个值设置大于 1,会在错误日志里看到异常断开的连接(Aborted connection)或者是被拒绝的请求

特殊说明

MySQL5.6.5,MySQL5.7.5以后,binlogv2 格式 gtid binlog_checksum

MySQL5.5 ——> MySQL5.6 没问题

如果以后有  MySQL5.6 --------> MySQL5.5 同步的需求    发现同步不了报错,

需要找到两个参数

binlog_checksum  默认为CRC32  由于5.5没有此参数所以需要设置为 none

log_bin_use_v1_row_events  默认为OFF 设置为 ON

这样可以避免升级过程中的一些问题(之后建议将参数还原回原来的设置)

binlog_error_action 当不能写binlog时,可以报出来错,默认没开启:ignore_error

开启可以使用 :abort_server

5.6引入 gtid

bin_log_image   三种模式 full  minimal  noblob 默认为full

binlog_rows_query_log_events 审计功能

基于MySQL5.6 GTID的Crash Recovery是有Mysql-5.6.21 支持到 5.6.23 稳定

传统复制里面也是可以支持

master_info_repository  |file|   修改为 table

relay_log_info_repository |file|   修改为table

binlog_gtid_recovery_simpliefied  【5.6.23--5.6.21 simplified_binlog_gtid_recovery 】 这个功能刚出来不久

在挂掉时,可以找到自己同步到那里 完成的同步GTID 上接着同步,重新拉一下日志

如果没启用这个特性,会从binlog 全部搜索一下,如果日志很多,需要占用的时间比较多

relay-master-log-file

exec-master-log-pos

master 其他参数

auto_increment_increment  偏移量

auto_increment_offset   初始值

特别声明:所有的过滤规则都不建议在主库设置

binlog-do-db

binlog记录db,除此外,其他db上的binlog都不记录,存在风险

binlog-ignore-db

和上面规则相反

max_binlog_cache_size

binlog最大的cachesize 有大SQL写入时需要用到,或者大数据Load DATA 时

binlog_stmt_cache_size

用于cache那些事物中非事物表产生的SQL语句。如果经常在事物中涉及到非事物表,需要加大该参数

max_binlog_stmt_cache_size

用于cache那些事物中非事务表产生的SQL语句 最大cache

binlog_direct_non_transactional_updates

事物中既有事务表,也有非事务表的情况下,发生数据变更时,非事物表会直接写binlog,而不是也和事务表一样在buffer中

这个参数只影响SBR 模式 RBR MBR 都不影响

gtid相关参数

gtid_mode  on 开启gitd 的参数

enforce_gtid_consistency

gtid_next 跳过错误的参数

gtid_purged

用于指定那个事务从 binlog忽略了 ,reset master 这个值会被清空

gtid_executed 执行到的gtid 号及 所有执行过的 gtid 号

和executed_gtid_set(show master status,show slave status)输出的这列意思是一样的

reset master 这个值会被清空

总结:

主库开启最少参数(必须参数)

server-id

server-uuid

log-bin

gtid-mode

enforce-gtid-consistency

其他参数

max_binlog_size

expire_logs_days

binlog_format  (row格式)

salve 上的参数

server-id

server-uuid

relay-log  io thread 读取过来存到本地的日志

relay-log-index

read-only  设置从库为只读 但是对super权限不起作用

配置参数 (ignore/do 规则)

server-id

relay-log

relaylog 文件名前缀 可以是全路径

不可动态修改

relay-log-index

relay-log索引文件前缀名 和 relay-log一样 也可以是fullpath

不可以动态修改

read-only

除非有super权限 否则无法修改数据,不过不影响自主创建临时表(temporary,table)analyze table optimize table 也不受影响

可以动态修改

slave其他参数

log-slow-slave-statements  slave复制产生的slow log 是否也要记录

log-slave-updates   将master传输过来的变更操作,再次记录成本地的binlog,用于二次复制,当作中继分发点        

max_relay_log_size 建议不用修改  限制relay log的大小

relay-log-info-file

relay-log-purge =1 应用完后删除 应用完了 是否立即删除

relay-log-recovery = 1 crash recover 的过程  slave崩溃或正常重启时,未应用完的relay log会被删掉,重新从master 请求binlog  再次生成relay log

replicate-same-server-id

skip-slave-start  在数据库起来后不要自动启用同步

slave_load_tmpdir

slave_transaction_retries

start_parallel_workers 默认是关闭的 5.6引入基于gtid库级别的并行赋值

master-info-file/relay-log-info-file  将来慢慢替换成 下面两个

master_info_repository   file    -->  table

relay_log_info_repository  file  ---> table

记录relay-log 最新信息

sync_master_info =n   保持默认

多少个事物/事件后调用fdatasync() 刷新master.info 文件

relay_log_purge relay

slave 的过滤参数

replicate-do-table

replicate-ignore-table

replicate-rewrite-db    把db1 的操作改到 db2 中

replicate-wild-do-table   通配符的方式制定哪些表被复制哪些表不被复制

replicate-wild-ignore-table

replicate-do-db

replicate-ignore-db

slave_net_timeout

slave_skip_errors

sql_slave_skip_counter

、过滤条件可以在线更改 5.7.3以后

slave_net_timeout  如果主从复制 线程都为yes 但是数据过不来 建议调到 20 -30  默认为60

slave_skip_errors

复制过程中忽略某些错误

1032  找不到记录

1053 指server是在关闭过程中

1062  重复主键

1050  表已经存在了

1051 表找不到

1054 列对不上

1146  表不存在

sql_slave_skip_counter

忽略多少个复制事件,遇到个别错误(主键冲突,记录不存在等等) 时,可以忽略这些事件 继续复制过程

基于binlog+position 错误处理

stop slave

set global sql_slave_skip_counter=n

start slave

show slave status\G;

一搬一次 只忽略一个事件,除非很肯定,否则不要设置大于1

其中  为了使用crash-safe-replication 功能,必须使用

relay-log-info-repository =table

relay-log-recovery

使用支持事务的引擎

使用crash-safe replication 功能:在mysql(slave) 故障挂起来后

在设置了relay-log-recovery=1 时 会清理掉已经存在的relay log 从 relay-log-info-repository 里读到的

同步位置,重新请求一份relay-log 实际上是做了一次:把read_master_log_pos 设置为Exec_mater_log_pos ,

master_log_file 设置成了 relay_master_log_file

note:在slave 上如果给指定了一个日志的不正确的binlog position start slave 是什么也不干的

MySQL 复制参数详解的更多相关文章

  1. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  2. 1201MySQL配置文件mysql.ini参数详解

    转自http://www.cnblogs.com/feichexia/archive/2012/11/27/mysqlconf.html my.ini(Linux系统下是my.cnf),当mysql服 ...

  3. (转)MySQL配置文件mysql.ini参数详解、MySQL性能优化

    本文转自:http://www.cr173.com/html/18331_1.html my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数 ...

  4. MySQL配置文件mysql.ini参数详解、MySQL性能优化

    my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.  ...

  5. MySQL配置文件mysql.ini参数详解

    my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section. ...

  6. MySQL配置参数详解

    # 以下选项会被MySQL客户端应用读取. # 注意只有mysql附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值. # 需要在MySQL客户端库初始化的时 ...

  7. mysql数据库参数详解

    1.配置参数 MySQL有两种途径途径了解其的配置参数,一个是MySQL交互模式下的命令SHOW  VARIABLES,一个使用mysqladmin variables 查询. MySQL的配置参数分 ...

  8. Mysql主从复制参数详解

    目录 一.简介 二.例子 同步 修改 三.参数 一.简介 change master to配置和改变slave服务器用于连接master服务器的参数,以便slave服务器读取master服务器的bin ...

  9. mysql运行参数详解

    1, 查看MySQL服务器配置信息 mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 mysql> show global status; 3, 慢 ...

随机推荐

  1. SQL数据库— <3>高级查询、常用函数 --摘录网络

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; --all 查询所有 ...

  2. size - 列出段节大小和总共大小

    总览 (SYNOPSIS) size [-A|-B|--format=compatibility] [--help] [-d|-o|-x|--radix=number] [--target=bfdna ...

  3. 2019HDU多校训练第三场 Planting Trees 暴力 + 单调队列优化

    题意:有一个n * n的网格,每个网格中间有一颗树,你知道每棵树的高,你可以选择一个矩形区域把里面的树都围起来,但是矩形区域里面任意两棵树的高度差的绝对值不超过m,问这个矩形的最大面积是多少? 思路: ...

  4. Codeforces 353E 贪心

    题意:给你一张有向图,第i条边连接i号点和(i + 1) % n号点,问最多可以选择多少个点,使得这些点互相不可达. 思路:容易发现,如果某个边的集合点的数目大于等于2,那么就可以选出一个点,当然也可 ...

  5. java改动后运行无变化

    缓存没有及时清理,重新清理打包后运行正常

  6. java集合类笔试选择题整理含答案

    1.ArrayList list=new ArrayList(20);中的list扩充几次()A. 0B. 1C. 2D. 3答案:A分析:已经指定了长度, 所以不扩容 2.List.Set.Map哪 ...

  7. CascadeCNN人脸检测结构

    模型的结构大致由图可以完整展现,三个分类是否人脸的12.24.48net,再加上三个用于修正预测框的分类网络: 这三个分类是否人脸的网络,结构逐渐变复杂, 由上图可以看出,前2阶的网络都非常简单,只有 ...

  8. 常用Concurrent.util包工具类——高并发

    一 Concurrent.util常用类: 1. CyclicBarrier: 假设有场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发只要有一个人没有准备好,大家都等待. import ...

  9. 【leetcode】996. Number of Squareful Arrays

    题目如下: Given an array A of non-negative integers, the array is squareful if for every pair of adjacen ...

  10. Delphi DBGrid 实现复选框

    1 在数据库对应的表中加入  bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGri ...