安装percona-xtrabackup实现mysql备份还原

安装percona-xtrabackup
yum -y install perl-CPAN perl-DBD-MySQL perl makegcc gcc-c++ patch libgcrypt libgcrypt-devel libaio libaio-devel automakeautoconf bzr bison libtool ncurses5-devel zlib zlib-devel
perl -MCPAN -e 'install "Time::HiRes"'

tar -zvxf percona-xtrabackup-2.1.5.tar.gz
cd percona-xtrabackup-2.1.5
AUTO_DOWNLOAD="yes" ./utils/build.shinnodb51(mysql5.1)

AUTO_DOWNLOAD="yes"./utils/build.sh innodb55(mysql5.5)
复制相应文件至/usr/bin目录

Mysql5.1
cp innobackupex /usr/bin/
cp src/xbcrypt /usr/bin/
cp src/xbstream /usr/bin/
cp src/xtrabackup_plugin /usr/bin/
cp src/xtrabackup_plugin /usr/bin/xtrabackup

Mysql5.5
cp innobackupex /usr/bin/
cp src/xbcrypt /usr/bin/
cp src/xbstream /usr/bin/
cp src/xtrabackup_innodb55 /usr/bin/
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup55
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup_55


5.5备份全库
innobackupex --user=root --password=123456/data/bak/

5.1备份全库
innobackupex --user=root --password=123456--ibbackup=xtrabackup /data/mysqlbak/

压缩备份:
innobackupex --user=databak --password=123456--ibbackup=xtrabackup --stream=tar /data/bak/ | gzip1>/data/bak/a.tar.gz

还原全库
准备还原
innobackupex --user=root --password--defaults-file=/etc/my.cnf --apply-log /data/bak/2013-11-12_23-44-45/

开始还原
innobackupex --user=root --password--defaults-file=/etc/my.cnf --copy-back /data/bak/2013-11-12_23-44-45/


重新赋权:

chown -R mysql:mysql /var/lib/mysql

启动mysql
/etc/init.d/mysql start


增量备份:

基于目录的增备:
/data/bak/2013-11-12_23-44-45(全备目录)
innobackupex --user=root --password=123456--incremental /data/bak/ --incremental-basedir=/data/bak/2013-11-12_23-44-45

基于lns的增备(方法与基于目录的增备相同):
Lsn的值参照如下图所示:
 
innobackupex --user=root --password=123456--incremental /data/bak/ --incremental-lsn=722499939


备份的时候提示Warning
This procedure only affects XtraDB orInnoDB-based tables. Other tables with a different storage engine, e.g. MyISAM,will be copied entirely each time an incremental backup is performed.
官方提示:增量备份仅针对innodbxtradb引擎,myisam在运行增量备份时实际上是完全复制的全备份(全备会锁全库)。

数据库还原(测试)
/etc/init.d/mysql stop;
mv  /var/lib/mysql /var/lib/mysqlbak(一般情况下,不要让rm成为习惯,习惯mv可以尽量避免误删操作)
准备还原:

innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05 --ibbackup=xtrabackup
将增量备份内容添加进全备份中

innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05 --incremental-dir=/data/bak/2013-11-12_16-59-42
innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05/ --incremental-dir=/data/bak/2013-11-12_17-01-11
innobackupex --apply-log/data/bak/2013-11-12_16-49-05
还原数据库:
mkdir /var/lib/mysql (
2.1.5的版本不需要新建mysql目录,2.1.8开始要自己新建一个目录,否则会报错)
innobackupex --copy-back/data/bak/2013-11-12_16-49-05

重新赋权:

chown -R mysql:mysql /var/lib/mysql
启动mysql

/etc/init.d/mysql start

Xtrabackup中的xtrabackup_binlog_info中记录了bin_logpos的点,通过该值可实现主从。(用这种方式,对中小系统重做主从会非常方便,备份速度快,还原速度也快)
wKioL1SFU5DCGakWAABmP3vgU_c820_small.jpg 

1.部署过程遇到的错误记录
patch: command not found
yum -y install patch

xbcrypt_common.c:24:20: error: gcrypt.h: Nosuch file or directory
yum -y install libgcrypt libgcrypt-devel

你可能感兴趣的:(mysql)