mysql全量备份和增量备份脚本

vim   MYSQL_FULLBAK.sh                        //全量备份 ,每周一次

#!/bin/bash
#set -x
############################################################
if [ $# -ne 2 ];then echo "Usage:依次输入参数: <ROOTPASSWD> <BAKDIR> ";exit 1
fiif ! ps -ef | grep -v "grep"|grep -q "mysqld ";thenecho "未检测到mysql进程"exit 1
fi
############################################################
# 入参
PASSWD=$1
BAKDIR=$2
############################################################
# PORT && HOST && MYSQLHOME && BAKDIR
PORT=$(netstat -lanp | grep LISTEN | grep "mysqld"|awk -F ":" 'NR==1{print $4}')
MYSQL_HOME=$(ps -ef | grep -v "grep"|grep "mysqld "|tr -s ' ' '\n'|grep "\-\-basedir"|awk -F "=" '{print $NF}')
PATH=$MYSQL_HOME/bin:$PATHlocalnetcard=$(route -n|grep UG|head -n 1|awk '{print $NF}')
if [ ! "$localnetcard" == "" ];thenHOST=$(ip -4 addr show $localnetcard|awk -F '[/ ]' '{for(i=1;i<=NF;i++){if($i~"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"){print $i;break}}}'|awk 'NR==1{print $0}')
fiif [ ! -d $BAKDIR ];thenmkdir -p $BAKDIRchown -Rf mysql:mysql  $BAKDIR
fi
############################################################
# 主从
LANG=C
MYSQL_CONN="mysql -uroot -p$PASSWD  -h$HOST -P$PORT -s -e"
MHOST=$($MYSQL_CONN "show slave status\G" | grep -i "Master_Host:")
if [ "X$MHOST" != "X" ];thenecho "current is Slave, got Master Info..." MPORT=$($MYSQL_CONN "show slave status\G" | grep -i "Master_Port:")if [ "X$MPORT" != "X" ]; thenHOST=$(echo $MHOST | awk '{ print $2 }')PORT=$(echo $MPORT | awk '{ print $2 }')MYSQL_CONN="mysql -uroot -p$PWD -h$HOST -P$PORT -s -e"fi
fi
############################################################
# 备份时间
TIME=$(date +"%Y%m%d%H%M%S")
# 备份文件名
DUMPFILE=FULL_$TIME.sql
GZDUMPFILE=FULL_$TIME.sql.tgz
############################################################
# 开始备份
cd $BAKDIR
LAST=$(date +"%Y年%m月%d日 %H:%M:%S")
mysqldump -uroot -p$PASSWD  -h$HOST -P$PORT --quick --events --all-databases  >$DUMPFILE 2>&1
if [ $? -eq 0 ];thentar -czf $GZDUMPFILE $DUMPFILE 2>&1rm -f $DUMPFILE echo "***********$GZDUMPFILE******************"         echo "***********${LAST}全量备份成功******************"  
elserm -f $DUMPFILEecho "***********${LAST}全量备份失败******************"  exit 1
fi
############################################################
# 清理备份,保留1个月
COUNT=$(ls -lrt *.tgz | wc -l)
if [ "$COUNT" -gt 4 ];thenFILE=$(ls -lrt  *.tgz |awk 'NR==1{print $NF}')rm -f $FILE
fi# 删除增量
#if [ -d "/data/backup/increment" ];then#rm -f /data/backup/increment/* 
#fi

vim  MYSQL_INCREMENT_BAK.sh                           //增量备份,每天一次 

 

#!/bin/bash
#set -x
############################################################
if [ $# -ne 2 ];then echo "Usage:依次输入参数: <ROOTPASSWD> <BAKDIR>";exit 1
fiif [ "$UID" != 0 ];thenecho "must be root"exit 1
fi if ! ps -ef | grep -v "grep"|grep -q "mysqld ";thenecho "未检测到mysql进程"exit 1
fi
############################################################
# 入参
PASSWD=$1
BAKDIR=$2
############################################################
# PORT && HOST && MYSQLHOME && BAKDIR
PORT=$(netstat -lanp | grep LISTEN | grep "mysqld"|awk -F ":" 'NR==1{print $4}')
MYSQL_HOME=$(ps -ef | grep -v "grep"|grep "mysqld "|tr -s ' ' '\n'|grep "\-\-basedir"|awk -F "=" '{print $NF}')
PATH=$MYSQL_HOME/bin:$PATHlocalnetcard=$(route -n|grep UG|head -n 1|awk '{print $NF}')
if [ ! "$localnetcard" == "" ];thenHOST=$(ip -4 addr show $localnetcard|awk -F '[/ ]' '{for(i=1;i<=NF;i++){if($i~"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"){print $i;break}}}'|awk 'NR==1{print $0}')
fiif [ ! -d $BAKDIR ];thenmkdir -p $BAKDIRchown -Rf mysql:mysql  $BAKDIR
fi
############################################################
# 主从
LANG=C
MYSQL_CONN="mysql -uroot -p$PASSWD  -h$HOST -P$PORT -s -e"
MHOST=$($MYSQL_CONN "show slave status\G" | grep -i "Master_Host:")
if [ "X$MHOST" != "X" ];thenecho "current is Slave, got Master Info..." MPORT=$($MYSQL_CONN "show slave status\G" | grep -i "Master_Port:")if [ "X$MPORT" != "X" ]; thenHOST=$(echo $MHOST | awk '{ print $2 }')PORT=$(echo $MPORT | awk '{ print $2 }')MYSQL_CONN="mysql -uroot -p$PASSWD -h$HOST -P$PORT -s -e"fi
fi
############################################################
if $MYSQL_CONN "show variables like 'log_%';" |egrep -i -q "log_bin[[:space:]]ON";then# binlog生成目录BINDIR=$($MYSQL_CONN "show variables like 'log_%';" |egrep -i "log_bin_basename"|awk '{print $NF}'|awk -F "mysql-bin|" '{print $1}')   # binlog索引BINFILE=$($MYSQL_CONN "show variables like 'log_%';" |egrep -i "log_bin_index"|awk '{print $NF}')TIME=$(date +"%Y年%m月%d日 %H:%M:%S")# 产生新的mysql-bin.00000*文件mysqladmin -uroot -p$PASSWD  -h$HOST -P$PORT flush-logsif [ $? -ne 0 ];thenecho "***********${TIME}增量备份失败******************"  exit 1fi
elseecho "mysql 未开启binlog日志"exit 1
fi
############################################################
COUNT=$(wc -l $BINFILE |awk '{print $1}')
i=0
cat $BINFILE|while read line;do   BINNAME=$(basename $line)i=$(expr $i + 1)if [ $i -ne $COUNT ];thendest=$BAKDIR/$BINNAMEif [ ! -e $dest ];thencp $BINDIR/$BINNAME $BAKDIRif [ $? -eq 0 ];thenecho "***********${TIME} $BINNAME增量备份成功******************"  elseecho "***********${TIME} $BINNAME增量备份失败******************"  exit 1fi   fifi
done

//赋权

chmod +x  /data/backup/*.sh

 

定时任务

crontab  -e
#每个星期日凌晨23:00执行完全备份脚本
0 23 * * 0   sh  /data/backup/MYSQL_FULLBAK.sh /back1 123456 >/dev/null 2>&1
#周一到周六凌晨23:00做增量备份
0 23 * * 1-6 sh /data/backup/MYSQL_INCREMENT_BAK.sh /back2 123456>/dev/null 2>&1
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置Hive使用Spark执行引擎

配置Hive使用Spark执行引擎 Hive引擎概述兼容问题安装SparkSpark配置Hive配置HDFS上传Spark的jar包执行测试速度对比 Hive引擎 概述 在Hive中&#xff0c;可以通过配置来指定使用不同的执行引擎。Hive执行引擎包括&#xff1a;默认MR、tez、spark MapReduce引擎&#xff1a; 早…

【Python 千题 —— 基础篇】今年几岁啦

题目描述 题目描述 介绍自己的年龄。请使用 input 函数读入一个整数&#xff0c;表示自己的年龄&#xff0c;然后程序将自动生成介绍自己年龄的英文语句。 输入描述 输入一个整数&#xff0c;表示自己的年龄。 输出描述 程序将生成一个英文语句&#xff0c;以介绍自己的年…

英码边缘计算盒子IVP03X——32T超强算力,搭载BM1684X算能TPU处理器

产品8大优势&#xff1a; 高效节能&#xff1a;相较异构产品&#xff0c;IVP03X数据调配效率更高&#xff0c;资源利用率更高&#xff0c;平均功耗更低&#xff1b;升级换代&#xff1a;相较算能BM1684平台&#xff0c;IVP03X算力、编码&#xff0c;模型转换性能均翻倍提升&am…

Easysearch Chart 0.2.0都有哪些变化

Easysearch Chart 包更新了&#xff0c;让我们来看看都有哪些变化&#xff1a; Docker 镜像升级 Service 名称调整&#xff0c;支持 NodePort 模式部署 现在让我们用 NodePort 模式部署一下&#xff1a; # helm search repo infinilabs NAME CHART VERSION …

VS2022+qt5.15.2+cmake3.23.2配置VTK9.1.0版本

VS2022qt5.15.2cmake3.23.2VTK9.1.0 尝试了好多次&#xff0c;终于成了~ 软件安装 先把需要的软件都安装好&#xff01; VS2022安装教程: https://blog.csdn.net/qq_44005305/article/details/132295064 qt5.15.2安装教程&#xff1a;https://blog.csdn.net/Qi_1337/article…

SparkSQL外部数据源

1.简介 1.1 多数据源支持 Spark 支持以下六个核心数据源,同时 Spark 社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景。 - CSV - JSON - Parquet - ORC - JDBC/ODBC connections - Plain-text files 1.2 读数据格式 所有读取 API 遵循以下调用格式: // …

PLC之间无线通信-不用编程实现多品牌PLC无线通讯的解决方案

本文是PLC设备之间基于IGT-DSER系列智能网关实现WIFI无线通讯的案例。采用西门子S7-1500系列的PLC作为主站&#xff0c;与其它品牌的PLC之间进行网络通讯。案例包括智能网关AP方式、现场WIFI信号两种方式。有线以太网方式实现PLC之间通讯的案例 一、智能网关AP方式 将网络中的其…

【图灵】Spring为什么要用三级缓存解决循环依赖问题

这里写自定义目录标题 一、什么是循环依赖二、什么是单例池&#xff1f;什么是一级缓存&#xff1f;三、什么是二级缓存&#xff0c;它的作用是什么&#xff1f;四、什么是三级缓存&#xff0c;它的作用是什么&#xff1f;五、为什么Spring一定要使用三级缓存来解决循环依赖六、…

SpringBatch适配不同数据库的两种方法

一、配置JobRepository Configuration EnableBatchProcessing public class TaskArrangeConfig extends DefaultBatchConfigurer {Autowiredprivate DataSource dataSource;Autowiredprivate JobLauncher jobLauncher;Autowiredprivate JobExplorer jobExplorer;Autowiredpriv…

李沐深度学习记录4:12.权重衰减/L2正则化

权重衰减从零开始实现 #高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l#整个流程是&#xff0c;1.生成标准数据集&#xff0c;包括训练数据和测试数据 # 2.定义线性模型训练 # 模型初始化&#xff08;函…

centos7 快速搭建自测mysql环境 docker + mysql

环境准备 centos7快速搭建docker mysql docker镜像源配置 一般都是要配的不然太慢了&#xff0c;docker 1.12以上创建或修改 /etc/docker/daemon.json 文件&#xff0c;修改为如下形式: 地址替换国内源 {"registry-mirrors" : ["https://docker.mirrors.u…

springboot 捕获特点异常信息并处理

前端获取效果图 springboot 捕获特点异常信息并处理 import com.one.utils.JSONResult; //JSONResult定义处理结果对象 import org.springframework.web.bind.annotation.ExceptionHandler

35.树与二叉树练习(1)(王道第5章综合练习)

【所用的树&#xff0c;队列&#xff0c;栈的基本操作详见上一节代码】 试题1&#xff08;王道5.3.3节第3题&#xff09;&#xff1a; 编写后序遍历二叉树的非递归算法。 参考&#xff1a;34.二叉链树的C语言实现_北京地铁1号线的博客-CSDN博客https://blog.csdn.net/qq_547…

3D 生成重建005-NeRF席卷3D的表达形式

3D生成重建005-NeRF席卷3D的表达形式 文章目录 0 论文工作1 论文方法1.1 体渲染1.2 离散积分1.3位置编码1.4分层采样1.5 影响 2 效果 0 论文工作 NeRF(神经辐射场技术)最早2020年提出用于新视图合成任务&#xff0c;并在这个领域取得了优秀的效果。如下图所示&#xff0c;受到…

Springcloud笔记(2)-Eureka服务注册

Eureka服务注册 服务注册&#xff0c;发现。 在Spring Cloud框架中&#xff0c;Eureka的核心作用是服务的注册和发现&#xff0c;并实现服务治理。 Eureka包含两个组件&#xff1a;Eureka Server和Eureka Client。 Eureka Server提供服务注册服务&#xff0c;各个节点启动后…

mysql面试题31:一条SQL语句在MySQL中如何执行的

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:一条SQL语句在MySQL中如何执行的 以下是一条SQL语句在MySQL中的详细执行步骤: 语法分析:MySQL首先对SQL语句进行语法分析,检查SQL语句是否符合…

ARM-流水灯

.text .global _start _start: 1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28LDR R0,0X50000A28 LDR R1,[R0] 从R0起始地址的4字节数据取出放在R1 ORR R1,R1,#(0X3<<4) 第4位设置为1 STR R1,[R0] 写回2、设置PE10、PE8、PF10管脚为输出模式 …

elasticSearch7.9数据占用磁盘存储空间情况

最近&#xff0c;在VMware Workstation虚拟机上安装了es7.9&#xff0c;单节点的es&#xff0c;不是集群&#xff0c;然后建了一个索引&#xff08;包含3个分片和一个副本&#xff09;&#xff0c;插入了500万条数据&#xff0c;占据磁盘空间17G。如下图&#xff1a; 索引的字…

在两个有序数组中找整体第k小的数

一、题目 给定两个已经排序的数组&#xff08;假设按照升序排列&#xff09;&#xff0c;然后找出第K小的数。比如数组A {1&#xff0c; 8&#xff0c; 10&#xff0c; 20}&#xff0c; B {5&#xff0c; 9&#xff0c; 22&#xff0c; 110}&#xff0c; 第 3 小的数是 8.。…

基于Springboot实现点餐平台网站管理系统项目【项目源码+论文说明】分享

基于Springboot实现点餐平台网站管理系统演示 摘要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多商家的之中&#xff0c;随之就产生了“点餐平台网站”&#xff0c;这样就让点餐平台网站更加方便简单。 对于本…