mysqlbinlog简单介绍

binlog二进制日志包含描述数据库更改的“事件”,如表创建操作或表数据更改。除非使用基于行的日志记录,否则它还包含可能已进行更改的语句的事件(例如,不匹配任何行的DELETE)。二进制日志还包含关于每个语句花费多长时间更新数据的信息。二进制日志有两个重要的用途:

1、备份,用于从服务器的备份。主服务器将二进制日志中包含的事件发送给从服务器,从服务器执行这些事件以对主服务器进行相同的数据更改。

2、恢复,某些数据恢复操作需要使用二进制日志。备份恢复后,将重新执行备份后记录的二进制日志中的事件。这些事件使数据库从备份时起保持最新的数据。

其中:二进制日志不用于SELECT或SHOW等不修改数据的语句。在进行了修改后数据不变的情况下也会将此修改记录到二进制文件。要记录所有语句(例如,要识别问题查询),请使用常规查询日志。

在运行启用了二进制日志记录的服务器会使性能稍微降低。但是,二进制日志的好处是允许您设置复制和恢复操作,这个小的性能下降不会影响到数据库的正常操作。

但是,二进制记录文件的前提是必须将修改任务执行完毕,只有完整的事件或事务才会被记录或读取。

binlog的   优点:不需要记录每条数据的变化,只记录怎样操作数据的语法,减少了IO,提高性能

                缺点:会产生大量的日志,尤其是alter table的时候会让日志暴涨。

新特性:

从MySQL 8.0.14开始,二进制日志文件可以被加密,帮助保护这些文件和其中包含的潜在敏感数据不被外部攻击者滥用,也不被存储它们的操作系统的用户未经授权地查看。通过将binlog_encryption系统变量设置为on,可以在MySQL服务器上启用加密。

在此我们简单的介绍了mysql的binlog更多binlog请到官网自行阅读。https://dev.mysql.com/doc/refman/8.0/en/binary-log.html

 

binlog的配置

1、找到数据库配置文件my.cfn在文件中的[mysql]下配置

server_id=1918
log_bin = mysql-bin
binlog_format = ROW

 2、关闭数据库服务,并且重新启动

systemctl stop mysqld.service
systemctl start mysqld.service

3、在数据库中查看是否修改了log_bin为no

mysql> show variables like 'log_%';

4、这样bin_log已开启我们简单测试一下

1.查看所有binlog日志列表
mysql> show master logs;

2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
mysql> show master status;

3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件
mysql> flush logs;
注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;

4.重置(清空)所有binlog日志
mysql> reset master;

目前我们还没有看到里面的具体内容,因为其为二进制文件,所以我们不可以直接查看,所以我们引出下面的查看方法。

在查看之前我们可以看到开启bin_log后会产生2个文件

其中 二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。

1、我们使用mysql自带的查看工具mysqlbinlog

注: server id 1918 数据库主机的服务号;
end_log_pos 123 pos点
thread_id=11 线程号 

由于我们没有写任何对数据库的操作,所以我们看不到任何被操作的日志信息。我们手动写一些语句。再看其结果。

我们写了一个创建binlog库的语句再次查看

2、通过sql语句进行查询

 mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

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

下一篇我们继续学习mysqlbinlog的备份与恢复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysqlbinlog是一个MySQL的二进制日志解析工具,用于查看和分析MySQL的二进制日志文件。它可以将二进制日志转换成可读的文本格式,以便于进行数据恢复、数据分析和性能优化等操作。 根据引用,使用命令"mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名"可以将指定的二进制日志文件解析并还原到指定的数据库中。 根据引用,使用命令"/application/mysql3306/bin/mysqlbinlog /application/mysql3306/mysql_data/mysql-bin.000002"可以解析指定的二进制日志文件。 根据引用,使用命令"./mysqlbinlog --stop-position=261419 --database=数据库 /data/mysql-3306/data/mysql-bin.000004 | ./mysql -uroot -p密码 -v 数据库"可以解析指定的二进制日志文件,并将其还原到指定的数据库中。 总结起来,mysqlbinlog是一个用于解析MySQL二进制日志的工具,可以通过命令行操作来实现解析和还原操作。根据不同的需要,可以使用不同的命令来进行解析和还原操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [mysql binlog详解](https://blog.csdn.net/sinat_32430939/article/details/121533785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值