Mysql innobackupex全量备份

2021年9月8日10:36:12 发表评论
摘要

【心语】水再浑浊,只要长久沉淀,仍然会分外清澄;人再愚钝,只要足够努力,一样能改变命运。

一、工具介绍
innobackupex比xtarbackup有更强的用能,它整合了xtrabackup合其他的一些功能,它不但可以全量备份/恢复,还可以基于时间的增量备份与恢复
二、innobackupex备份原理

Innobackupex首先调用xtrabackup来备份innodb数据文件,当xtrabckup完成后,innobackupex就查看文件xtrbackup_suspended,然后执行” FLUSH TABLES WITH READ LOCK” 来备份其它的文件
三、innobackupex 恢复原理
innobackupex首先读取my.cnf,查看变量(datadir,innodb_data_home_dir,innodb_data_file_path,innodb_log_group_home_dir)对应的目录是存在,确定相关目录存在后,然后先copy myisam表和索引,然后在copy innodb的表、索引和日志
四、环境介绍

  • Mysql:5.7.18
  • 安装路径:/usr/local/mysql
  • 数据文件:/data/mysql

五、安装innobackupex命令
3更新yum源
[root@boke ~]# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@boke ~]# yum install percona-xtrabackup-24 –y #安装这个命令工具
[root@boke ~]# yum install qpress –y 3安装这个依赖工具
Mysql innobackupex全量备份
六、全量备份
步骤:
#创建一个备份目录
[root@boke ~]# mkdir –p /data/backup/
[root@boke ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password='abc.123ABC' -S /tmp/mysql.sock /data/backup/
Mysql innobackupex全量备份
#如上图显示completed ok 表示备份成功
#使用innobakupex备份指定库,需要主要的是Mysql系统库也要一同备份,否则还原会出问题
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --databases="db1 db2" /data/backup
#备份参数详解

--user=root 备份操作用户名,一般都是root用户
--password=abc.123ASD 密码
--host=x.x.x.x 主机IP地址,本地可以不用加
--parallel=4 –throttle=400 并行个数,根据主机配置先择合适的,默认1个,多个可以加快备份速度
--stream=tar 压缩类型,这里选择tar格式,可以加,可以不加。加上文件小一点,在备份的时候就已经打包好了
/mysqlbak/innobackupex 备份存到的目录
2>/mysqlbak/innobackupex/bak.log 备份日志将备份过程中的输出信息重定向bak.log
1>/mysqlbak/innobackupex/fullbak.tar 备份文件压缩后的名字

#查看备份好的文件
Mysql innobackupex全量备份
#备份成功
七、全量恢复
恢复备份文件要保证datadir文件为空,否则会报错误
1、打包好备份的的文件,准备传送到另外一台服务器
[root@boke backup]# tar czvf back2021.tat.gz 2021-09-06_14-50-20/
2、已上传到新的服务,解压包到指定的文件
[root@mq ~]# tar xf back2021.tat.gz -C /data/backup/
初始化一下
[root@mq backup]# innobackupex --apply-log /data/backup/2021-09-06_14-50-20/
Mysql innobackupex全量备份
#提示OK 表示完成
#恢复的时候配置文件datadir参数的数据目录必须为空否则会报错!这里为空
Mysql innobackupex全量备份
#恢复命令
[root@mq ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2021-09-03_16-35-04/
Mysql innobackupex全量备份
#提示OK 表示恢复到 /root/data/backup/目录下成功
#执行完之后查看datadir数据目录
[root@mq mysql]# cd /data/mysql/
Mysql innobackupex全量备份
表示恢复成功!如上图看到文件权限是root我们执行目录修改下权限
[root@mq mysql]# chown -R mysql.mysql /data/mysql/
Mysql innobackupex全量备份
#如上图修改成功,此时我们启动数据库
[root@mq mysql]# /etc/init.d/mysqld start
Mysql innobackupex全量备份
#进入数据库查看数据
Mysql innobackupex全量备份
#成功

  • 微信公众号
  • 这是我的微信公众号扫一扫
  • weinxin
  • 我的QQ技术群
  • 我的QQ技术群扫一扫
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: