当前位置: 首页 > news >正文

MySQL使用Xtrabackup备份到AWS存储桶

1.安装Xtrabackup

cd /tmp
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm
yum -y localinstall percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm
xtrabackup  --version

在这里插入图片描述

2.安装AWS CLI

2.1 安装

yum -y install python3-pip
pip3 install awscli

2.2设置 AWS CLI 配置信息

aws_access_key_id="AKI............................"         ##AWS密钥
aws_secret_access_key="JF.................................."     ##AWS密钥
aws_default_region="sa-east-1"    #这个是S3桶的区域,根据你开通的区域修改
aws_output_format="json"    #这个是默认的

2.3使用 aws configure 命令设置 AWS CLI 配置信息

aws configure set aws_access_key_id $aws_access_key_id
aws configure set aws_secret_access_key $aws_secret_access_key
aws configure set default.region $aws_default_region
aws configure set default.output $aws_output_format

2.4验证是否配置成功

aws  s3  ls

在这里插入图片描述

3.mysql授权备份用户

外部终端执行,不需要进入库

#mysql授权建立一个授权函数
check() {mysql=/opt/lucky/apps/mysql/bin/mysqlsock=/opt/lucky/data/data_16303/mysql.sockpasswd='123456'  #改成自己本地的mysql密码sql_command="GRANT BACKUP_ADMIN ON *.* TO 'root'@'localhost'; FLUSH PRIVILEGES;"$mysql -uroot -p$passwd -S $sock -e "$sql_command"
}
##执行授权函数
check

4.写入备份脚本

4.1创建一个放备份脚本的目录

脚本有两个地方需要修改的,一个是桶名字,一个是你的mysql密码

mkdir  -p  /data/backup/
vim /data/backup/backup_script.sh
#!/bin/bash
## --------------------- start config --------------------- ## 
## xtrabackup安装目录
XTRABACKUP_DIR="/usr/bin"
## 备份存放目录
BACKUP_DIR="/opt/backup"
## mysql安装目录
MYSQL_DIR="/opt/lucky/apps/mysql"
## 配置文件目录
MYSQL_CNF="/opt/lucky/conf/my_16303.cnf"
## 数据库用户
MYSQL_USER="root"
## 数据库密码
MYSQL_PASSWORD="密码"
## 数据库端口
MYSQL_PORT=16303
## 数据库sock文件
MYSQL_SOCK="/opt/lucky/data/data_16303/mysql.sock"## S3存储桶名称
S3_BUCKET="awx的桶名"## --------------------- end config --------------------- ## ## 如果任何语句的执行结果不是true则应该退出。
set -e## 当前天
CURRENT_DATE=$(date +%F)## 当前小时(以24小时制表示)
CURRENT_HOUR=$(date +%H)## AWS CLI 命令路径
aws_cmd=$(find / -name aws)function full_backup(){## 描述:xtrabackup 全库备份PARA1=$1## 开始时间START_TIME=$(date +"%s")## 当前日期作为备份文件名后缀BACKUP_SUFFIX=$(date +"%Y%m%d%H")if [ ! -d "$BACKUP_DIR/$PARA1/full" ]; thenmkdir $BACKUP_DIR/$PARA1/full -p## 全库备份echo $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Starting full backup."$XTRABACKUP_DIR/xtrabackup --defaults-file=$MYSQL_CNF -u$MYSQL_USER -p$MYSQL_PASSWORD -S$MYSQL_SOCK --backup --target-dir=$BACKUP_DIR/$PARA1/full > $BACKUP_DIR/$PARA1/full/full_backup_$BACKUP_SUFFIX.log 2>&1 echo $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Backup logs in $BACKUP_DIR/$PARA1/full/full_backup_$BACKUP_SUFFIX.log."echo $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Backup complete, size: $(du $BACKUP_DIR/$PARA1 --max-depth=1 -hl | grep 'full' | awk '{print $1}')."echo $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Backup complete, using time: "$(($(date +"%s") - $START_TIME))" seconds."## 打包全量备份tar -zcf $BACKUP_DIR/$PARA1/full_$BACKUP_SUFFIX.tar.gz $BACKUP_DIR/$PARA1/full## 把打包好的压缩包上传到AWS S3$aws_cmd s3 cp $BACKUP_DIR/$PARA1/full_$BACKUP_SUFFIX.tar.gz s3://$S3_BUCKET/echo $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Full backup has been compressed to $BACKUP_DIR/$PARA1/full_$BACKUP_SUFFIX.tar.gz."## 上传成功后删除备份目录和备份压缩包rm -rf $BACKUP_DIR/$PARA1/fullrm -f $BACKUP_DIR/$PARA1/full_$BACKUP_SUFFIX.tar.gzecho ''elseecho $(date "+%Y-%m-%d %H:%M:%S")" [Info] --> Full backup directory already exists for the current hour."echo ''fi
}function delete_seven_days_ago(){## 描述:使用AWS命令删除S3桶内7天前的备份文件# 7天前的日期seven_days_ago=$(date -d "7 days ago" +%Y%m%d)# 列出存储桶中的文件files=$($aws_cmd s3 ls s3://$S3_BUCKET/)while read -r line; do# 获取文件名file_name=$(echo "$line" | awk '{print $4}')# 提取文件名中的日期部分(full_2023091207.tar.gz -> 2023091207)date_part=$(echo "$file_name" | grep -oE '[0-9]{10}')# 检查文件日期是否早于7天前if [[ -n "$date_part" && "$date_part" < "$seven_days_ago" ]]; thenecho "Deleting $file_name..."# 删除文件$aws_cmd s3 rm "s3://$S3_BUCKET/$file_name"echo "File $file_name deleted."fidone <<< "$files"}
## 每小时执行一次全量备份
full_backup $CURRENT_DATE
## 删除7天前的备份文件
delete_seven_days_ago

4.2赋予执行权限

chmod +x /data/backup/backup_script.sh

5.设定定时任务

0 * * * * /bin/bash /data/backup/backup_script.sh >> /data/backup/crontab_backup.log 2>&1

在这里插入图片描述

相关文章:

MySQL使用Xtrabackup备份到AWS存储桶

1.安装Xtrabackup cd /tmp wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm yum -y localinstall percona-xtrabackup-80-8.0.33-28.1.el7.x86…...

(高阶)Redis 7 第11讲 BIGKEY 优化篇

面试题 问题答案如何在海量数据中查询某一固定前缀的Keyscan生产环境如何限制 keys */FLUSHDB/FLUSHALL 等危险命令,防止误删误用# 修改配置文件 rename-command keys "" rename-command flushdb "" rename-command flushall ""如何使用MEMORY U…...

一阶差分和二阶差分概念及其举例

一阶差分和二阶差分概念及其举例 目录 一阶差分和二阶差分概念及其举例1、一阶差分1.1 概念1.2 举例 2、二阶差分2.1 概念2.2 举例 1、一阶差分 1.1 概念 一阶差分是指对一个数列中的每个元素&#xff0c;计算其与其前一个元素之差的操作。 1.2 举例 举例来说&#xff0c;对…...

使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常

目录 一 自定义异常二 自定义注解三 注解切面处理类四 使用 一 自定义异常 /*** 自定义参数为null异常*/ public class NoParamsException extends Exception {//用详细信息指定一个异常public NoParamsException(String message){super(message);}//用指定的详细信息和原因构…...

Kotlin(六) 类

目录 创建类 调用类 类的继承------open 构造函数 创建类 创建类和创建java文件一样&#xff0c;选择需要创建的目录New→Kotlin File/Class Kotlin中也是使用class关键字来声明一个类的&#xff0c;这一点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功…...

蓝桥杯官网练习题(灌溉)

题目描述 小蓝负责花园的灌溉工作。 花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。 小蓝可以控制一个按钮同时打开所有的出水管&#xff0c;打开时&#xff0c;有出水管的位置可以被认为已经灌溉好。 每经过一分钟&#xff0c;水就会向四面扩展…...

数据结构:树的概念和结构

文章目录 1. 树的概念2. 树的结构3. 树的相关概念4. 树的表示孩子表示法双亲表示法孩子兄弟表示法 5. 树在实际中的应用5. 树在实际中的应用 1. 树的概念 树是一种非线性的数据结构,它是由 n (n > 0)个有限结点组成一个具有层次关系的. 把它叫做树是因为它看起来像一棵倒挂的…...

【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型

问题: 栅格转面(矢量)时,ArcGIS窗口显示:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型. 原因: 栅格转面时输入的栅格数据集的字段必须是整型. 解决办法: 使用Spatial Analyst中的转为整型工具,将栅格数据转为整型后再进行栅格转面的操作…...

32 WEB漏洞-文件操作之文件下载读取全解

目录 介绍利用获取数据库配置文件文件名&#xff0c;参数值&#xff0c;目录符号 涉及案例:Pikachu-文件下载测试-参数Zdns-文件下载真实测试-功能点小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现-比赛百度杯2017二月-Zone真题复现-比赛拓展 下载和读取都差不…...

Linux之history、tab、alias、命令执行顺序、管道符以及exit

目录 Linux之history、tab、alias、命令执行顺序、管道符以及exit history历史命令 格式 参数 修改默认记录历史命令条数 案例 案例1 --- 显示history历史记录中出现次数最高的top10 案例2 --- 增加history显示的时间信息 命令与文件名补全 --- tab 命令别名 格式 案…...

vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享

VCOMP100.DLL 是由微软打造的动态链接库&#xff0c;它对于一些图形密集型应用&#xff0c;例如Photoshop&#xff0c;以及多款知名游戏如巫师3的运行至关重要。 如果操作系统在启动应用程序时无法找到此vcomp100.dll&#xff0c;则会出现vcomp100.dll丢失或未找到错误。 如果D…...

Vue3自定义指令(directive)

文章目录 前言一、Vue3指令钩子函数二、自定义指令的两种方式1.局部使用例子1&#xff1a;鉴权例子2&#xff1a;拖拽 2.全局使用例子1&#xff1a;监听宽高指令例子2&#xff1a;监听是否出现在视口 总结 前言 此文章主要讲了vue3中自定义指令的使用&#xff0c;以及一些WebA…...

大数据课程L9——网站流量项目的实时业务处理代码

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握网站流量项目的SparkStreaming代码; ⚪ 掌握网站流量项目的HBaseUtil代码; ⚪ 掌握网站流量项目的MysqlUtil代码; ⚪ 掌握网站流量项目的LogBean代码; ⚪ 掌握网站流量项目的To…...

【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论

文章目录 一、爬取目标二、展示爬取结果三、爬虫代码四、同步视频五、附完整源码 您好&#xff0c;我是 马哥python说&#xff0c;一枚10年程序猿。 一、爬取目标 之前&#xff0c;我分享过一些B站的爬虫&#xff1a; 【Python爬虫案例】用Python爬取李子柒B站视频数据 【Pyt…...

mysql设置max_sp_recursion_depth,sql_mode

mysql 中设置 @@max_sp_recursion_depth select @@max_sp_recursion_depth; 今天在mysql 写存储过程递归调用时,发现老是报错(recovery limit 0(as set by the max_sp_recursion_depth));后来百度下发现 max_sp_recursion_depth设置不对; 这个修改涉及到全局和session级修…...

论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer

Related Work Self-supervised 学习目的是在无人工标注的情况下通过自定制的任务&#xff08;hand-crafted pretext tasks&#xff09;学习丰富的表示。 Abstract 使用自监督学习为卷积网络&#xff08;CNN&#xff09;学习表示已经被验证对视觉任务有效。作为CNN的一种替代…...

遥感数据与作物模型同化应用:PROSAIL模型、DSSAT模型、参数敏感性分析、数据同化算法、模型耦合、精度验证等主要环节

查看原文>>>遥感数据与作物模型同化实践技术应用 基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不同条件下作物生长发育及…...

Navicat15工具连接PostgreSQL15失败

1.错误现象及原因 错误现象&#xff1a; 错误原因&#xff1a; postgresql 15版本中 pg_database 系统表把 datlastsysoid 列删除了&#xff0c;所以造成了此错误。 2.解决方法 &#xff08;1&#xff09;将Navicat工具更新到官网最新版本。 &#xff08;2&#xff09;更换…...

开源AI家庭自动化助手-手机控制家庭智能家居服务

产品简介 将本地控制和隐私放在首位的开源家庭自动化。由全球开发者和 DIY 爱好者社区提供支持。非常适合在 Raspberry Pi 或本地服务器上运行。 功能介绍 1. 控制面板在控制面板&#xff0c;你可以查看家庭的灯光&#xff0c;温度&#xff0c;门铃&#xff0c;音响&#xf…...

解决CSS定位错乱/疑难杂症的终极绝招==》从样式污染开始排查

我们接手他人或者第三方项目的时候&#xff0c;有时候会遇到一些莫名其妙的问题&#xff1a; 明明自己的样式写的没有问题&#xff0c;但是网页上却显示的乱七八糟的&#xff0c;或者效果完全出不来。 案例如下&#xff1a; 这里只用了很典型的flex弹性布局&#xff0c;并没有…...

【笔记】《C++性能优化指南》Ch3 测量性能

【笔记】《C性能优化指南》Ch3 测量性能 1. 优化思想1.1 专业的性能测试流程1.2 优化准则1.2.1 90/10规则1.2.2 Amdahl定律 2. 进行实验2.1 记实验笔记2.2 测量基准性能并设定目标2.3 你只能改善你能够测量的 3. 分析程序执行3.1 实现分析器的方式3.2 分析器的优缺点 4. 测量长…...

2023大数据面试总结

文章目录 Flink&#xff08;SQL相关后面专题补充&#xff09;1. 把状态后端从FileSystem改为RocksDB后&#xff0c;Flink任务状态存储会发生哪些变化&#xff1f;2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite&#xff1f;3. watermark 到底…...

udev自动创建设备节点的机制

流程框图如下 自动创建 1 内核检测到设备插入后&#xff0c;会发送一个uevent事件到内核中&#xff0c;并提供有关硬件设备的信息。 2 udevd守护程序收到uevent事件后&#xff0c;创建一个设备类&#xff0c;&#xff08;向上提交目录信息&#xff09;&#xff0c;会在内核中…...

访问局域网内共享文件时报错0x80070043,找不到网络名

我是菜鸡 此篇只为分享一个我遇到的很简单的但是排查了好久的小问题。 我的网络环境是在校园网内&#xff0c; 自己的办公电脑设置了固定IP&#xff1a;10.11.128.236&#xff0c;同事电脑IP为&#xff1a;10.11.128.255 本人需要访问同事在局域网内分享的文件&#xff0c;…...

Java定时器

对于定时器的设定&#xff0c;想必大家在不少网站或者文章中见到吧&#xff0c;但是所谓的定时器如何去用Java代码来bianx呢&#xff1f;&#xff1f;感兴趣的老铁&#xff0c;可以看一下笔者这篇文章哟~~ 所谓的定时器就是闹钟&#xff01;&#xff01; 设定一个时间&#x…...

科普js加密时出现的错误

当你在使用Babel解析JavaScript代码时&#xff0c;可能会遇到一个错误信息&#xff1a;“Deleting local variable in strict mode”&#xff08;在严格模式下删除本地变量&#xff09;。这个错误信息通常表示你正在尝试删除一个使用let或const关键字声明的变量。在JavaScript的…...

MYSQL优化——B+树讲解

B-/B树看 MySQL索引结构 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树.它类似普通的平衡二叉树&#xff0c;不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中&#xff1b; 任何一…...

Rokid Jungle--Station pro

介绍和功能开发 YodaOS-Master操作系统&#xff1a;以交换计算为核心&#xff0c;实现单目SLAM空间交互&#xff0c;具有高精度、实时性和稳定性。发布UXR2.0SDK&#xff0c;为构建空间内容提供丰富的开发套件 多模态交互 算法原子化 多种开发工具协同 多生态支持 骁龙XR2…...

如何实现微服务

一、问题拆解 1.1、客户端如何访问这些服务 原来的Monolithic方式开发&#xff0c;所有的服务都是本地的&#xff0c;UI可以直接调用&#xff1b;现在按功能拆分成独立的服务&#xff0c;跑在独立的虚拟机上的Java进程了。客户端UI如何访问他的&#xff1f; 后台有N个服务&a…...

MySQL如何进行增量备份与恢复?

目录 一、MySQL 介绍 二、增量备份 三、备份恢复 一、MySQL 介绍 MySQL是一款开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它以其可靠性、灵活性和易于使用而备受赞誉。以下是关于MySQL数据库的介绍&#xff1a; MySQL是由瑞典公司MySQL AB开发&…...

互联网网站seo优化/广州网站设计制作

Rsync安装配置昨天由于部门研发同事要做个小项目&#xff0c;要我提供一份rsync的安装配置文档&#xff0c;就简单了写了份&#xff0c;顺便发出来了。1&#xff0c; 测试环境&#xff1a;CentOS release 5.8 2.6.18-308.el5 x86_64IP_S: 192.168.104.137IP_C: 192.168.…...

wordpress织梦 更快/奶茶网络营销策划方案

新买的电脑&#xff0c;用一段时间后&#xff0c;可能会出现各种各样的问题&#xff0c;如果垃圾过多、启动速度慢可以通过软件对电脑进行优化&#xff0c;但是如果电脑中毒&#xff0c;反复重启&#xff0c;排除是硬件问题的话&#xff0c;最好的解决之道就是重新安装系统了&a…...

做公司标志用哪个网站/百度软文推广公司

近年来&#xff0c;大规模的个人信息泄漏事件不断发生&#xff0c;由此引发的精准诈骗也经常被媒体报道。有着庞大用户群体和海量交易的阿里巴巴却能独善其身&#xff0c;这背后有什么独门秘籍呢&#xff1f;当我们表明来意时&#xff0c;阿里安全技术平台资深专家玄泰反复提到…...

网站建设经营范围/谷歌网页版入口

更多实例例子 1移除字符串两侧的空格&#xff1a;$str " Hello World! ";echo "不使用 trim: " . $str;echo "";echo "使用 trim: " . trim($str);?>以上代码的 HTML 输出如下(请查看源代码)&#xff1a;不使用 trim: Hello Worl…...

自己做网站用买域名吗/吉林网络推广公司

每天利用计划任务在凌晨1点自动执行&#xff0c;备份zabbix的数据库至本地的/backup/mysql_backup目录 #!/bin/sh DUMP/usr/bin/mysqldump OUT_DIR/backup/mysql_backup LINUX_USERroot DB_NAMEzabbix DB_USERroot DB_PASS123456 cd $OUT_DIR DATEdate %Y%m%d OUT_SQL"$DA…...

wordpress降级/百度快照入口官网

1.使类和成员的可访问性最小化 封装&#xff08;数据私有化&#xff0c;方法公开化&#xff09;&#xff0f;对外提供可调用的&#xff0c;稳定的功能可访问性应该明确修饰符本类同包类子类其他类public√√√√protected√√√默认√√private√实例域绝不能是公有的包级私有的…...