Mysql之binlog日志说明及利用binlog日志恢复数据操作记录(重要操作)

借鉴:https://www.cnblogs.com/kevingrace/p/5907254.html#top

Linux :https://www.cnblogs.com/hanyifeng/p/5756462.html

     mysql数据库来说是十分重要的(博主体验过一次删库,就差跑路了,还好弄回来了)。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷!

 

一、初步了解binlog
MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
---------------------------------------------------------------------------------------------------------------------------------
DDL
----Data Definition Language 数据库定义语言 
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

DML
----Data Manipulation Language 数据操纵语言
主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
---------------------------------------------------------------------------------------------------------------------------------

mysqlbinlog常见的选项有以下几个:
--start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
--stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
--start-position:从二进制日志中读取指定position 事件位置作为开始。
--stop-position:从二进制日志中读取指定position 事件位置作为事件截至

*********************************************************************

一般来说开启binlog日志大概会有1%的性能损耗。
binlog日志有两个最重要的使用场景: 
1)MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到
master-slave数据一致的目的。 
2)自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
binlog日志包括两类文件:
1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件
2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。

开启数据库日志

1、查看是否开启binlog日志(一般没有开启)

扫描二维码关注公众号,回复: 4727780 查看本文章
show variables like 'log_%'; 

  1. 找到C:\ProgramData\MySQL\MySQL Server 5.7\my.ini文件(注意:是C盘下隐藏文件夹ProgramData,而不是Program Files下)  

# Binary Logging

# log-bin

log_bin = mysql_bin

#binlog日志格式,默认为STATEMENT

binlog_format = ROW

 

(Tip)常用简单属性说明:除了以上log_bin、binlog_format两个简单的配置外,还可以有其他的属性配置

log-bin = /xxx/xxx/mysql_bin #binlog日志文件,以mysql_bin开头,六个数字结尾的文件:mysql_bin.000001,并且会将文件存储在相应的xxx/xxx路径下,如果只配置mysql_bin的话默认在C:\ProgramData\MySQL\MySQL Server 5.7\Data下;

binlog_format = ROW #binlog日志格式,默认为STATEMENT:每一条SQL语句都会被记录;ROW:仅记录哪条数据被修改并且修改成什么样子,是binlog开启并且能恢复数据的关键;

expire_logs_days= 7 #binlog过期清理时间;

max_binlog_size = 100m #binlog每个日志文件大小;

binlog_cache_size = 4m #binlog缓存大小;

max_binlog_cache_size = 512m #最大binlog缓存大小。

 

3、重启mysql服务(如果下面的不行,自己百度)

windows环境下MySQL重启的命令行说明

windows+R  弹出运行框   在运行框中输入cmd  + 回车  进入系统的dos窗口

.停止mysql:输入 net stop mysql;

.启动mysql:输入 net start mysql;

 

猜你喜欢

转载自blog.csdn.net/qq_36120342/article/details/84343565