MySQL 备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一次二进制日志备份。这样在 MySQL 故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间。
一、mysqldump 备份结合 binlog 日志恢复
1、binlog介绍
mysql 的二进制日志记录着该数据库的所有增删改的操作日志,还包括了这些操作的执行时间。我们可以使用mysqlbinlog 命令来查看其内容。
(1)binlog用途:
主从同步,恢复数据库
(2)开启binlog
通过编辑 my.cnf 中的 log_bin 选项可以开启二进制日志,每次重启 mysql 服务或运行mysql> flush logs;都会生成一个新的二进制日志文件,这些日志文件的 number 会不断地递增。除了生成上述的文件外还会生成一个名为filename.index 的文件。这个文件中存储所有二进制日志文件的清单又称为二进制文件的索引。
用 mysql> show variables like 'log_bin';查看 bin-log 是否开启,如图:
(3)mysql 提供两种方式查看binlog方式,我们先对数据库进行一下增删改的操作,否则 log 里边数据有点空。
查看 MySQL Server 上的二进制日志:
(4)查看二进制日志信息的命令:
语法格式:SHOW BINLOG EVENTS[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
(5)查看二进制日志中的事件
mysql> show binlog events;
默认显示可找到的第一个二进制日志文件中的事件,包含了日志文件名、事件的开始位置、事件类型、结束位置、信息等内容。
查看指定的二进制日志中的事件:
mysql> show binlog events in 'mysql-bin.';
该命令还包含其他选项以便灵活查看
mysql> show binlog events in 'mysql-bin.' from 219 limit 1,3