MySQL5.5数据库-binlog日志

    xiaoxiao2025-02-05  41

    1.功能

    记录数据被修改的相关信息

    2.参数配置
    [mysqld] log-bin=/application/mysql/data/mysql-bin #从库开启需要加下面的配置 log-slave-updates
    3.binlog日志的三种模式

    Row level模式 介绍:  日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改 优点:  日志中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改的形式。row level的日志内容会非常清楚的记录下每一行数据修改的细节,而且不会出现某些特定情况下的存储过程或function及trigger的调用和触发无法被正确复制的问题 缺点:  会产生大量的日志内容

    Statement level模式 介绍:  每一条会修改数据的sql都会记录到master的bin-log中。slave在复制的时候sql进程会解析和原来master端执行过的相同的sql来再次执行 优点:  解决了row level下的缺点,不需要记录每一行数据的变化,减少bin-log日志量,节约IO,提高性能 缺点:  MySQL数据库新功能的加入,修改数据的时候使用了某些特定的函数功能不能正确复制

    Mixed模式 前两种模式的结合。会根据执行的每一条具体的sql语句来区分对待记录的日志形式

    4.调整binlog日志模式方法
    配置文件中加入:binlog_format="MIXED" #binlog_format="STATEMENT" #binlog_format="ROW" 运行时在线修改:set session binlog_format = "MIXED" #set session binlog_format = "STATEMENT" #set session binlog_format = "ROW" 全局生效: set global binlog_format = "MIXED" #set global binlog_format = "STATEMENT" #set global binlog_format = "ROW"
    最新回复(0)