Mysql-主从-binlog-格式,参数(三)

日志格式

  • ROW:

    基于【数据行】的模式,就是把所有变化的数据记录下来:

    • 优点: 稳定不会有bug
    • 缺点: 日志文件大
  • STATEMENT:

    基于【sql语句】的模式,就是把所有的执行的sql语句记录下来

    • 优点:日志文件小
    • 缺点: 可能会有mysql版本不同函数执行异常的bug,比如: sleep
  • MIXED

    混合模式: 前两种模式的混合,根据具体sql,mysql内部自动选择,而且对【ROW模式】进行了优化

  • 查看当前类型:

    show variables like 'binlog_format';
  • 修改模式-语句模式:

    vim /etc/my.cnf
    binlog_format=STATEMENT

查看binlog内容:

// 普通查看:
mysqlbinlog mysql.bin.0003
// 显示具体执行信息:
mysqlbinlog mysql.bin.0003 -v
// 去掉base64符号:
mysqlbinlog mysql.bin.0003 -v --base64-output=decode

过滤参数

一般不在主上做限制,给从库做限制
 #### 参数(my.cnf):
    #主库(binlog日志记录过滤):
    binlog-do-db                #只复制-指定的数据库
    binlog-ignore-db            #不复制-指定的数据库

  #从库(中继日志记录过滤):
    replicate_do_db             #只复制-指定的数据库
    replicate_ignore_db         #不复制-指定的数据库

    replicate_do_table          #只复制-指定的数据表
    replicate_ignore_table      #不复制-指定的数据表

    replicate_wild_do_table     #只复制-指定的数据表,使用【通配符】
    replicate_wild_ignore_table  #不复制-指定的数据表,使用【通配符】

示例配置:

# 1.【从库】,只复制【xh库】,排除掉【user表】
replicate_do_db=xh
replicate_ignore_table=xh.user
# 2.【从库】,只复制【xh库】,排除掉以test开头的表
replicate_do_db=xh
replicate_wild_ignore_table=xh.test%

猜你喜欢

转载自blog.51cto.com/3168834/2382527