xtrabackup备份和恢复数据脚本
该脚本用于备份和恢复MySQL数据库。
总结xtrabackup备份的两个坑:
1、在恢复数据的过程中,如果中途出错,则数据将会被破坏,后续很难再恢复。
2、在恢复过程中,如果版本过低,在准备全量数据的时候会卡在等待那里,无法进行下一步。
如我用xtrabackup2.4.4 备份的,用2.4.5恢复就会卡在前面那里。听说这是个bug。后来改成了2.4.13的时候时间会快很多。
#!/bin/bash
#author: chentufeng
#create time: 2019 05 07
#mail:15219234405@139.com
#version: 1.0
incre_time=`date +%Y%m%d`
current_month=`date +%Y%m`
full_amount_day=`date +%d`
three_month_ago=`date -d "-3 month" +%Y%m`
#mysql配置文件
mysql_cfg="/etc/my.cnf"
#定义备份目录,就算不创建,备份的时候也会自动创建
mysql_bak="/data/mysql/mysql_bak"
bak_month_dir="${mysql_bak}/${current_month}"
#定义mysql登录信息
mysql_pwd="123456"
mysql_user="root"
#全量备份目录
full_amount_dir="${mysql_bak}/${current_month}/full_amount"
#增量备份目录
incre_dir="${mysql_bak}/${current_month}/incre${incre_time}"
#判断目录是否存在,不存在则创建
[ ! -d ${bak_month_dir} ] && mkdir -p ${mysql_bak}/${current_month}
#每月1号进行全量备份
if [ ${full_amount_day} -eq 01 ];then
innobackupex --defaults-file=${mysql_cfg} --user="${mysql_user}" --password=${mysql_pwd} --parallel=8 --slave-info --no-timestamp ${full_amount_dir}
if [ $? -eq 0 ];then
echo "Full amount backup sucessful!"
#删除三个月前的备份文件
rm -rf ${mysql_bak}/${three_month_ago}
else
echo "Full amount backup failure!!!!!!!!!!!"
fi
#因数据量不算大,每天在月初全备的基础上做增量备份,若有问题只需要恢复一次
else
innobackupex --defaults-file=${mysql_cfg} --user="${mysql_user}" --password=${mysql_pwd} --no-timestamp --incremental-basedir=${full_amount_dir} --incremental ${incre_dir}
[ $? -eq 0 ] && echo "Incremental backup sucessful!" || echo "Incremental backup failure!!!!!!!!!!!"
fi :<<wendang
【数据恢复说明】
数据恢复步骤:(注意:步骤只适合该备份脚本的恢复)
1、创建data目录,根据my.cnf配置来创
2、prepare(准备):
1)全量备份准备
#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only 全量备份目录(full_amount_dir) # 指定全备目录,--redo-only 对已提交的事务进行前滚,仅最后一次全量恢复不需要添加该参数
2)恢复增量备份数据准备(注意:必须指定全量备份的目录,否则只能恢复全量备份的数据)
#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only 全量备份目录 --incremental-dir=最后一次增量备份目录(incre_dir)
# --incremental-dir 指定最后一次增备目录 ( 绝对路径 ) 3、再次prepare(准备)全量备份
# innobackupex --defaults-file=/etc/my.cnf --apply-log 全量备份目录(full_amount_dir)
#注意:不需要加--redo-only参数 4、最后一步,复制整合后的全备文件,位置为 my.cnf 中 datadir 指定路径
#innobackupex --defaults-file=/etc/my.cnf --copy-back 全量备份目录(full_amount_dir)
5、给data目录赋予mysql权限:
#chown -R mysql.mysql /var/lib/mysql(查看my.cnf确定data目录路劲) 6、启动mysql
#/etc/init.d/mysql.server start
wendang
xtrabackup备份和恢复数据脚本的更多相关文章
- MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据
如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...
- MySQL 备份和恢复数据
备份指定数据库的全部表或指定表 mysqldump -u user -h localhost -p [password] db_name[ tbl_name[,tbl_name.......]]> ...
- mysql导入导出数据,备份,恢复数据
MYSQL 实现导入数据 .备份和恢复数据库 1.使用msql命令导入数据 # mysql -uroot -p 需要选择一个数据库 < runoob.sql #mysql -u username ...
- mysql学习(4)-mysqldump备份和恢复数据
背景 最近在公司做数据迁移方面的工作,使用mysql数据库在测试环境模拟数据迁移,在迁移测试的过程中需要做数据备份和恢复 mysql数据备份和恢复比较简单,可以选择mysqldump工具,这里简单提一 ...
- postgresql批量备份和恢复数据表
备份数据库:pg_dump -h localhost -U root demo02 > /home/arno/dumps/demo02.bak 恢复数据库:psql -h localhost - ...
- 使用mongodump及mongorestore备份及恢复数据
mongodump及mongorestore是用于备份和恢复mongodb数据库的两个命令,位于mongodb安装目录的bin文件夹下. mongodump导出的备份文件为二进制格式,每一个文档的对应 ...
- PostgreSQL备份和恢复数据表
备份数据表: pg_dump -U user_name db_name -t table_name -f /tmp/backup_file.suffix 恢复数据表: 方法1: 登录数据库:\i /t ...
- PostgreSQL数据库常用脚本-初始化、备份、恢复推荐脚本
公司最近开始逐步推广使用PostgreSQL,为方便开发人员和实施人员操作,特整理数据库初始化.备份.恢复的推荐脚本如下: 1. 连接数据库 psql -h 127.0.0.1 -p 1921 -U ...
- xtrbackup备份,及恢复数据
模拟定时任务周日备份数据,周一数据变化,周一crontab定时任务增量备份,周二数据变化,周二crontabl增量备份,然后有人删库,我们进行恢复数据 模拟crontab 里的定时任务周日全备 [ro ...
随机推荐
- Python基础练习之购物车
#前置知识点 # enumerate(LIST) # 输出一个元组,第一个为下标,第二个为元素 # a = [1, 2, 3, 4] # for i in enumerate(a): # print( ...
- 基于python 信用卡评分系统 的数据分析
基于python 信用卡评分系统 的数据分析 import pandas as pd import matplotlib.pyplot as plt #导入图像库 from sklearn.ensem ...
- 企业网络防范Serv-U的漏洞
很多企业都将自己的网站建立在互联网上,日常有专门的维护人员进行维护,很多时候对网站的更新当然不是直接在服务器上操作,而是将要更新的网页页面通过FTP工具上传到服务器上实现.因此必须要在服务器上搭建起一 ...
- Apple macOS Mojave Intel Graphics Driver组件任意代码执行漏洞
受影响系统:Apple macOS Mojave 10.14.5描述:CVE(CAN) ID: CVE-2019-8629 Apple macOS Mojave是苹果公司Mac电脑系列产品的操作系统. ...
- Buffer 和 cache
要问Cache和Buffer的区别,首先要问另一个问题:为何会存在Cache和Buffer? 无论缓存还是缓冲,其实本质上解决的都是读写速度不匹配的问题,从这个角度,他们非常相似. 知乎上关于Cach ...
- ITerm让MAC终端更加灵活高效
一.ITerm2简介 1.安装 iTerm2 是一款完全免费的,专为 Mac OS 用户打造的命令行应用.直接在官网上http://iterm2.com/ 下载并安装即可. 2.配置 设置ITerm为 ...
- CF487E Tourists(圆方树+树链剖分+multiset/可删堆)
CF487E Tourists(圆方树+树链剖分+multiset/可删堆) Luogu 给出一个带点权的无向图,两种操作: 1.修改某点点权. 2.询问x到y之间简单路径能走过的点的最小点权. 题解 ...
- 廖雪峰Python实战day1
一.按照廖雪峰的教程,安装开发环境,问题不大. 1.异步框架aiohttp:$pip3 install aiohttp 2.前端模板引擎jinja2:$ pip3 install jinja2 3.安 ...
- linklist template
#include <iostream.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode ...
- Maven项目报错:“No goals have been specified for this build”解决办法
clean install scf:run第一种解决办法:找到pom.xml文件,在<build>标签里面添加如下所示的代码即可.<defaultGoal> compile & ...