mysql-----innobackupex(数据增量备份与恢复---差异备份与恢复)

数据增量备份与恢复

说明:增量备份是备份 上次备份后新产生的数据 所以在执行增量备份之前 必须得现有一次备份 不然的话无法得知那些数据是新数据
通常增量备份之前的备份 就应该是完全备份 比如 每周的周一都对数据做完全备份 每周的周二到周日 对数据都做增量备份

增量备份数据的命令格式

--incremental  备份新数据并定义新数据存放的目录名 
--incremental-basedir  备份新数据参考的备份目录名
		
]#innobackupex   -uroot     -p密码   --incremental   /目录名   
--incremental-basedir=/目录名   --no-timestamp 
增量恢复数据的命令格式
--incremental-dir	增量备份数据存放的目录名
准备恢复数据
]#innobackupex   --apply-log   --redo-only   /首次备份目录名 
合并数据 合并的次数与增量备份的顺序要一致
]#innobackupex   --apply-log   --redo-only   /首次备份目录名   --incremental-dir=/目录名 
拷贝数据
]#innobackupex   --copy-back /完全备份目录
		使用增量备份文件恢复数据的具体操作步骤:
				1) 停止数据库服务
				2) 清空数据库目录
				3)数据
				4) 合并准备恢复数据 (合并的次数要增量备份的次数一样 并且合并的顺序也有与增量备份的顺序一致)
				5) 恢复数据
				6) 修改数据库目录的所有者和组用户为mysql
				7)  启动服务
				8) 查看数据

增量备份的例子: 统一在 host51 主机做练习 每周的周一对数据做完全备份 每周的周二到周日对数据做增量备份

周一 执行完全备份

[root@host51 ~]# innobackupex -uroot -pNSD2107...a  /fullbak  --no-timestamp

[root@host51 ~]# ls /fullbak/
backup-my.cnf  ib_buffer_pool  mysql               sys                     xtrabackup_info
db51           ibdata1         performance_schema  xtrabackup_checkpoints  xtrabackup_logfile
[root@host51 ~]# 

向表里添加新数据 (多执行几遍)

 mysql> insert into tarena.user(name,shell) values("fff","fff"); 

周二 执行增量备份

[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new1dir  --incremental-basedir=/fullbak  --no-timestamp
查看备份目录 列表
[root@host51 ~]# ls /new1dir/  
backup-my.cnf   ibdata1.delta  performance_schema      xtrabackup_info
db51            ibdata1.meta   sys                     xtrabackup_logfile
ib_buffer_pool  mysql          xtrabackup_checkpoints
[root@host51 ~]# 

向表里添加新数据  多执行几遍 

mysql> insert into tarena.user(name,shell)  values("zzz","zzz"); 

说明: 如果周二做的是差异备份的话 命令这样写
[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new1dir -incremental-basedir=/fullbak --no-timestamp

周三  执行增量备份
[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new2dir  --incremental-basedir=/new1dir  --no-timestamp


[root@host51 ~]# ls /new2dir/  查看备份目录 列表
backup-my.cnf   ibdata1.delta  performance_schema      xtrabackup_info
db51            ibdata1.meta   sys                     xtrabackup_logfile
ib_buffer_pool  mysql          xtrabackup_checkpoints
[root@host51 ~]# 

向表里添加新数据  mysql> insert into tarena.user(name,shell)  values("www","wwww"); (多执行几遍)

说明: 如果周三做的是差异备份的话 命令这样写
[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new2dir --incremental-basedir=/fullbak --no-timestamp

周四 执行增量备份

[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new3dir
--incremental-basedir=/new2dir --no-timestamp


[root@host51 ~]# ls /new3dir/  查看备份目录 列表
backup-my.cnf   ibdata1.delta  performance_schema      xtrabackup_info
db51            ibdata1.meta   sys                     xtrabackup_logfile
ib_buffer_pool  mysql          xtrabackup_checkpoints
[root@host51 ~]# 



说明: 如果周四做的是差异备份的话 命令这样写
[root@host51 ~]# innobackupex -uroot -pNSD2107...a  --incremental  /new3dir  --incremental-basedir=/fullbak --no-timestamp

周五到 周日 不演示了

增量恢复 (使用增量备份文件恢复数据)

模拟数据丢失

[root@host51 ~]# mysql -uroot -pNSD2107...a  -e 'drop database tarena'
[root@host51 ~]# mysql -uroot -pNSD2107...a  -e 'drop database mysql'

具体操作步骤:(host51 主机使用自己的增量备份文件恢复数据)
					1) 停止数据库服务  [root@host51 ~]# systemctl  stop mysqld

					2) 清空数据库目录 [root@host51 ~]# rm  -rf /var/lib/mysql/*
					3) 准备恢复数据 (告诉程序innobackupex从什么位置开始合并数据)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
					
					4) 合并数据 (合并的次数要增量备份的次数一样 并且合并的顺序也有与增量备份的顺序一致)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/	
--incremental-dir=/new1dir   合并第1次增量备份数据

[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/	
--incremental-dir=/new2dir   合并第2次增量备份数据

[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/  
--incremental-dir=/new3dir  合并第3次增量备份数据

					5) 恢复数据  (把合并后的数据拷贝到数据库目录下)
[root@host51 ~]# innobackupex --copy-back /fullbak

					6) 修改数据库目录的所有者和组用户为mysql
[root@host51 ~]# chown -R mysql:mysql /var/lib/mysql					
					7)  启动服务
					
[root@host51 ~]# systemctl  start mysqld
   8)查看数据 
[root@host51 ~]# mysql -uroot -pNSD2107...a -e 'show databases'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值