优点:热备份,不影响业务,增量备份,远程备份。

目的:自动打包备份到远程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)定时自动热备份+增量+远程备份脚本相关推荐

  1. mysql 增量备份脚本_MySQL自动化(全量+增量)备份脚本

    一.MySQL的日常备份方案: 全备+增量备份: 1.周日凌晨三点进行全备: 2.周一到周日增量备份. 不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少 ...

  2. 间隔一段时间重复自动登录网站、定时自动登录网站的软件 —— 定时执行专家,无需复杂编程,简单配置即可使用

    常常有网友在网上发帖求助,想找一个定时自动登录网页(网站)的软件,大致需求如下: 1.打开网页 → 2.填写用户名.密码 → 3.点击登录按钮 → 4.登录成功 另外,还有诸如:要求间隔是每3个小时自 ...

  3. DG导入mysql依赖包_MySql导入导出数据库(含远程导入导出)

    1.先运行cmd,cd 到mysql安装目录中的bin文件夹 2.mysqldump -u root -p 数据库名 > 导出文件名.sql 其他情况下: 1.导出整个数据库 mysqldump ...

  4. mysql 创建分区表_Mysql分区表及自动创建分区Partition

    Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NO ...

  5. mysql取消死锁_mysql 死锁可以自动解除吗

    1. session1 执行 delete  会在唯一索引 c2 的 c2 = 15 这一记录上加 X lock(也就是在MySQL 内部观测到的:X Lock but not gap): 2. se ...

  6. mysql maria引擎_MySQL/mariadb知识点——存储过程及存储引擎

    MySQL架构 连接器 连接池,安全认证.线程池.连接限制.检查内存.缓存 SQL接口 DML.DDL SQL解析器,对SQL语句的权限检查.解析为二进制程序 优化器,优化访问路径 缓存cache,b ...

  7. 服务器添加自动执行,服务器上定时自动执行php

    两种方式: 一.Linux 服务器 Linux原生支持crontab,所以可以利用这一功能做定时任务 步骤: 1.编辑crontab文件: Linux:crontab -e 2.输入代码: 0 0 * ...

  8. systemctl与mysql多实例_mysql mariadb 多版本多实例 开机启动

    ----mysql多实例开机启动及加入服务-------– 将脚本cp到init.d目录 cd /usr/mysqlsoft5.6.38_3346/support-files/ [root@mysql ...

  9. mysql 一致性读_mysql/mariadb知识点总结(27):一致性读,快照读

    在本博客中,"mysql"是一个系列文章,这些文章主要对mysql/mariadb的常用知识点进行了总结,每一篇博客总结的知识点有所不同,具体内容可参考mysql文章列表. mys ...

最新文章

  1. AI一分钟 | Facebook或将面临2万亿美元罚款;大疆寻求新一轮融资,估值150亿美元
  2. 十大排序算法之插入排序
  3. 如何在SAP UI5应用里添加使用摄像头拍照的功能
  4. java qq 界面_【Java】仿真qq尝试:聊天界面 响应用户输入
  5. 【Python】Python解释器
  6. 基于Python的Fisher二分类判别模型实现
  7. 2021年安全生产模拟考试(特种作业低压电工模拟考试题库二)
  8. 数据库数据误删除恢复
  9. CDLinux破解WEP、WPA加密过程
  10. 二次开发uniswap-01-SDK
  11. JAVASCRIPT 网页特效经典300例 pdf
  12. 一个实用分数类Fraction的Java实现
  13. java ascii码大小写转换_使用「ASCII」转换大小写
  14. LeetCode算法之蓄水池算法
  15. 解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed)
  16. GitLab 的安装及使用
  17. 什么是中台系统以及挑战和解决方案?
  18. Excel设置下拉选项的方法
  19. 十款入门级微信小程序源码分享之三
  20. 震惊!!十五天开发出一款安卓打卡app,并且成功发布!

热门文章

  1. 第15课:基于 CRF 的中文命名实体识别模型实现
  2. 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
  3. Hadoop2.7.6在Windows7单机部署
  4. Gradle task
  5. 编程获取linuxservercpu、内存和磁盘使用
  6. 我也谈javascript闭包
  7. 阿里云服务器下安装LAMP环境(CentOS Linux 6.3) 安装与配置 Apache 服务
  8. 网站CSS样式不起作用,或只有一部分起作用?随手记
  9. java常用技术名词解析
  10. can-utils源码解析cansend