一:percona-xtrabackup 物理备份
1.简介
它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。
percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本–percona Server。并围绕percona Server还发布了一系列的mysql工具。
2.备份方式
完全备份:全部数据进行备份
增量备份:每次备份上一次备份到现在产生的新数据
比如我在周一进行了一次全备,周二的时候就不需要全备了,如果还全备,会浪费我们的磁盘空间,这个时候,周二我们就可以适用增量备份.周三四五六日都可以逐天进行一个增量备份.就是比如周一做了一个全备,然后到周二你现在准备做备份了,就是周一全备之后到周二备份之前的新数据可以做一个增量备份.
差异备份:只备份跟完整备份不一样的
3.软件安装
它是一个第三方软件,需要自行安装.
# wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1- 4.noarch.rpm
# rpm -ivh percona-release-0.1-4.noarch.rpm
关掉签名机制
# yum -y install percona-xtrabackup-24.x86_64
注意:
如果依赖包perl-DBD-MySQL安装不上,需先把percona源拿掉用centos的源单独安装,然后再安装percona- xtrabackup-24.x86_64
[root@e9fcf0f73504 yum.repos.d]# mv percona-release.repo percona-release.repo.bak [root@e9fcf0f73504 yum.repos.d]# yum -y install perl-DBD-MySQL
[root@e9fcf0f73504 yum.repos.d]# mv percona-release.repo.bak percona-release.repo [root@e9fcf0f73504 yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64
注意:
Percona-Server-shared与mysql-community-server冲突。
解决方案:
原来是需要安装mysql-community-libs-compat
[root@localhost ~]# wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
--2020-05-09 00:32:16-- http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
正在解析主机 www.percona.com (www.percona.com)... 74.121.199.234
正在连接 www.percona.com (www.percona.com)|74.121.199.234|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:https://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [跟随至新的 URL]
--2020-05-09 00:32:17-- https://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
正在连接 www.percona.com (www.percona.com)|74.121.199.234|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:6555 (6.4K) [application/x-redhat-package-manager]
正在保存至: “percona-release-0.1-4.noarch.rpm”
100%[===================================================================================================>] 6,555 --.-K/s 用时 0s
2020-05-09 00:32:18 (1.36 GB/s) - 已保存 “percona-release-0.1-4.noarch.rpm” [6555/6555])
[root@localhost ~]# rpm -ivh percona-release-0.1-4.noarch.rpm
准备中... ################################# [100%]
正在升级/安装...
1:percona-release-0.1-4 ################################# [100%]
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vi percona-release.repo
#进入这个软件的yum仓库把gpgcheck的1改为0关闭签名机制
[root@localhost yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64
#然后安装.这个软件安装时候容易出问题,如果出现问题安装不上,上面有常见的问题和解决方法.
4.完整备份
完全备份流程
创建备份目录.
mkdir -p /xtrabackup/full
备份
innobackupex --user=root --password=‘QianFeng@123’ /xtrabackup/full
完全备份恢复流程
- 停止数据库
- 清理环境
- 重演回滚--> 恢复数据
- 修改权限
- 启动数据库
关闭数据库:
# systemctl stop mysqld
# rm -rf /var/lib/mysql/*
# rm -rf /var/log/mysqld.log
# rm -rf /var/log/mysql-slow/slow.log (有则删除,无则不需要操作)
恢复之前的验证恢复:
# innobackupex --apply-log /xtrabackup/full/2020-05-11_15-20-18/
确认数据库目录: 恢复之前需要确认配置文件内有数据库目录指定,不然xtrabackup不知道恢复到哪里 # cat /etc/my.cnf
[mysqld] datadir=/var/lib/mysql
恢复数据:
[root@xingdian mysql]# innobackupex --copy-back /xtrabackup/full/2020-05-11_15-20-18/
修改权限:
[root@xingdian mysql]# chown mysql.mysql /var/lib/mysql -R
启动数据库:
[root@xingdian mysql]# systemctl start mysqld
验证数据:
[root@xingdian mysql]# mysql -u root -pxxxx
mysql> show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+