当前位置:
首页 >
mysql-二进制日志
发布时间:2025/3/21
25
豆豆
生活随笔
收集整理的这篇文章主要介绍了
mysql-二进制日志
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
mysql---二进制日志
记录了所有对MySQL数据库的修改事件,包括增删改查事件和对表结构的修改事件
二进制日志的开启
#是否启用了日志 mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+[mysqld]log-bin [=DIR \ [filename]]log_bin=mysql-bin 名字可以随便起(mysql-bin)格式
binlog_format={STATEMENT|ROW|MIXED}基于段的日志格式
优点
缺点
操作
mysql> show variables like 'binlog_format';mysql> set session binlog_format=statement;mysql> show binary logs; mysql> flush logs;行日志格式
同一SQL语句修改了10000条数据的情况下
- 基于段的日志格式只会记录这个SQL语句
- 基于行的日志会有10000条记录分别记录每一行的数据修改
优点
误操作而修改了数据库中的数据,同时又没有备份可以恢复时,我们就可以通过分析二进制日志,对日志中记录的数据修改操作做反向处理的方式来达到恢复数据的目的
缺点
混合日志格式
binlog_format=MIXED特点
- 根据SQL语句由系统决定基于段和基于行的日志格式中进行选择
- 数据量的大小由所执行的SQL语句决定
二进制日志格式对复制的影响
基于SQL语句(statement)复制(SBR)
优点
缺点
基于行的复制(PBR)
优点
缺点
查看二进制日志
数据库会话查看
#显示当前服务器使用的二进制文件及大小 mysql> show binary logs#显示主服务器使用的二进制文件及大小 mysql> show master logs;#当前使用的二进制文件及所处位置 mysql> show master status#lush logs一般只会滚动中继日志和二进制日志 mysql> flush logs;#二进制日志的记录位置,通常为上一个事件执行结束时间的位置 mysql> showmaster status; #...数据库的增删改查 #观察二进制位置的变化 mysql> show master status; #查看所有的二进制信息 mysql> show binlog events\G; #查看指定日志的二进制信息 mysql> show binlog events in 'mysql-bin.000011'; #从指定的事件位置开始 mysql> show binlog events in 'mysql-bin.000011' from 190; #指定偏移量(不是语句,是事件) mysql> showbinlog events in 'mysql-bin.000011' from 190 limit 3;命令行mysqlbinlog
二进制日志删除
长时间不清理会浪费很多的磁盘空间,但是删除后可能导致数据库崩溃无法进行恢复.
若要删除二进制日志首先将其和数据库备份一份
#删除所有的二进制日志(不可效仿) mysql> reset master; #根据文件或时间点来删除二进制日志 # TO 'log_name' 删除文件之前的所有文件 mysql> PURGE { BINARY | MASTER } LOGS {TO 'log_name' | BEFORE datetime_expr } #使用时间来删除二进制日志 mysql> PURGEBINARY LOGS BEFORE '13-10-19 10:26:36';转载于:https://www.cnblogs.com/sxchengchen/p/7857018.html
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的mysql-二进制日志的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: JAVA 解析xml字符串
- 下一篇: C#中RichEdit控件,保存文本和图