mysql 备份_mysql备份神器——Xtrabackup全量备份&还原

概述

Xtrabackup是一种物理备份工具,通过协议连接到mysql服务端,然后读取并复制innodb底 层的"数据块",完成所谓的"物理备份"。

支持对innodb进行热备、增量备份、差量备份。

前面已经分享了怎么去安装xtrabackup工具,所以今天主要详细介绍 XtraBackup 备份和恢复的具体过程。


1、源数据库备份

./innobackupex --user=root --password=xxxxx --host=127.0.0.1 --databases=jpcpdb /home/xtrabackup/
34d2617ea354ebb0caa22f2e6489454f.png

查看备份出来的文件:

1e625ddc05076d9274d7b0e273f3f71b.png

/home/xtrabackup/ 备份存放的位置,备份会在该目录下生成一个按照时间命名的文件夹。用--no-timestamp参数可以指定到自己想要的备份文件夹,不受时间命名的文件夹限制。


2、传到目标数据库服务器并解压

# tar -czvf xtrabackupxx.tar.gz xtrabackup/

# scp xtrabackupxx.tar.gz 10.150.xx.xx:/opt

3、恢复(目标数据库服务器执行)

3.1 --apply-log保持数据一致性

利用 --apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。

# innobackupex --defaults-file=/etc/my.cnf --use-memory=16G --apply-log /opt/xtrabackup/2018-07-24_10-43-34/为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/opt/xtrabackup/2018-07-24_10-43-34/下的备份文件已经准备就绪。
afb2ac40800fc24619cd897a3783d19f.png

应用完之后再查看备份文件看是否有变化:

27df79707f1b8092ee00fb57daef9194.png

这里可以看到redo log已经出现。xtrabackup_开头的几个文件记录了一些日志偏移量的信息和日志名和时间等信息

3.2 开始恢复

1、停止后备份从数据库文件

#service mysql stop# cp -rpf /usr/local/mysql/data/ /backup# rm -rf /usr/local/mysql/data/

说明:p保留属主属组权限

2、恢复jpcpdb数据库

innobackupex --defaults-file=/etc/my.cnf --copy-back /opt/xtrabackup/2018-07-24_10-43-34/

执行上面的命令需要保证数据库目录是空的,否则会失败,因为目录里有binlog日志,要么移走,要么就用手动复制需要的文件。总之日志不要和数据放在一起!

b611e1be09b9bf39d0f65b3a8d720188.png

3、恢复mysql数据库文件(密码之类)

[root@s-pp-02 /]# cp -r /backup/mysql/ /usr/local/mysql/data/[root@s-pp-02 /]# cp -r /backup/performance_schema/ /usr/local/mysql/data/[root@s-pp-02 /]# cp -r /backup/sys/ /usr/local/mysql/data/
adb6a0d51b6523eaba6c2b681947bac0.png

4、修改权限

# chown -R mysql:mysql /usr/local/mysql/# chmod -R 755 /usr/local/mysql/

5、启动数据库

#service mysql start

重启后对数据表数量、索引等做检查。


总结:

大家有空可以也可以在自己电脑测试一下,备份恢复的话xtrabackup是很不错的一个选择,后面会分享更多工作中比较多涉及的一些工具,感兴趣的朋友可以关注下!!

1c11ccf11db9051b14fd6891dce27d82.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值