使用xtrabackup备份mysql数据库(全备,增量, 差异备份)

使用xtrabackup备份mysql数据库(全备,增量, 差异备份)

1、数据库备份 —xtrabackup

​ 创建的目录

[root@localhost ~]# mkdir -p /xtrabackup/{full,increment,difference}

(1)完全备份
①数据的备份

[root@localhost ~]# cd /xtrabackup/full
##语法:innobackupex --user=数据库用户名(root或授权用户) --password=数据库密码  备份数据要存的目录
[root@localhost full]# innobackupex --user=root --password=Mysql..1113  /xtrabackup/full
[root@localhost full]# ls    #备份的数据以时间戳创建备份目录
2019-11-15_21-50-19

#对数据库进行更改,可在进行备份,同上。

②数据的恢复(–redo-only 表示只回滚已提交的事务, 忽略未提交的事务)
步骤(6步):停止数据库 —> 清理环境 —> 重演回滚 —> 恢复数据 —> 修改权限 —> 启动数据库

##语法:innobackupex --apply-log --redo-only /要恢复的版本目录/     #重演回滚
##语法:innobackupex --copy-back --redo-only /要恢复的版本目录/     #恢复数据
[root@localhost full]# systemctl stop mysqld
[root@localhost full]# rm -rf /var/lib/mysql/*
[root@localhost full]# innobackupex --apply-log --redo-only /要恢复的版本目录/ 
[root@localhost full]# innobackupex --copy-back --redo-only /要恢复的版本目录/  
[root@localhost full]# chown mysql.mysql -R /var/mysql/mysql/
[root@localhost full]# systemctl start mysqld
## 进数据库查看即可看到恢复的数据

(2)增量备份(在完全备份的基础上做)
①数据的备份

[root@localhost ~]# cd /xtrabackup/increment
##语法:innobackupex --user=数据库用户名(root或授权用户) --password=数据库密码  --increateal 增量备份数据存放的目录 --incremental-basedir=/基于的完全备份数据目录/

[root@localhost increment]# innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment  --incremental-basedir=/xtrabackup/full/2019-11-15_21-50-19
[root@localhost increment]# ls 
2019-11-15_22-03-27
## 在数据库进行修改并进行第二次增量备份(基于上一次增量备份而不是完全备份)
[root@localhost increment]# innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment  --incremental-basedir=/xtrabackup/increment/2019-11-15_22-03-27
[root@localhost increment]# ls 
2019-11-15_22-03-27  2019-11-15_22-13-14 
## 在数据库进行修改并进行第三次增量备份(基于上一次增量备份而不是完全备份)
[root@localhost increment]# innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment  --incremental-basedir=/xtrabackup/increment/2019-11-15_22-13-14 
[root@localhost increment]# ls 
2019-11-15_22-03-27  2019-11-15_22-13-14  2019-11-15_22-16-42

②数据的恢复(在此我们操作回滚到第二次增量备份的数据)
步骤(6步):停止数据库 —> 清理环境 —> 重演回滚 —> 恢复数据 —> 修改权限 —> 启动数据库

##语法:innobackupex --apply-log --redo-only /完全备份的目录/ --incremental-dir=/增量的版本依次回滚/    #重演回滚
##语法:innobackupex --copy-back --redo-only /完全备份的目录/     #恢复数据

[root@localhost increment]# systemctl stop mysqld
[root@localhost increment]# rm -rf /var/lib/mysql/*
[root@localhost increment]# innobackupex --apply-log --redo-only /xtrabackup/full/2019-11-15_21-50-19  #先回滚到完全备份 
[root@localhost increment]# innobackupex --apply-log --redo-only /xtrabackup/full/2019-11-15_21-50-19 --incremental-dir=/xtrabackup/increment/2019-11-15_22-03-27  #再回滚到第一次的增量备份
[root@localhost increment]# innobackupex --apply-log --redo-only /xtrabackup/full/2019-11-15_21-50-19 --incremental-dir=/xtrabackup/increment/2019-11-15_22-13-14  #再回滚到第二次的增量备份
[root@localhost increment]# innobackupex --copy-back --redo-only /xtrabackup/full/2019-11-15_21-50-19    #恢复数据
[root@localhost increment]# chown mysql.mysql -R /var/mysql/mysql/
[root@localhost increment]# systemctl start mysqld
## 进数据库查看即可看到恢复的数据

(3)差异备份
①数据的备份

[root@localhost ~]# cd /xtrabackup/difference
##语法:innobackupex --user=数据库用户名(root或授权用户) --password=数据库密码  --increateal 差异备份数据存放的目录 --incremental-basedir=/基于的完全备份数据目录/

[root@localhost difference]# innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment --incremental-basedir=/xtrabackup/full/2019-11-15_21-50-19
[root@localhost difference]# ls 
2019-11-15_22-43-21
## 在数据库进行修改并进行第二次差异备份(基于完全备份)
[root@localhost difference]#  innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment --incremental-basedir=/xtrabackup/full/2019-11-15_21-50-19
[root@localhost difference]# ls 
2019-11-15_22-43-21  2019-11-15_22-45-14 
## 在数据库进行修改并进行第三次增量备份(基于完全备份)
[root@localhost difference]# innobackupex --user=root --password=Mysql..1113 --incremental /xtrabackup/increment --incremental-basedir=/xtrabackup/full/2019-11-15_21-50-19
[root@localhost difference]# ls 
2019-11-15_22-43-21  2019-11-15_22-45-14  2019-11-15_22-50-37

②数据的恢复(在此我们操作回滚到第二次差异备份的数据)
步骤(6步):停止数据库 —> 清理环境 —> 重演回滚 —> 恢复数据 —> 修改权限 —> 启动数据库

##语法:innobackupex --apply-log --redo-only /要恢复的版本目录/ --incremental-dir=/要恢复到的差异版本/    #重演回滚
##语法:innobackupex --copy-back --redo-only /完全备份的目录/     #恢复数据

[root@localhost difference]# systemctl stop mysqld
[root@localhost difference]# rm -rf /var/lib/mysql/*
[root@localhost difference]# innobackupex --apply-log --redo-only /xtrabackup/full/2019-11-15_21-50-19  #先回滚到完全备份 
[root@localhost difference]# innobackupex --apply-log --redo-only /xtrabackup/full/2019-11-15_21-50-19 --incremental-dir=/xtrabackup/increment/2019-11-15_22-45-14  #再回滚到要恢复的差异备份
[root@localhost difference]# innobackupex --copy-back --redo-only /xtrabackup/full/2019-11-15_21-50-19    #恢复数据
[root@localhost difference]# chown mysql.mysql -R /var/mysql/mysql/
[root@localhost difference]# systemctl start mysqld
## 进数据库查看即可看到恢复的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值