centos7 xtrabackup mysql(8)增量备份 脚本(2)

news/2024/9/22 16:33:57/

centos7 xtrabackup mysql(8)增量备份 脚本(2)

Shell 基本运算符
https://www.runoob.com/linux/linux-shell-basic-operators.html

https://blog.csdn.net/weixin_30823001/article/details/96417008

https://blog.csdn.net/weixin_35985795/article/details/113379060

测试用脚本

cat script_xtrabackup.sh

#!/bin/sh
. /etc/profile
user=root
password=1234aA~1
backup_dir=/data/
gzip_dir=$backup_dir
log_dir=$backup_dir/log# 全备是在一周的第几天
full_backup_week_day=1
error_log=# 备份日期backup_date=`date +%Y%m%d`# 备份时间backup_time=`date +%H-%M-%S`# 备份时的周几backup_week_day=`date +%u`mkdir -p $backup_dirmkdir -p $log_dirlog_file=${backup_dir}/log/backup.log
log_x_file=${backup_dir}/log/backup_xtra.logx_file_size=`ls -l $log_x_file | awk '{print $5}'`num_x_file_size=$((x_file_size))
echo $num_x_file_sizeif [ $num_x_file_size -gt 9000000 ];thenecho "" > $log_x_file
fiecho $backup_date
echo $backup_time
echo $backup_week_daylet delta=backup_week_day-full_backup_week_dayecho $delta
echo ""
echo ""
echo '------------------  start  ---------------------'${backup_date} ${backup_time} >> $log_fileif [ "$delta" -eq 0 ]
then# 全量备份echo '全量备份 delta=$delta' >> ${log_file}mkdir -p $backup_dir/backup$backup_dateif [ -e "$backup_dir/backup$backup_date/full_backup" ];thenecho "full_backup exist " >> ${log_file}exit 0fixtrabackup --backup --target-dir=$backup_dir/backup$backup_date/full_backup --user=$user --password=$password --socket=/opt/datadir/mysql/mysql.sock >> ${log_x_file} 2>&1elif [ "$delta" -eq 1 ]
thenecho ""   >> ${log_file}echo ""   >> ${log_file}echo "第一次增量备份 delta=$delta" >> ${log_file}date_last=$(date -d "-1 day" '+%Y%m%d')echo $date_last >> ${log_file}if [ -e "$backup_dir/backup${date_last}/inc_1_backup" ];thenecho "inc_1_backup exist " >> ${log_file}exit 0fiif [ ! -e "$backup_dir/backup${date_last}/full_backup" ];thenecho "full_backup not exist " >> ${log_file}exit 0fixtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_1_backup --incremental-basedir=$backup_dir/backup${date_last}/full_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1elif [ "$delta" -gt 0 ]
thenecho ""   >> ${log_file}echo ""   >> ${log_file}echo "delta大于0 增量备份 delta=$delta" >> ${log_file}date_last=$(date -d "-${delta} day" '+%Y%m%d')echo $date_last  >> ${log_file}if [ -e "$backup_dir/backup${date_last}/inc_${delta}_backup" ];thenecho "inc_${delta}_backup exist " >> ${log_file}exit 0fiif [ ! -e "$backup_dir/backup${date_last}/inc_$((delta-1))_backup" ];thenecho "$backup_dir/backup${date_last}/inc_$((delta-1))_backup"echo "inc_$((delta-1))_backup not exist " >> ${log_file}exit 0fixtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_${delta}_backup --incremental-basedir=$backup_dir/backup${date_last}/inc_$((delta-1))_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1
elseecho ""   >> ${log_file}echo ""   >> ${log_file}echo "delta小于0 增量备份 delta=$delta" >> ${log_file}let num=7+$deltaecho 'num ='${num} >> ${log_file}date_last=$(date -d "-${num} day" '+%Y%m%d')echo $date_last >> ${log_file}echo $((num-1)) >> ${log_file}if [ -e "$backup_dir/backup${date_last}/inc_${num}_backup" ];thenecho "inc_${num}_backup exist " >> ${log_file}exit 0fiif [ ! -e "$backup_dir/backup${date_last}/inc_$((num-1))_backup" ];thenecho "inc_$((num-1))_backup not exist " >> ${log_file}exit 0fixtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_${num}_backup --incremental-basedir=$backup_dir/backup${date_last}/inc_$((num-1))_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1
fi#sudo xtrabackup --backup --target-dir=/data//backup20240729/inc_3_backup --incremental-basedir=/data//backup20240729/inc_1_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock

恢复提示语句 脚本

cat create_restore_file.sh

#!/bin/shmysql_dir=/opt/datadir/
backup_dir=/data/date2="20080203"
date_store=`date -d "$date2" +%s`
echo $date_store
file_store=''
for file in $backup_dir/*
doecho $fileif [ -d "$file" ];thenecho "$file is a dir"dir_name=${file##*/}echo "file name = $dir_name"if [[ $dir_name == backup* ]];thenecho "dir_name= $dir_name"substring=${dir_name:6:8}echo "substring=$substring"date1=`date -d "$substring" +%s`echo "$date1"if [ $date_store -lt $date1 ];thendate_store=$date1echo "hello $date_store"file_store=$fileecho "$file_store"fififi
donenum='0'
for file in $file_store/*
doecho $fileif [ -d "$file" ];thendir_name=${file##*/}echo "file name = $dir_name"if [[ $dir_name == inc* ]];thenecho "dir_name= $dir_name"substring=${dir_name:4:1}echo "substring=$substring"if [ $num -lt $substring ];thennum=$substringfififi
doneecho "num= $num"
echo "sudo systemctl stop mysqld" > ~/restore_sql.txt
echo "sudo cp -r ${mysql_dir}/mysql ${mysql_dir}/bak_mysql" >> ~/restore_sql.txt
echo "sudo rm -rf ${mysql_dir}/mysql/*" >> ~/restore_sql.txtecho "sudo xtrabackup --prepare --apply-log-only --target-dir=$file_store/full_backup" >> ~/restore_sql.txtcnt=$((num))
echo "cnt = $cnt"
if [ $num -gt '0' ];thenfor((i=1;i<$cnt;i++));doecho "xtrabackup --prepare --apply-log-only --target-dir=$file_store/full_backup --incremental-dir=$file_store/inc_${i}_backup" >> ~/restore_sql.txtdoneecho "xtrabackup --prepare  --target-dir=$file_store/full_backup --incremental-dir=$file_store/inc_${cnt}_backup" >> ~/restore_sql.txtfiecho "sudo xtrabackup --copy-back  --target-dir=$file_store/full_backup" >> ~/restore_sql.txtecho "sudo chown -R mysql.mysql ${mysql_dir}/mysql/*" >> ~/restore_sql.txtecho "sudo systemctl restart mysqld" >> ~/restore_sql.txt

http://www.ppmy.cn/news/1504110.html

相关文章

基于12位D/A转换器实现数控直流电流源的设计

电流源是一种能向负载提供恒定电流的电路&#xff0c;它既可以为各种放大电路提供偏流以稳定其静态工作点&#xff0c;又可以作为其有源负载以提高放大倍数&#xff0c;在差动放大电路&#xff0c;脉冲产生电路中得到了广泛应用。2005年全国大学生电子设计竞赛的F题就是数控直流…

Pandas 基础教程

Pandas 是 Python 中用于数据分析和数据处理的强大库。它提供了两种主要的数据结构:Series 和 DataFrame,以及用于操作这些数据结构的工具。本教程将介绍 Pandas 的安装、基本用法、数据清洗以及一些高级功能。 一、引言 Pandas 是 Python 社区中最常用的用于数据处理和分析…

前后端demo-WarehouseManagement

前端 数据库 其他 1.git下来&#xff0c;解决依赖问题&#xff0c;前端报错因为字体文件丢失&#xff0c;下载字体放到fonts文件夹字体.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 2.后端login验证&#xff0c;前端需要账号格式&#xff0c;linqq.com 3.自己…

ChatGPT小狐狸AI付费创作系统v3.0.3+前端

小狐狸GPT付费体验系统的开发基于国外很火的ChatGPT&#xff0c;这是一种基于人工智能技术的问答系统&#xff0c;可以实现智能回答用户提出的问题。相比传统的问答系统&#xff0c;ChatGPT可以更加准确地理解用户的意图&#xff0c;提供更加精准的答案。同时&#xff0c;小狐狸…

详解Vue中nextTick的原理与作用

Vue中的nextTick是一个非常重要的API&#xff0c;它允许开发者延迟回调函数的执行直到下次DOM更新循环之后。这一机制在Vue开发中非常有用&#xff0c;特别是在处理DOM更新和异步操作时。下面将详细解释nextTick的原理与作用。 原理 Vue的DOM更新是异步进行的。当数据发生变化…

【传知代码】LAD-GNN标签注意蒸馏(论文复现)

近年来&#xff0c;随着图神经网络&#xff08;GNN&#xff09;在各种复杂网络数据中的广泛应用&#xff0c;如何提升其在大规模图上的效率和性能成为了研究的热点之一。在这个背景下&#xff0c;标签注意蒸馏&#xff08;Label Attention Distillation&#xff0c;简称LAD&…

工业物联网网关在印刷行业预测性维护中的应用及其带来的成果-天拓四方

项目背景 随着印刷设备的老化&#xff0c;某印刷企业面临着设备故障频发、维护成本上升的问题。为了降低维护成本并提高设备运行的稳定性&#xff0c;该企业决定引入工业物联网网关来实现预测性维护。 应用方案 该企业选择了一款具备机器学习功能的工业物联网网关&#xff0…

Springboot实战:AI大模型+亮数据代理助力短视频时代

目录 前言1.如何入门亮数据1.1、注册登录1.2、注册账号1.3、登录1.4、购买静态住宅代理1.5、展示购买的代理 2. 使用Springboot、AI大模型构建系统2.1 使用Springboot、AI大模型构建爬虫2.2、在Springboot项目添加工具 3、编写代码&#xff0c;爬取视频素材3.1、代码里使用代理…