博客
关于我
深入浅出MySQL(十一)关于mysql里面的bin-log日志
阅读量:361 次
发布时间:2019-03-04

本文共 1322 字,大约阅读时间需要 4 分钟。

MySQL的二进制日志(binlog)是数据库管理员和开发者了解数据库事务、复制以及恢复状态的重要工具。以下是关于MySQL二进制日志的详细笔记。

主从同步的基本原理

MySQL的二进制日志是事务安全型日志的一种,它记录了所有的DDL和DML语句(除数据查询语句外)。在主从架构中,主库(Master)将执行的SQL语句写入二进制日志文件。从库(Slave)的IO线程负责读取主库的二进制日志内容,并将其写入Slave端的Relay Log。Slave的SQL线程则监控Relay Log,读取其中的内容,并根据日志中的指令执行,完成主从数据同步。

此外,二进制日志在数据库备份中也扮演重要角色,能够为数据恢复提供可靠的历史记录。


常用二进制日志操作命令

了解二进制日志的配置和管理是数据库管理员的重要任务。以下是一些常用的命令和操作方法:

  • 查看所有二进制日志列表

    使用show master logs命令可以查看当前主库的所有二进制日志文件及其位置。

  • 查看主库状态

    show master status命令可以显示主库的最新二进制日志文件名称及其最后一个操作事件的Position(pos)值,用于判断二进制日志的状态。

  • 刷新二进制日志

    使用flush logs命令可以立即生成新的二进制日志文件。需要注意的是,mysqld服务启动时会自动执行此命令,且mysqldump备份时也会通过-F选项触发。

  • 重置二进制日志

    reset master命令可以清空所有二进制日志文件,需要谨慎使用,尤其是在需要长时间恢复日志的环境中。


  • 使用mysqlbinlog工具查看日志

    在实际操作中,建议使用MySQL提供的mysqlbinlog工具来查看二进制日志文件。由于二进制日志采用追加式写入,直接使用vicat查看无法正常显示。通过mysqlbinlog工具可以以文本格式解析日志内容,便于分析和追踪。


    读取二进制日志的具体操作

    通过mysqlbinlog工具可以读取二进制日志文件的具体内容。以下是常用的查询命令格式:

    mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
    • IN 'log_name':指定要查询的二进制日志文件名,默认查询第一个文件。
    • FROM pos:指定从某个特定Position(pos)开始读取,默认从文件开头开始。
    • LIMIT:指定偏移量和要读取的行数,默认读取所有行。

    通过查询二进制日志事件,可以准确定位到特定事务操作的日志记录,例如插入数据的write_rows事件。结合end_log_pos指标,可以快速定位日志位置并进行详细分析。


    注意事项

    在实际操作中,需要注意以下几点:

  • 确保二进制日志配置(log-bin)已开启。
  • 使用mysqlbinlog工具时,需指定正确的日志文件位置和起始Position,否则命令将无效。
  • 二进制日志文件名通常为*,默认生成多个文件,需根据实际情况管理日志文件。
  • 通过熟练掌握以上命令和工具,可以全面了解和管理MySQL的二进制日志,确保数据库的事务安全和高效复制。

    转载地址:http://swte.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nginx配置文件nginx.conf中文详解(总结)
    查看>>
    Nginx配置负载均衡到后台网关集群
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>