xtrabackup安装与使用

--###安装xtrabackup
su - root
yum install perl-Time-HiRes


ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

vi .bash_profile
export PATH=$PATH:/usr/local/mysql/bin

source .bash_profile

--直接运行会报错 /usr/bin/mysql is needed by percona-xtrabackup-2.0.7-552.rhel6.x86_64
rpm -ivh percona-xtrabackup-2.0.7-552.rhel6.x86_64.rpm --nodeps


--###备份测试
--1、准备数据
su - mysql
mysql> create database testdb;
mysql> use testdb;
mysql> create table test1 (id int ,name varchar(32));
mysql> insert into test1 (id,name) values (1,'aaa');
mysql> insert into test1 (id,name) values (2,'bbb');

--2、在线全备份 备份文件xtra_ful_bak.tar.gz
innobackupex --defaults-file=/etc/mysql/my.cnf --user mysql --password mysql --stream=tar /tmp |gzip -> /data/sql1/backup/xtra_ful_bak.tar.gz

--3、模拟文件丢失
cd /data/sql1/data
rm -fr *

--###本机恢复
--1、全量恢复 要保证datadir和logdir下文件为空,否则会报错
su - mysql
cd /data/sql1/log
rm -fr *

--2、备份解压
mkdir /data/sql1/backup/xtra_ful_bak
tar -ixvf /data/sql1/backup/xtra_ful_bak.tar.gz -C /data/sql1/backup/xtra_ful_bak

--3、执行恢复
ps -ef |grep -i mysql

kill mysql进程

innobackupex --defaults-file=/etc/mysql/my.cnf --user=mysql --password=mysql --use-memory=100M --apply-log /data/sql1/backup/xtra_ful_bak
innobackupex --defaults-file=/etc/mysql/my.cnf --user=mysql --password=mysql --use-memory=100M --copy-back /data/sql1/backup/xtra_ful_bak


--3、mysql服务正常启动
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf &


--4、数据都在
mysql> select * from test1;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 2 | bbb |
+------+------+
2 rows in set (0.01 sec)

--###异机 重定向还原 路径不同 sql1 -> sql2
--1、远程复制备份文件
su - mysql
scp -r mysql@192.168.33.190:/data/sql1/backup/xtra_ful_bak.tar.gz /data/sql2/backup/

mkdir /data/sql2/backup/xtra_ful_bak
tar -ixvf /data/sql2/backup/xtra_ful_bak.tar.gz -C /data/sql2/backup/xtra_ful_bak

ps -ef|grep -i mysql
kill mysql进程


--2、清理数据文件和日志文件
cd /data/sql1/data
rm -fr *
cd /data/sql1/log
rm -fr *

--3、还原数据库 重定向依赖 sql2服务器上的my.cnf配置的路径
innobackupex --defaults-file=/etc/mysql/my.cnf --user=mysql --password=mysql --use-memory=100M --apply-log /data/sql2/backup/xtra_ful_bak
innobackupex --defaults-file=/etc/mysql/my.cnf --user=mysql --password=mysql --use-memory=100M --copy-back /data/sql2/backup/xtra_ful_bak


--4、mysql服务正常启动
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf &


--5、数据都在
mysql> select * from test1;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 2 | bbb |
+------+------+
2 rows in set (0.01 sec)

原文地址:https://www.cnblogs.com/justdba/p/7126778.html