mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本
优点:热备份,不影响业务,增量备份,远程备份。
目的:自动打包备份到远程10.0.0.111备份服务器
前提:
1.安装xtrabackup
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install percona-xtrabackup-22
2.创建目录
mkdir -p /data/backup
mkdir -p /data/backuptar/
3.添加mysql公钥到备份服务器(10.0.0.111),能免密码远程登录。
4.创建备份用户
GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO [email protected] IDENTIFIED BY ‘passwd‘;
FLUSH PRIVILEGES;
------------------------
#!/bin/bash
backdir=/data/backup
backupbin=/usr/bin
begintime=`date +"%Y-%m-%d %H:%M:%S"`
format_time=`date +"%Y-%m-%d_%H_%M_%S"`
time_cost=$backdir/xtrabackup_time.txt
week=`date +%w`
user_name=bkuser
password="passwd"
file_cnf=/etc/my.cnf.d/wsrep.cnf
backtar=/data/backuptar/
remote_host="10.0.0.111"
remote_dir=/data/mysqlbak_remote_23
remote_user="wanzi"
out_log=$backdir/xtrabackup_log_$format_time
if [ -d "$backdir/rec5" ];then
echo "开始打包5次的备份"
cd $backdir
tar -zcf lastweek.gz ./*
mv lastweek.gz $backtar/$format_time.lastweek.gz
echo "完成5次备份打包"
cd $backtar
rm -rf `ls |grep -v "$format_time.lastweek.gz"`
echo "删除本地上次备份完成"
echo "开始删除远程备份....."
ssh $remote_user@$remote_host "cd $remote_dir;rm -rf ./*"
echo "删除远程多余备份完成"
echo "开始拷贝本地备份到远程服务器..."
scp $backtar/$format_time.lastweek.gz $remote_host:/$remote_dir
echo "远程备份完成"
rm -rf $backdir
mkdir $backdir
fi
#fullbackup
if [ ! -d "$backdir/fullbackup" ];then
echo "在$begintime开始全量备份" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --user=$user_name --password=$password --no-timestamp --slave-info $backdir/fullbackup 1>$out_log 2>&1
echo "完成全备"
elif [ ! -d "$backdir/rec0" ];then
echo "#####start 0 incremental backup at $BEGINTIME to directory rec0" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/fullbackup $backdir/rec0 1> $out_log 2>&1
echo "完成第0次增量备份"
elif [ ! -d "$backdir/rec1" ];then
echo "#####start 1 incremental backup at $BEGINTIME to directory rec1" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/rec0 $backdir/rec1 1> $out_log 2>&1
echo "完成第1次增量备份"
elif [ ! -d "$backdir/rec2" ];then
echo "#####start 2 incremental backup at $BEGINTIME to directory rec2" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/rec1 $backdir/rec2 1> $out_log 2>&1
echo "完成第2次增量备份"
elif [ ! -d "$backdir/rec3" ];then
echo "#####start 3 incremental backup at $BEGINTIME to directory rec3" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/rec2 $backdir/rec3 1> $out_log 2>&1
echo "完成第3次增量备份"
elif [ ! -d "$backdir/rec4" ];then
echo "#####start 4 incremental backup at $BEGINTIME to directory rec4" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/rec3 $backdir/rec4 1> $out_log 2>&1
echo "完成第4次增量备份"
elif [ ! -d "$backdir/rec5" ];then
echo "#####start 5 incremental backup at $BEGINTIME to directory rec5" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --incremental --incremental-basedir=$bac
kdir/rec4 $backdir/rec5 1> $out_log 2>&1
echo "完成第5次增量备份"
fi
ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`
begin_data=`date -d "$BEGINTIME" +%s`
end_data=`date -d "$ENDTIME" +%s`
spendtime=`expr $end_data - $begin_data`
echo "it takes $spendtime sec for packing the data directory" >>$time_cost
echo "备份结束......"`date`
原文:http://jin544642965.blog.51cto.com/1389736/1769710
mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本相关推荐
- mysql 增量备份脚本_MySQL自动化(全量+增量)备份脚本
一.MySQL的日常备份方案: 全备+增量备份: 1.周日凌晨三点进行全备: 2.周一到周日增量备份. 不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少 ...
- 间隔一段时间重复自动登录网站、定时自动登录网站的软件 —— 定时执行专家,无需复杂编程,简单配置即可使用
常常有网友在网上发帖求助,想找一个定时自动登录网页(网站)的软件,大致需求如下: 1.打开网页 → 2.填写用户名.密码 → 3.点击登录按钮 → 4.登录成功 另外,还有诸如:要求间隔是每3个小时自 ...
- DG导入mysql依赖包_MySql导入导出数据库(含远程导入导出)
1.先运行cmd,cd 到mysql安装目录中的bin文件夹 2.mysqldump -u root -p 数据库名 > 导出文件名.sql 其他情况下: 1.导出整个数据库 mysqldump ...
- mysql 创建分区表_Mysql分区表及自动创建分区Partition
Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NO ...
- mysql取消死锁_mysql 死锁可以自动解除吗
1. session1 执行 delete 会在唯一索引 c2 的 c2 = 15 这一记录上加 X lock(也就是在MySQL 内部观测到的:X Lock but not gap): 2. se ...
- mysql maria引擎_MySQL/mariadb知识点——存储过程及存储引擎
MySQL架构 连接器 连接池,安全认证.线程池.连接限制.检查内存.缓存 SQL接口 DML.DDL SQL解析器,对SQL语句的权限检查.解析为二进制程序 优化器,优化访问路径 缓存cache,b ...
- 服务器添加自动执行,服务器上定时自动执行php
两种方式: 一.Linux 服务器 Linux原生支持crontab,所以可以利用这一功能做定时任务 步骤: 1.编辑crontab文件: Linux:crontab -e 2.输入代码: 0 0 * ...
- systemctl与mysql多实例_mysql mariadb 多版本多实例 开机启动
----mysql多实例开机启动及加入服务-------– 将脚本cp到init.d目录 cd /usr/mysqlsoft5.6.38_3346/support-files/ [root@mysql ...
- mysql 一致性读_mysql/mariadb知识点总结(27):一致性读,快照读
在本博客中,"mysql"是一个系列文章,这些文章主要对mysql/mariadb的常用知识点进行了总结,每一篇博客总结的知识点有所不同,具体内容可参考mysql文章列表. mys ...
最新文章
- AI一分钟 | Facebook或将面临2万亿美元罚款;大疆寻求新一轮融资,估值150亿美元
- 十大排序算法之插入排序
- 如何在SAP UI5应用里添加使用摄像头拍照的功能
- java qq 界面_【Java】仿真qq尝试:聊天界面 响应用户输入
- 【Python】Python解释器
- 基于Python的Fisher二分类判别模型实现
- 2021年安全生产模拟考试(特种作业低压电工模拟考试题库二)
- 数据库数据误删除恢复
- CDLinux破解WEP、WPA加密过程
- 二次开发uniswap-01-SDK
- JAVASCRIPT 网页特效经典300例 pdf
- 一个实用分数类Fraction的Java实现
- java ascii码大小写转换_使用「ASCII」转换大小写
- LeetCode算法之蓄水池算法
- 解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed)
- GitLab 的安装及使用
- 什么是中台系统以及挑战和解决方案?
- Excel设置下拉选项的方法
- 十款入门级微信小程序源码分享之三
- 震惊!!十五天开发出一款安卓打卡app,并且成功发布!