当前位置:   article > 正文

mysql热备工具-percona innobackupex 全备步骤【附 远程冷备 程序】

innobackupex 并行快速远程备份

#1—环境 工作地点:量化派

使用背景:主从的从库挂掉,只剩下主库高负荷工作。迫切需要备份数据,搭建从库。

#2—自己的话: 合格运维工程师或DBA工程师,操作数据时,首先需要备份。

这样当数据库出现问题时,才能恢复。

但是一般的数据恢复时间是很长的,不符合业务需要求,这就需要我们使用一个快速备份与恢复的软件。

听别人说使用mysqldump会锁表,大数据量的时候会很慢。

然后我们研究决定采用 percona innobackupex, 这是一个快速的热备工具,能够支持全量和增量备份。

优点一大堆,你用就对了!直接上操作手册,方便以后自己操作。

#3—安装

innobackupex的安装,直接看官网,有多种安装方式: https://www.percona.com/doc/percona-xtrabackup/2.4/index.html

我们采用的方式是用 rpm包安装,这样方便以后统一版本,

##3.1—下载包 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.0/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.0-rc1.1.el7.x86_64.rpm ##3.2—本地安装 yum localinstall percona-xtrabackup-24-2.4.0-rc1.1.el7.x86_64.rpm ##3.3—卸载命令 yum remove percona-xtrabackup #4—数据备份和恢复

    备份之前,将原先mysql的data目录删除,注意,必须data目录全部清空。。data目录全部清空。。data目录全部清空。。

##4.1—备份数据

  1. innobackupex --defaults-file=/your/path/of/mysql/3306/my.cnf --user=root --password=123456 --port=3306 --host=localhost --parallel=4 --database=test /path/to/BACKUP-DIR/ 2>/tmp/data/err.log
  2. 友情提示:
  3. ①——
  4. --parallel=4 命令能让你的数据备份速度提升四倍;
  5. ②——
  6. --database=test 单独对test数据库做备份 ,若是不添加此参数那就那就是对全库做备份
  7. ③——
  8. 2>/tmp/data/err.log 输出信息写入日志中
  9. ④——我们没有采用在备份数据的时候压缩数据,是因为我们觉得压缩会占用我们操作数据库的时间,所以我们最终选择在数据库备份完成之后,采用tar zcf 的方式来压缩数据,事实证明这样是最好的。

##4.2—准备数据

  1. innobackupex --apply-log --use-memory=4G /path/to/BACKUP-DIR
  2. 友情提示:--use-memory=4G 该命令默认大小是100m,根据你的内存,来修改一下配置,提升数据恢复速度

##4.3—开始恢复

    innobackupex --copy-back /path/to/BACKUP-DIR

试一下,你就会知道有多快。。有多爽。。

#5—权限设置

    chown -R mysql:mysql mysql目录

#6—之后就可以操作你的数据库了。

#7—

我们在第一次使用的时候,在18G的地方不知道什么意外,锁了一下表,然后我们第二次在备份数据的时候,到了16G将3306端口drop了一下,在备份完之后,又恢复了该端口。

  1. --16G时
  2. iptables -A INPUT -p tcp --dport 3306 -j DROP
  3. --数据恢复完后
  4. iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  5. service iptables stop
  6. service iptables start

*8—远程冷备 神技能 其实最重要的是最后一句

  1. #!/bin/bash
  2. backup_time=`date +%Y_%m_%d_%H`
  3. current_ip="${要备份的机器ip}"
  4. remote_ip="${远程机器ip}"
  5. remote_path="/home/quant_group/mysql/${current_ip}/full/${backup_time}.tar"
  6. mysql_host="--host=${current_ip}"
  7. mysql_user="--user=${备份的用户名}"
  8. mysql_pass="--password=${备份的密码}"
  9. mysql_port="--port=3306"
  10. defaults_file="--defaults-file=/home/quant_group/mysql/3306/my.cnf"
  11. innobackupex ${defaults_file} ${mysql_user} ${mysql_pass} ${mysql_port} ${mysql_host} --stream=tar ./ | gzip | sshpass -p '' ssh root@${remote_ip} "cat - > ${remote_path}"

转载于:https://my.oschina.net/yangchunlian/blog/728101

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/88468
推荐阅读
相关标签
  

闽ICP备14008679号