备份:能够防止由于机械故障以及人为误操作带来的数据丢失.。
MySQL 备份类型
物理备份 逻辑备份
1、ibbackup
- 官方备份工具
- 收费
- 物理备份
2、xtrabackup
- 开源社区备份工具
- 开源免费,上面的免费版本(老版本有问题,备份出来的数据可能有问题)
- 物理备份
3、mysqldump
- 官方自带备份工具 开源免费
- 逻辑备份(速度慢)
4、mysqlbackup
- mysql 官方备份工具
- innodb 引擎的表mysqlbackup可以进行热备
- 非innodb表mysqlbackup就只能温备
- 物理备份,备份还原速度快
- 适合大规模数据使用
Xtrabackup是开源免费的支持MySQL 数据库热备份的软件,在 Xtrabackup 包中主要有 Xtrabackup 和 innobackupex 两个工具。
安装xtrabackup
wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
rpm -ivh percona-release-latest.noarch.rpm
yum -y install percona-xtrabackup-24.x86_64 #一定要下载这个版本
物理备份
完全备份-----完整备份:
mkdir /xtrabackup/full
mysql -uroot -p’密码’
创建库,表,添加数据模拟正常工作
做完整备份命令
innobackupex --user=root --password=‘密码’ /xtrabackup/full
把新的完整备份复制一份,这是给我们留下保障(可不做)
关闭数据库
systemctl stop mysqld
删除残留目录文件
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
回滚数据
innobackupex --apply-log /xtrabackup/full/刚备份的文件
恢复数据
innobackupex --copy-back /xtrabackup/full/刚备份的文件
修改权限
chown mysql.mysql /var/lib/mysql -R
重启
systemctl start mysqld
查看
OK
增量备份: 每次备份上一次备份到现在产生的新数据
先创实验数据
做一次完整备份
innobackupex --user=root --password=‘密码’ /xtrabackup
添加数据
添加增量备份
innobackupex --user=root --password=‘密码’ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/一次完整备份文件
关闭数据库
systemctl stop mysqld
删除残留目录文件
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
回滚数据
innobackupex --apply-log /xtrabackup/full/一次完整备份文件
回滚增量数据
innobackupex --apply-log --redo-only /xtrabackup/一次完整
备份文件 --incremental-dir=/xtrabackup/增量文件恢复数据
innobackupex --copy-back /xtrabackup/full/刚备份的文件
修改权限
chown mysql.mysql /var/lib/mysql -R
重启
systemctl start mysqld查看
OK
差异备份:只备份跟完整备份不一样的
跟增量步骤差不多,不过每次都是基于一次备份文件做增量
直接上图,有问题留言