使用XtraBackup 备份MySQL数据库(5)

前边只是提供了简单的恢复方法,如果数据库备份之后运行了一段时间,数据库宕机了,如果只恢复备份的数据那就会丢失一部分数据。那这部分数据要怎么恢复呢。答案就是应用binlog。

在启用binlog的数据库中,备份完成后日志中会输出关于binlog的信息,生成的备份目录中也会有一个xtrabackup_binlog_info文件保存备份时的binlog位置。

161214 10:24:34 Executing UNLOCK TABLES
161214 10:24:34 All tables unlocked
161214 10:24:34 [00] Copying ib_buffer_pool to /mysqlbackup//2016-12-14_10-24-27/ib_buffer_pool
161214 10:24:34 [00]        ...done
161214 10:24:34 Backup created in directory '/mysqlbackup//2016-12-14_10-24-27'
#binlog位置
MySQL binlog position: filename 'mysql-bin.000001', position '154'
161214 10:24:34 [00] Writing backup-my.cnf
161214 10:24:34 [00]        ...done
161214 10:24:34 [00] Writing xtrabackup_info
161214 10:24:34 [00]        ...done
xtrabackup: Transaction log of lsn (2677865) to (2677874) was copied.
161214 10:24:34 completed OK!
 
[root@rhel7 2016-12-14_10-24-27]# ls -l
total 77876
-rw-r-----. 1 root root      425 Dec 14 10:24 backup-my.cnf
-rw-r-----. 1 root root      307 Dec 14 10:24 ib_buffer_pool
-rw-r-----. 1 root root 79691776 Dec 14 10:24 ibdata1
drwxr-x---. 2 root root    4096 Dec 14 10:24 mysql
drwxr-x---. 2 root root    8192 Dec 14 10:24 performance_schema
drwxr-x---. 2 root root    8192 Dec 14 10:24 sys
drwxr-x---. 2 root root      87 Dec 14 10:24 test
-rw-r-----. 1 root root      21 Dec 14 10:24 xtrabackup_binlog_info
-rw-r-----. 1 root root      113 Dec 14 10:24 xtrabackup_checkpoints
-rw-r-----. 1 root root      469 Dec 14 10:24 xtrabackup_info
-rw-r-----. 1 root root    2560 Dec 14 10:24 xtrabackup_logfile
#记录binlog位置的文件
[root@rhel7 2016-12-14_10-24-27]# cat xtrabackup_binlog_info
mysql-bin.000001    154

有了这个binlog日志位置就可以应用binlog恢复备份到宕机时间的数据

mysqlbinlog --start-position=154 mysql-bin.000001 | mysql -uroot -p123456

更多XtraBackup相关教程见以下内容

MySQL管理之使用XtraBackup进行热备

使用Xtrabackup进行MySQL备份 

MySQL开源备份工具Xtrabackup备份部署

MySQL Xtrabackup备份和恢复

Percona Xtrabackup 安装 

使用Xtrabackup进行MySQL数据库全备和全备还原 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/51abc8efc1988e589b540397f02493f7.html