Xtrabackup 备份与恢复
1.安装xtrabackup
# yum -y install perl perl-devel libaio libaio-devel libev-devel # wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.5/binary/redhat/6/x86_64/percona-xtrabackup-test-24-2.4.5-1.el6.x86_64.rpm # rpm -ivh percona-xtrabackup-test-24-2.4.5-1.el6.x86_64.rpm
Xtrabackup提供了两种备份工具:xtrabackup和innobackupex
xtrabackup不能用于备份myisam
2.innobackup全库备份
# innobackupex --user=root --password=123456 --host=127.0.0.1 /data/dbbak/innobackupex
备份完成后会在/data/dbbak/innobackupex 下面生成一个以时间命名的目录
xtrabackup_binlog_info文件记录了binlog日志的位置
3.全库恢复
先停服,再清空 mysql数据目录
# /etc/init.d/mysqld stop # rm -rf /data/mysqldb/* # innobackupex --defaults-file=xxx --apply-log ./2017-08-25_10-33-47 # innobackupex --defaults-file=xxx --copy-back ./2017-08-25_10-33-47 # chown -R mysql:mysql /data/mysqldb
启动mysql
# /etc/init.d/mysqld start
4.备份单个库
--database='test test1 test2' 指定你需要备份的那几个库名,用单引号把这些库名引起来,每个库中间用空格隔开。
# innobackupex --user=root --password=123456 --databases='test' /data/dbbak/innobackupex
5. 恢复单个库
停止mysql3307 ,清空数据目录
初始化数据库
# mysql_install_db --user=mysql --defaults-file=/etc/my.cnf mysql_install_db --user=mysql --basedir=/data/apps/mysql3307/ --datadir=/data/mysqldb3307/
将备份文件拷贝到数据目录/data/mysqld3307下
# \cp -r /data/dbbak/innobackupex/2018-03-09_17-41-34/* /data/mysqldb3307/ # chown -R mysql:mysql /data/mysqldb3307
启动mysql3307