1.下载与安装: Xtrabackup官网: http://www.percona.com/
[root@test2 zdh]#wget
http://www.percona.com/redir/downloads/XtraBackup/LATEST/binary/Linux/x86_64/percona-xtrabackup-2.1.3-608.tar.gz
[root@test2 zdh]#tar zxf percona-xtrabackup-2.1.3-608.tar.gz
[root@test2 zdh]#cp percona-xtrabackup-2.1.3/bin/innobackupex /usr/bin/innobackupex
[root@test2 zdh]# cppercona-xtrabackup-2.1.3/bin/xtrabackup /usr/bin/xtrabackup
[root@test2 zdh]# cppercona-xtrabackup-2.1.3/bin/xtrabackup_55/usr/bin/xtrabackup_55 [1]
[root@test2 zdh]#/usr/bin//innobackupex --help [2]
2.备份与还原
2.1备份
[root@test2 backup]# /usr/bin/innobackupex--host=192.168.101.102 --user=test
--password=123456--defaults-file=/usr/local/mysql/my.cnf --database=yuntu --stream=tar/u1/backup/ 2>/u1/backup/backup.log | gzip 1>/u1/backup/backup.tar.gz [3]
[root@test2 backup]#/usr/bin/innobackupex --user=root --password
--socket=/tmp/mysql.sock --defaults-file=/usr/local/mysql/my.cnf--database=yuntu --stream=tar /u1/backup/ 2>/u1/mysql/data/backup.log | gzip1>/u1/backup/backup.tar.gz
参数说明:
2> 表示输出log信息到指定文
1> 表示打包文件存入指定文件
gzip 表示打包的方式,还可以选择pigz (需安装)
--database 表示需要备份的数据库,如果不指定表示备份全库
/u1/backup 指备份目录,这个目录很重要的哦!还原还依赖它
2.2还原
[root@test2 backup]# mysqladmin-S /tmp/mysql shutdown [4]
[root@test2 backup]# tar-izxvf backup.tar.gz
[root@test2 backup]#/usr/bin/innobackupex --user=root --password
--socket=/tmp/mysql.sock--defaults-file=/usr/local/mysql/my.cnf --apply-log /u1/backup/ [5]
[root@test2 backup]#/usr/bin/innobackupex --user=root --password
--socket=/tmp/mysql.sock--defaults-file=/usr/local/mysql/my.cnf --copy-back /u1/backup/
[root@test2 backup]# cpibdata1 /u1/mysql/data/
[root@test2 backup]# cpib_logfile* /u1/mysql/logs/
[root@test2 backup]# cp-f yuntu /u1/mysql/data/yuntu
[root@test2 backup]# chown-R mysql.mysql /u1/mysql/data
2.3重启mysql并验证
[root@test2 backup]# /usr/local/mysql/bin/mysqld�Cdefaults-file=/usr/local/mysql/my.cnf &
[root@test2 backup]# mysql #多实例时: mysql -S /tmp/mysql.sock
[root@test2 backup]#rm -rf xtrabackup* #验证ok后记得善后
[1] 还原的时候需要同现有的mysql版本一致
[2] 查看帮助信息
[3] 备份方式可以有多种,比如可以根据socket+user+cnf+passwd
[4] 这个很重要,如果没有关闭mysql,下面的操作将会直接连上mysql啦
[5] 这里为了安全,没有直接指向/u1/mysql/data/目录,可以在先删除该目录下对应库下内容后,执向该目录并执行对应命令
3.备份脚本(线上环境)
#!/bin/sh
command="/usr/local/xtrabackup/bin/innobackupex --user=root--socket=/tmp/mysql.sock"
args="--slave-info --databases=testDB --defaults-file=/usr/local/mysql/my.cnf --stream=tar ./"
backup_path="/u1/backup/my_bak"
bak_db="testDB"
f_prefix="testDB-"
bak_file=$f_prefix`date +%Y-%m-%d_%H-%M`.tar.gz
#删除10天前的备份
echo "delete old bak"
`find $backup_path/ -mtime +10 -type f -name '*.tar.gz'`
`find $backup_path/ -mtime +10 -type f -name '*.tar.gz' -exec rm-rf {} ';' >/dev/null 2>&1`
echo "delete over"
echo "dbBacup start "`date +%Y%m%d_%H%M`
echo "$command$args|/usr/local/bin/pigz>$backup_path/$bak_file"
`$command $args|/usr/local/bin/pigz>$backup_path/$bak_file`
echo "dbBackup end "`date +%Y%m%d_%H%M`
echo "======================================"
#31 18 * * * (sh -x /u1/script/xtra_backup.sh>>/u1/backup/my_bak/bak.log)
#注意:以上脚本中,pigz包如果系统中默认没有安装,需要自行下载安装后方可使用