美文网首页
mysql_binlog基本知识和读取

mysql_binlog基本知识和读取

作者: 只有香如故 | 来源:发表于2017-12-04 08:24 被阅读17次
    • 二进制日志文件:默认在数据目录以mysql-bin或SERVERHOSTNAME开头,末尾为.bin.00000NUM的文件。每次重启服务器后日志将进行滚动。保留旧文件,新创建文件。
    • 索引文件:记录了二进制日志文件的相关信息。默认在数据目录,名字为mysql-bin.index。建议将二进制日志文件和数据分开存放在不同磁盘,这样既能保证安全性,又能保证日志文件之间不出现竞争io的情况。。注意只有二进制和中继日志才是真的滚动,其他日志都是关闭后打开。
    • server-id=1 -- master
    • binlog_format STATMENT|ROW|MIXED 指定二进制日志文件的格式
    • log-bin ON|OFF [FILE] 指定二进制日志文件的位置,没有指定FILE默认写在数据文件下,是否启用二进制日志文件功能。在[mysqld]中添加log-bin=mysql-bin和binlog_format=mixed。
    • sql_log_bin ON|OFF 控制是否将日志写入二进制日志文件
    • binlog_cache_size 缓存大小,跟随binlog_stmt_cache_size大小变化
    • binlog_stmt_cache_size 语句缓存大小
    • sync_binlog NUM 设定对二进制日志文件写入NUM次后就同步到磁盘。0表示不同步,1表示事务提交后才写入二进制日志中。其他正数都表示二进制日志在NUM次写入后就同步到磁盘。注意若autocommit=1,则每条语句的执行都将直接提交。否则事务只有执行COMMIT操作,明确提交后才写入二进制日志中。
      max_binlong_cache_size 上限值
      max_binlog_size
      max_binlog_stmt_cache_size 上限值
    • expire_logs_days DAY 设定日志过期时间为DAY天,过期会被自动删除。默认为0。
      #######mysqlbin-log使用

    path:cd /var/log/mysql/

    ip 172.17.0.5/16
    port 3333:3306

    CREATE USER testduliyan IDENTIFIED BY '123456';
    select host,user from mysql.user;
    use testduliyan;

    show variables like 'log_bin';--查看bin_Log是否开启
    show binary logs-- 查看日志列表
    show master status-查看当前正在使用的文件
    SHOW BINLOG EVENTS in ‘mysql-bin.00000NUM’ [FROM POSITION] -- 查看具体内容
    flush logs --手动滚动日志
    PURGE BINARY LOGS TO ‘BINLOGFILE’ 可以删除指定文件之前的日志文件

    /usr/bin/mysqlbinlog --base64-output=decode-rows -v /var/log/mysql/mysql-bin.000001 |more-- 解读row日志文件可读

    相关文章

      网友评论

          本文标题:mysql_binlog基本知识和读取

          本文链接:https://www.haomeiwen.com/subject/sdjtixtx.html