mysql binlog

Binlog 简介

MySQL中一般有以下几种日志:

日志类型写入日志的信息
错误日志 记录在启动,运行或停止mysqld时遇到的问题
通用查询日志 记录建立的客户端连接和执行的语句
二进制日志 记录更改数据的语句
中继日志 从复制主服务器接收的数据更改
慢查询日志 记录所有执行时间超过 long_query_time 秒的所有查询或不使用索引的查询
DDL日志(元数据日志) 元数据操作由DDL语句执行

MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。binlog 的主要目的是复制和恢复

Binlog日志的两个最重要的使用场景

  • MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的
  • 数据恢复:通过使用 mysqlbinlog工具来使恢复数据

常用的Binlog操作命令

# 是否启用binlog日志
show variables like '%log_bin%';

# 查看详细的日志配置信息
show global variables like '%log%';

# mysql数据存储目录
show variables like '%dir%';

# 查看binlog的目录
show global variables like "%log_bin%";

# 查看当前服务器使用的biglog文件及大小
show binary logs;

# 查看最新一个binlog日志文件名称和Position
show master status;

# 事件查询命令
# IN 'log_name' :指定要查询的binlog文件名(不指定就是第一个binlog文件)
# FROM pos :指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
# LIMIT [offset,] :偏移量(不指定就是0)
# row_count :查询总条数(不指定就是所有行)
show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

# 查看 binlog 内容
show binlog events;

# 查看具体一个binlog文件的内容 (in 后面为binlog的文件名)
show binlog events in 'master.000003';

 

-- 把二进制binlog日志转化成为文本
cd C:\Program Files\MySQL\mysql-5.7.24-winx64\bin
mysqlbinlog -vv --base64-output=decode-rows ../data/mysql-bin.000107> d:/tt.txt
mysqlbinlog -vv --base64-output=decode-rows ../data/mysql-bin.000107 --start-datetime="2021-09-18 08:00:00" --stop-datetime="2021-09-18 08:10:00"  > d:/tt2.txt

 

cd C:\ProgramData\MySQL\MySQL Server 8.0\bin
C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\"Program Files"\MySQL\"MySQL Server 8.0"\bin\mysqlbinlog.exe -vv --base64-output=decode-rows Data\binlog.000073> d:/tt.txt

 

230313
# 查看详细的日志配置信息
show variables like '%log_bin%'
# 查看最新一个binlog日志文件名称和Position
show master status
# 把二进制binlog日志转化成为文本
cd C:\ProgramData\MySQL\MySQL Server 8.0
C:\"Program Files"\MySQL\"MySQL Server 8.0"\bin\mysqlbinlog.exe -vv --base64-output=decode-rows Data\LAPTOP-B409SF9V-bin.000055> d:/tt.txt

 

230313
# 查看biglog文件及大小
show binary logs;
#远程获取Binlog日志
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysqlbinlog -ubojun_develop -pWelcome@tesiro2021 -hrm-uf669i76k451z2t95.mysql.rds.aliyuncs.com -R --raw mysql-bin.001652
# 把二进制binlog日志转化成为文本
mysqlbinlog -vv --base64-output=decode-rows mysql-bin.001652 > d:/tt.txt

  

 

查看文章:

https://www.cnblogs.com/whirly/p/10511344.html MySQL Binlog 介绍

https://www.cnblogs.com/wangb2/p/12162242.html mysqlbinlog命令的参数

https://www.jianshu.com/p/ecc3b88bdb18 阿里云RDS的binlog,本地查看

https://help.aliyun.com/document_detail/41751.htm 云数据库RDS MySQL版远程获取Binlog日志并解析Binlog日志

https://www.huluoyun.com/helparticle/69059.html Mysql怎么远程备份binlog日志到本地

 

posted @ 2021-09-18 10:12  草木物语  阅读(91)  评论(0编辑  收藏  举报