Percona XtraBackup 完全及增量备份与恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。其主要特点是备份过程快速、可靠,不会打断正在执行的事务,能够基于压缩等功能节约磁盘空间和流量,自动实现备份检测及其还原速度快。

二、安装及备份、恢复实现           


安装:其最新版的软件可从 获得。本文基于CentOS6.x的系统,因此,直接下载相应版本的rpm包安装即可,这里不再演示其过程。

1 yum -y install percona-toolkit-2.2.4-1.noarch.rpm percona-xtrabackup-2.1.8-733.rhel6.x86_64.rpm

完全备份及删除数据目录实现恢复:

mysql>set session_sql_log_bin=0; #导入数据时让其不记录二进制日志
mysql>source /root/hellodb.sql  #导入数据
mysql>set session_sql_log_bin=1; #开启二进制日志
[root@centos6]#innobackupex --user=root /mybackups/  #全量备份
[root@centos6]#service mysqld stop  #停止数据库,删除数据目录
[root@centos6]#rm -rf /mydata/data/*
[root@centos6]#innobackupex --apply-log /mybackups/2016-11-22_15-39-09/ #准备完全备份
[root@centos6]#innobackupex --copy-back /mybackups/2016-11-22_15-39-09/ #从完全备份中恢复数据
[root@centos6 data]# ll #数据已然恢复成功
总用量 28688
drwxr-xr-x. 2 root root    4096 11月 22 15:43 hellodb
-rw-r--r--. 1 root root 18874368 11月 22 15:43 ibdata1
-rw-r--r--. 1 root root  5242880 11月 22 15:43 ib_logfile0
-rw-r--r--. 1 root root  5242880 11月 22 15:43 ib_logfile1
drwxr-xr-x. 2 root root    4096 11月 22 15:43 mysql
drwxr-xr-x. 2 root root    4096 11月 22 15:43 performance_schema
drwxr-xr-x. 2 root root    4096 11月 22 15:43 test
[root@centos6 data]# chown -R mysql.mysql ./* #改变属组和属组
[root@centos6 data]# ll
总用量 28688
drwxr-xr-x. 2 mysql mysql
  4096 11月 22 15:43 hellodb
-rw-r--r--. 1 mysql mysql 18874368 11月 22 15:43 ibdata1
-rw-r--r--. 1 mysql mysql  5242880 11月 22 15:43 ib_logfile0
-rw-r--r--. 1 mysql mysql  5242880 11月 22 15:43 ib_logfile1
drwxr-xr-x. 2 mysql mysql    4096 11月 22 15:43 mysql
drwxr-xr-x. 2 mysql mysql    4096 11月 22 15:43 performance_schema
drwxr-xr-x. 2 mysql mysql    4096 11月 22 15:43 test
[root@centos6 data]#service mysqld start #启动数据库,在恢复数据库时数据库无需启动

从安全角度考虑,如果要使用一个最小权限的用户进行备份,可创建此用户进行完全备份

mysql>create user 'bkuser'@'localhost' identified by 'passw ord'
mysql>revoke all privileges,grant option from 'bkuser';
mysql>grant reload,lock tables,replication clinet on *.* to 'bkuser'@'localhost'
mysql>flush privileges;

xtrabackup备份文件说明:

使用innobakupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命令的目录中。

[root@centos6 2016-11-22_19-06-45]# ll
总用量 18472
-rw-r--r--. 1 root root      260 11月 22 19:06 backup-my.cnf
drwx------. 2 root root    4096 11月 22 19:06 hellodb
-rw-r-----. 1 root root 18874368 11月 22 19:06 ibdata1
drwx------. 2 root root    4096 11月 22 19:06 mydb
drwxr-xr-x. 2 root root    4096 11月 22 19:06 mysql
drwxr-xr-x. 2 root root    4096 11月 22 19:06 performance_schema
drwxr-xr-x. 2 root root    4096 11月 22 19:06 test
-rw-r--r--. 1 root root      13 11月 22 19:06 xtrabackup_binary
-rw-r--r--. 1 root root      24 11月 22 19:06 xtrabackup_binlog_info
-rw-r-----. 1 root root      89 11月 22 19:06 xtrabackup_checkpoints
-rw-r-----. 1 root root    2560 11月 22 19:06 xtrabackup_logfile
[root@centos6 2016-11-22_19-06-45]# cat xtrabackup_checkpoints
backup_type = full-backuped #备份类型,例如完全备份、增量备份等
from_lsn = 0 #日志序列号从0开始
to_lsn = 1649842 #日志序列号到哪
last_lsn = 1649842 #日志序列号到哪结束
compact = 0
[root@centos6 2016-11-22_19-06-45]# cat xtrabackup_binlog_info #当前正使用的二进制日志文件及其二进制位置
master-bin.000005  245
[root@centos6 2016-11-22_19-06-45]# cat xtrabackup_binary #备份中用到的xtrabackup的可执行文件
xtrabackup_55
[root@centos6 2016-11-22_19-06-45]# cat backup-my.cnf #备份命令中用到的配置选项信息
# This MySQL options file was generated by innobackupex.
 
# The MySQL server
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_fast_checksum=0
innodb_page_size=16384
innodb_log_block_size=512
[root@centos6 2016-11-22_19-06-45]#

使用innobackupex进行增量备份及数据恢复:

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

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