一、percona软件介绍
在线热备份不锁表
1.软件安装
[root@mysql50 ~]# rpm -ivh percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
警告:percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 8507efa5: NOKEY
错误:依赖检测失败:
libev.so.4()(64bit) 被 percona-xtrabackup-24-2.4.20-1.el7.x86_64 需要
perl(DBD::mysql) 被 percona-xtrabackup-24-2.4.20-1.el7.x86_64 需要
perl(Digest::MD5) 被 percona-xtrabackup-24-2.4.20-1.el7.x86_64 需要
rsync 被 percona-xtrabackup-24-2.4.20-1.el7.x86_64 需要
[root@mysql50 ~]# yum -y install percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm ==>>yum 安装自动解决依赖
2.innobackupex命令
--host 主机名
--user 用户名
--port 端口号
--password 密码
--database 数据库名
--database="库名" 一个库
--database="库1 库2" 多个库
--database="库名.表名" 一张表
--no-timestamp 不用日期命令备份文件的存储子目录名
完全备份
]#innobackupex --user 用户名 --password 密码 备份目录名 --no-timestamp
[root@mysql50 ~]# innobackupex --user root --password tarena /allbak --no-timestamp
完全恢复
]#innobackupex --apply-log 目录名 ==>>准备恢复数据
--apply-log:--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。
]#innobackupex --copy-back 目录名 ==>>恢复数据
--copy-back:做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir
[root@mysql51 ~]# systemctl stop mysqld
[root@mysql51 ~]# rm -fr /var/lib/mysql/*
[root@mysql51 ~]# innobackupex --apply-log /root/allbak/
[root@mysql51 ~]# innobackupex --copy--back /root/allbak/
[root@mysql51 ~]# chown -R mysql:mysql /var/lib/mysql
[root@mysql51 ~]# systemctl start mysqld
单张表的操作步骤
删除表空间 .ibd
导出表信息
拷贝表信息到数据库目录下
修改表信息文件的所有者及组用户为mysql
导入表空间
删除数据库目录下的表信息文件
查看表记录
mysql> alter table db5.b discard tablespace;
[root@mysql51 ~]# innobackupex --apply-log --export /root/allbak
[root@mysql51 ~]# cp /root/allbak/b.{ibd,cfg,exp} /var/lib/mysql/db5/
[root@mysql51 ~]# chown mysql:mysql /var/lib/mysql/db5/b.*
mysql> alter table db5.b import tablespace;
[root@mysql51 ~]# rm -fr /var/lib/mysql/db5/b.{cfg,exp}
增量备份--incremental