博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql热备工具-percona innobackupex 全备步骤【附 远程冷备 程序】
阅读量:6329 次
发布时间:2019-06-22

本文共 2142 字,大约阅读时间需要 7 分钟。

hot3.png

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

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

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

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

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

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

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

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

#3—安装

innobackupex的安装,直接看官网,有多种安装方式:

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

##3.1—下载包 wget ##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—备份数据

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    友情提示:    ①——        --parallel=4     命令能让你的数据备份速度提升四倍;    ②——        --database=test     单独对test数据库做备份 ,若是不添加此参数那就那就是对全库做备份    ③——        2>/tmp/data/err.log    输出信息写入日志中    ④——我们没有采用在备份数据的时候压缩数据,是因为我们觉得压缩会占用我们操作数据库的时间,所以我们最终选择在数据库备份完成之后,采用tar zcf 的方式来压缩数据,事实证明这样是最好的。

##4.2—准备数据

innobackupex --apply-log --use-memory=4G /path/to/BACKUP-DIR    友情提示:--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了一下,在备份完之后,又恢复了该端口。

--16G时    iptables -A INPUT -p tcp --dport 3306 -j DROP    --数据恢复完后    iptables -A INPUT -p tcp --dport 3306 -j ACCEPT    service iptables stop    service iptables start

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

#!/bin/bashbackup_time=`date +%Y_%m_%d_%H`current_ip="${要备份的机器ip}"remote_ip="${远程机器ip}"remote_path="/home/quant_group/mysql/${current_ip}/full/${backup_time}.tar"mysql_host="--host=${current_ip}"mysql_user="--user=${备份的用户名}"mysql_pass="--password=${备份的密码}"mysql_port="--port=3306"defaults_file="--defaults-file=/home/quant_group/mysql/3306/my.cnf"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

你可能感兴趣的文章
java基础学习2
查看>>
sysbench使用笔记
查看>>
有关电子商务信息的介绍
查看>>
NFC·(近距离无线通讯技术)
查看>>
nginx 禁止某个IP访问立网站的设置方法
查看>>
多线程基础(三)NSThread基础
查看>>
PHP的学习--Traits新特性
查看>>
ubuntu下,py2,py3共存,/usr/bin/python: No module named virtualenvwrapper错误解决方法
查看>>
Ext.form.field.Number numberfield
查看>>
异地多活数据中心项目
查看>>
Linux文件夹分析
查看>>
解决部分月份绩效无法显示的问题:timestamp\union al\autocommit等的用法
查看>>
CRT + lrzsz 进行远程linux系统服务器文件上传下载
查看>>
nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
查看>>
man openstack >>1.txt
查看>>
linux几大服务器版本大比拼
查看>>
在BT5系统中安装postgresQL
查看>>
Can't connect to MySQL server on 'localhost'
查看>>
【Magedu】Week01
查看>>
写给MongoDB开发者的50条建议Tip25
查看>>