千家信息网

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

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,日志格式ROW:基于【数据行】的模式,就是把所有变化的数据记录下来:优点: 稳定不会有bug缺点: 日志文件大STATEMENT:基于【sql语句】的模式,就是把所有的执行的sql语句记录下来优点:日
千家信息网最后更新 2024年11月19日Mysql-主从-binlog-格式,参数(三)

日志格式

  • ROW:

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

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

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

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

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

  • 查看当前类型:
    show variables like 'binlog_format';
  • 修改模式-语句模式:
    vim /etc/my.cnfbinlog_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=xhreplicate_ignore_table=xh.user# 2.【从库】,只复制【xh库】,排除掉以test开头的表replicate_do_db=xhreplicate_wild_ignore_table=xh.test%
0