一、准备mysql环境


1.1、安装mysql依赖软件

[root@shop src]# yum install -y gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* cmake bison bison-devel*
[root@shop src]# wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
[root@shop src]# wget 
[root@shop src]# tar -zxvf cmake-2.8.8.tar.gz
[root@shop src]# cd cmake-2.8.8
[root@shop cmake-2.8.8]# ./bootstrap
[root@shop cmake-2.8.8]# gmake && gmake install
[root@shop cmake-2.8.8]# cd ../ && tar -zxvf bison-2.5.tar.gz
[root@shop bison-2.5]# cd bison-2.5
[root@shop bison-2.5]# ./configure
[root@shop bison-2.5]# make && make install


1.2、安装mysql

[root@shop ~]#  wget 'http://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.34.tar.gz' -O /usr/local/src
[root@shop ~]# cd /usr/local/src/ 
[root@shop src]# tar –zxvf mysql-5.6.32.tar.gz
[root@shop src]# cd mysql-5.6.32
[root@shop mysql-5.6.32]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/
[root@shop mysql-5.6.32]# make && make install
[root@shop mysql-5.6.32]# mkdir -p /data/mysql
[root@shop mysql-5.6.32]# chown -R mysql.mysql /data/mysql
[root@shop mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@shop mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@shop mysql]# chmod +x /etc/init.d/mysqld
[root@shop mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql/


1.3、创建mysql用户及准备rds恢复数据

[root@shop mysql-5.6.32]# useradd -u 49 -M -s/sbin/nologin mysql
[root@shop mysql-5.6.32]# wget -c 'http://rdsbak-qd.oss-cn-qingdao-a-internal.aliyuncs.com/cxxxx7/xxxxx_data_xxxxxx.tar.gz?OSSAccessKeyId=xxxxauj3xxx40hb&Expires=xxxxxx&Signature=EioKxxxxAnnLn2JYJpxxxxxo%3D' -O ./mysqlbin.tar 
[root@shop mysql-5.6.32]# tar -zxvf mysqlbin.tar


二、安装perconna

[root@shop src]# wget http://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/binary/redhat/6/x86_64/Percona-XtraBackup-2.2.10-re623acb-el6-x86_64-bundle.tar
[root@shop src]# tar -xvf Percona-XtraBackup-2.2.10-re623acb-el6-x86_64-bundle.tar
[root@shop src]# yum -y install perlperl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-ExtUtils-CBuilderperl-ExtU tils-MakeMaker libdigest-perl-md5-perl perl-Digest-MD5
[root@shop src]# rpm -ivh percona-xtrabackup-2.2.10-1.el6.x86_64.rpm


三、恢复数据

[root@shop src]# innobackupex --apply-log /data/mysql-bak/
[root@shop src]# innobackupex --copy-back /data/mysql-bak/


最后恢复的结尾出现ok表示恢复成功,最后再重新赋予mysql主目录的属主就可以启动了

[root@shop mysql-5.6.32]# chown -R mysql.mysql /data/mysql



四、使用percona执行完整和增量备份

4.1、完整备份

[root@shop ~]# innobackupex --user=mysql /data/backup

/data/backup指定备份位置


4.2、增量备份

[root@shop ~]# innobackupex --incremental /data/backup --incremental-basedir=/data/backup

“--incremental-basedir”选项指定上一次完整或增量备份的存放目录

“--incremental”选项指明是增量备份


五、恢复完整备份和增量备份

5.1回滚完整备份、

[root@shop ~]# innobackupex --apply-log --redo-only /data/backup


5.2、回滚增量备份、

[root@shop ~]# innobackupex --apply-log --redo-only /data/backup --incremental-dir=/data/backup/increment-backup-dir

回滚增量备份的时候要指定完整备份的所在目录,且指定要回滚的增量备份的所在目录

不管有几个增量备份,都必须要指定完整备份的所在目录


5.3、恢复完整备份

[root@shop ~]# innobackupex --copy-back /data/backup

恢复时只需要恢复完整备份就好,因为增量备份已经回滚到完整备份了


六、导入或导出单张表

6.1、前提(设置设置mysql的两个变量)

导出的数据库设置innodb_file_per_table=1
导入的数据库设置innodb_file_per_table=1,innodb_expand_import=1


6.2、导出单张表

[root@shop ~]# innobackupex --user=mysql /data/mysql
[root@shop ~]# innobackupex --apply-log --export /data/backup/mytable


上面的命令会为每个innodb表的表空间创建一个以.exp结尾的文件,恢复的时候需要这个文件



6.3、导入单张表(导入时要先在目标服务器上创建一个跟还原的表的表结构一致的表,然后删除表空间)

mysql> create table mytable (...) ENGINE=InnoDB;
mysql> alter table mydatabase.mytable discard tablespace;


6.4、将导出表生成的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录并执行

mysql> alter table mydatabase.mytable import tablespace;