binlog

记录

SQL 语句

  • DDL (Data Definition Languag 数据定义语言) 语句
  • 除了 select 的 DML (Data Manipulation Language 数据操纵语言) 语句

    消耗时间

  • 时间戳

  • 持续时间

模式

  • statement
    • 每条修改数据的 sql 语句会记录到 binlog 中
    • 优点
      • 日志文件体积小
      • 节省 I/O 和存储资源
      • 集群节点同步速度快
    • 缺点
      • 某些函数和主键自增长会出现同步数据不一致
    • PXC 集群是 Galera library,仅支持 row 模式
  • row
    • 每条记录的变化都会写到 binlog 中 (默认)
    • 优点
      • 清晰的记录每条记录的细节
      • 数据同步安全可靠
      • 同步时出现行锁的更少
    • 缺点
      • 日志体积太大,浪费存储空间
      • 数据同步频繁、速度慢
  • mixed
    • 普通操作使用 statement 格式,同步可能会出现问题的操作会使用 row 格式

文件类型

  • 日志文件
    • 后缀为顺序数字编号
  • 索引文件
    • 后缀为 index

设置

  • my.ini 中进行设置
    1. [mysqld]
    2. # binlog 模式
    3. binlog_format=row
    4. # 开启 binlog,并且设置 binlog 日志名称
    5. log_bin=mysql_bin

查看

  • mysql 中键入

    show master logs; # 查看 binlog 索引文件,内容其实就是 binlog 日志文件名称列表 show binlog events in ‘mysql_bin.000060’; # 查看指定的 binlog 日志文件