mysql dump备份结合binlog日志恢复
mysql备份一般采取全库备份加日志备份的方式,例如每天执行一次全库备份,每小时执行一次二进制日志备份。这样在mysql故障后可以使用全库备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置和时间。
1.binlog介绍
mysql二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作
的执行时间,为了显示这些二进制的内容,我们可以使用mysqlbinlog命令来查看。
binlog的用途:
1.主从同步 2.恢复数据库
开启binary log功能
通过编辑my.cnf中的log-bin选项可以开启二进制日志;形式如下:
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
server-id=1
log-bin=mysql-bin
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
log-bin[=DIR/[filename]]
其中,DIR参数指定二进制文件的存储路径;filename参数指定二进制文件的文件名,其形式为filename.number,number的形式为
000001、000002等。每次重启mysql服务或运行flush logs;
mysql>flush logs;
都会生成一个新的二进制日志文件,这些日志文件的number会不断地递增
除了生成上述的文件外还会生成一个名为filename.index的文件。这个文件中存储所有二进制日志文件的清单又称为二进制文件的索引
配置保存以后重启mysql的服务器,用mysql>show variables like 'log_bin'; 查看bin-log是否开启,如图:
mysql> show variables like 'log_bin';
查看产生的binary log 注意:查看binlog内容是为了恢复数据
binlog因为是二进制文件,不能通过文件内容查看命令直接打开查看,mysql提供了两种查看方式:
(1)查看MySQL Server上的二进制日志
mysql> show binary logs;
(2.)查看二进制日志信息的命令:
mysql> show binlog events in 'mysql-bin.000002' from 219 limit 1,3;
(3.)查看二进制日志中的事件
默认显示可找到的第一个二进制日志文件中的事件,包含了日志文件名,事件的开始位置、事件类型、结束位置、信息等内容
mysql> show binlog events;
(4.)查看指定的二进制日志中的事件
mysql> show binlog events in 'mysql-bin.000002';