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–defaults-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包如果系统中默认没有安装,需要自行下载安装后方可使用