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

MySQL和Minio数据备份

文章目录

  • 一、MySQL数据备份
    • 1. MySQL客户端
    • 2. 数据增量备份
    • 3. 数据增量还原
    • 4. 数据全量备份
    • 5. 数据全量还原
  • 二、Minio数据备份
    • 1. Minio客户端
    • 2. 数据备份
    • 3. 数据还原
  • 三、其他参考
    • 1. 设置定时备份
    • 2. 数据拷贝到其他服务器
    • 3. MySQL其他语句


一、MySQL数据备份

Linux环境:Ubuntu 20.04.6,MySQL版本:8.2,在服务器端操作

1. MySQL客户端

mkdir -p /home/backup/mysql && cd /home/backup/mysql
mkdir day && mkdir week
sudo apt install mysql-client-core-8.0 # 备份需要
sudo apt install mysql-server-core-8.0 # 日志还原需要
  • 查询MySQL版本信息
mysqladmin -h127.0.0.1 -P3306 -uroot -p123456 version
  • 登录、查询log_bin是否开启(ON)、查询当前使用日志
mysql -h127.0.0.1 -P3306 -uroot -p123456
mysql> show variables like 'log_bin';
mysql> show master status;

2. 数据增量备份

  • backup.sh
#!/bin/bash
backupDir=/home/backup/mysql/day				# 增量备份目录
backupLogFile=$backupDir/backup.log				# 增量备份日志
mysqlDir=/home/mysql/data						# mysql-bin.*日志存放目录
binFile=/home/mysql/data/mysql-bin.index		# mysql-bin.index位置mysqladmin -h127.0.0.1 -P3306 -uroot -p123456 flush-logs
echo `` >> $backupLogFile
echo `date +"%Y-%m-%d %H:%M:%S"` backup >> $backupLogFile
count=`wc -l $binFile |awk '{print $1}'`
num=0
for file in `cat $binFile`
dobase=`basename $file`num=`expr $num + 1`if [ $num  -ne $count ] && (! test -e $backupDir/$base)thencp $mysqlDir/$base $backupDirecho $base >> $backupLogFilefi
done

3. 数据增量还原

  • 数据库客户端操作
mysql> flush logs;										# 刷新日志
mysql> show binlog events in 'mysql-bin.000023';		# 分析需要还原的日志数据
  • Shell环境操作
mysqlbinlog --stop-position=509 mysql-bin.000023 | mysql -h127.0.0.1 -P3306 -uroot -p123456
  • 参数说明
--start-position= 起始pos点
--stop-position= 结束pos点
--start-datetime= 起始时间点
--stop-datetime= 结束时间点
-d 指定数据库

4. 数据全量备份

  • backupAll.sh
#!/bin/bash
backupDir=/home/backup/mysql/week				# 备份目录
backupLogFile=$backupDir/backup.log				# 备份日志
dbName=manage									# 需要备份的数据库
day=3											# 保留几天的备份mysqldump -h127.0.0.1 -P3306 -uroot -p123456 --single-transaction $dbName|gzip > $backupDir/$dbName-`date +%Y%m%d%H%M%S`.sql.gz
echo `` >> $backupLogFile
echo "backup $dbName-`date +%Y%m%d%H%M%S`.sql.gz" >> $backupLogFilefind $backupDir -type f -name "$dbName-*" -mtime +$day -exec rm {} \;

5. 数据全量还原

  • Shell环境操作
gzip -d 数据库名-20231211121350.sql.gz
mysql -h127.0.0.1 -P3306 -uroot -p123456
mysql> drop database 数据库名;
mysql> create database 数据库名;
mysql> use 数据库名;
mysql> source 数据库名-20231211121350.sql;

二、Minio数据备份

Linux环境:Ubuntu 20.04.6,Minio版本:2023-12-13T23-28-55Z,在服务器端操作

1. Minio客户端

mkdir -p /home/backup/minio && cd /home/backup/minio && mkdir day
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
  • 设置别名、查询桶
./mc alias set minio_backup http://127.0.0.1:9000 admin 123456
./mc ls minio_backup

2. 数据备份

  • backup.sh
#!/bin/bash
backupDir=/home/backup/minio/day				# 备份目录
backupLogFile=$backupDir/backup.log				# 备份日志
bucket=test										# 存储桶名称
directory=										# 存储桶中的目录, 例如 $(date +%Y%m), 空为桶
day=3											# 保留几天的备份
backupFile=$bucket$directory-$(date +%Y%m%d%H%M%S).tar.gz	# 备份文件名mkdir $backupDir/tmp
/home/backup/minio/mc alias set minio_backup http://127.0.0.1:9000 admin 123456
/home/backup/minio/mc cp --recursive minio_backup/$bucket/$directory $backupDir/tmpcd $backupDir/tmp
tar -zcf $backupDir/$backupFile *
rm -rf $backupDir/tmp
echo `` >> $backupLogFile
echo "backup $backupFile" >> $backupLogFilefind $backupDir -type f -name "$bucket$directory-*" -mtime +$day -exec rm {} \;

3. 数据还原

tar -xzvf 备份文件.tar.gz -C 数据文件夹
/home/backup/minio/mc cp --recursive 数据文件夹 minio_backup/桶或目录

三、其他参考

1. 设置定时备份

  • /etc/crontab
0 1 * * * root bash /home/backup/minio/backup.sh		# 每天1点执行
0 2 * * * root bash /home/backup/mysql/backup.sh   		# 每天2点执行
0 3 ** 1 root bash /home/backup/mysql/backupAll.sh		# 每周一3点执行
0 4 * * * root bash /home/backup/copyData.sh			# 每天4点执行
  • 使crontab生效
crontab /etc/crontab

2. 数据拷贝到其他服务器

  • 安装expect, 自动输入密码
sudo apt install expect
  • copyData.sh
#!/usr/bin/expect
# 只传输变化部分、支持断点续传、同步服务器都需要安装rsyncset timeout -1
spawn rsync -auxvLP  -e "ssh -p 22" /home/backup root@192.168.6.213:/home/
expect "*password*"
send "密码\r"
expect eof
  • 执行
expect copyData.sh

3. MySQL其他语句

show variables like 'long_query_time';		# 慢查询时间阈值
show variables like '%slow_query_log%';		# 慢查询是否开启
show global status like '%Slow_queries%'	# 查询慢查询记录条数
# 记录集最多的10个SQL
mysqldumpslow -s r -t 10 /home/mysql/data/0be775e9b5ed-slow.log | more
# 访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /home/mysql/data/0be775e9b5ed-slow.log | more
# 时间排序的前10个SQL
mysqldumpslow -s t -t 10 /home/mysql/data/0be775e9b5ed-slow.log | more

相关文章:

MySQL和Minio数据备份

文章目录 一、MySQL数据备份1. MySQL客户端2. 数据增量备份3. 数据增量还原4. 数据全量备份5. 数据全量还原 二、Minio数据备份1. Minio客户端2. 数据备份3. 数据还原 三、其他参考1. 设置定时备份2. 数据拷贝到其他服务器3. MySQL其他语句 一、MySQL数据备份 Linux环境&#…...

在Go中过滤范型集合:性能回顾

在一个真实的 Golang 场景中使用泛型&#xff0c;同时寻找与 Stream filter(Predicate<? super T> predicate)和 Python list comprehension 等同的函数。我没有依赖现有的包&#xff0c;而是选择自己写一个过滤函数&#xff0c;以达到学习的目的 func filterStrings(c…...

MATLAB 最小二乘直线拟合方法二 (36)

MATLAB 最小二乘直线拟合方法二 (36) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 这里介绍另一种拟合直线点云的方法,更为简单方便,结果与前者一致,主要内容直接复制代码使用即可,原理简单看代码即可,下面是具体的实现和拟合结果展示 二、算法实现 1.代码 代…...

Python 实现:OCR在图片中提取文字(基于Gradio实现)

Paddle OCR PaddleOCR 基于深度学习技术实现的&#xff0c;使用十分简单。 先看效果 可以看出来识别效果还是不错的&#xff0c;里面的“湿”字识别成了繁体字。如果不是连体字&#xff0c;就不会出现这个问题。 1.测试环境 操作系统&#xff1a;Win10 Python&#xff1a;3…...

idea插件开发报错: ZipException opening “slf4j.jar“: zip END header not found

错误信息 E:\idea-workspace\#idea-plugin\JSON2Object\src\main\java\com\hgy\plugin\json2object\GenerateAction.java:1: 错误: 无法访问com.hgy.plugin.json2object package com.hgy.plugin.json2object; ^ZipException opening "slf4j.jar": zip END header no…...

【Linux】多线程编程

目录 1. 线程基础知识 2. 线程创建 3. 线程ID&#xff08;TID&#xff09; 4. 线程终止 5. 线程取消 6. 线程等待 7. 线程分离 8. 线程互斥 8.1 初始化互斥量 8.2 销毁互斥量 8.3 互斥量加锁和解锁 9. 可重入和线程安全 10. 线程同步之条件变量 10.1 初始化条件变…...

【Mysql】InnoDB的表空间(九)

概述 表空间是一个在 InnoDB 中比较抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;而对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为表名.ibd 的实际文件。可以把表空间想象成由很多个页组成的池子&…...

【09】ES6:Set 和 Map 数据结构

一、Set 1、基本语法 定义 Set 是一系列无序、没有重复值的数据集合。数组是一系列有序&#xff08;下标索引&#xff09;的数据集合。 Set 本身是一个构造函数&#xff0c;用来生成 Set 数据结构。 const s new Set() [2, 3, 5, 4, 5, 2, 2].forEach(x > s.add(x))fo…...

Java通过documents4j和libreoffice把word转为pdf

文章目录 word转pdf的相关第三方jar说明Linux系统安装LibreOffice在线安装离线安装word转pdf验证 Java工具类代码 word转pdf的相关第三方jar说明 docx4j 免费开源、稍微复杂点的word&#xff0c;样式完全乱了&#xff0c;且xalan升级为2.7.3后会报错。poi 免费开源、官方文档少…...

物联网时代的访问控制研究综述

A survey on Access Control in the Age of Internet of Things 文章目录 A B S T R A C T引言A. Comparison Between This Paper and Existing SurveysB. Contributions II.ACCESS CONTROL BACKGROUNDIII. ACCESS CONTROL CHALLENGES IN IOT SEARCHA. Characteristics of IoT …...

【产品经理】需求池和版本树

在这个人人都是产品经理的时代&#xff0c;每位入行的产品人进阶速度与到达高度各有不同。本文作者结合自身三年产品行业的经历&#xff0c;根据案例拆解产品行业的极简研发过程、需求池、版本树、产品自我优化等相关具体方法论。 一、产品研发的极简过程 1. 产品概述 产品就…...

Qt图像处理-OpenCv中Mat与QImage互转

Qt图像处理时需要OpenCv中Mat与QImage互转,具体代码如下 创建EditPhoto,头文件,使用前需要配置好opencv #include <QObject> #include <QImage> #include <QDebug>#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> …...

构建外卖小程序:技术代码实践

在这个数字化的时代&#xff0c;外卖小程序已经成为餐饮业的一项重要工具。在本文中&#xff0c;我们将通过一些简单而实用的技术代码&#xff0c;向您展示如何构建一个基本的外卖小程序。我们将使用微信小程序平台作为例子&#xff0c;但这些原理同样适用于其他小程序平台。 …...

IDEA中显示方法、类注释信息

目录 一、IDEA测试版本及环境二、操作步骤2.1 鼠标悬停在某一个方法上&#xff0c;从而显示方法的注释信息2.2 调用方法时同步显示方法注释信息2.3 在new一个对象时&#xff0c;这个对象有很多重载的构造方法&#xff0c;想要重载的构造函数都显示出来 一、IDEA测试版本及环境 …...

《数据结构、算法与应用C++语言描述》- 堆排序 - 借助priority_queue的C++实现

堆排序 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_27HeapSort 定义 借助堆进行排序。先用n个待排序的元素初始化一个小根堆&#xff0c;然后从堆中逐个提取(即删除元素)元素。初始化的时间复杂度为O(n)&#xff0c;大根堆中每…...

10.CSS浮动

CSS浮动 1.介绍 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一 2.作用 让元素脱离标准流&#xff0c;同一级的浮动的元素可以并排在一排显示 3.元素浮动后的特点 脱离文档流不管浮动前是什么元素&#xff0c;浮动后&…...

Angular 2 学习笔记

Angular 2 应用主要由以下 几个部分组成&#xff1a; 1、模块 (Modules)&#xff1a; 2、组件 (Components)&#xff1a; 3、模板 (Templates)​​​​​​​&#xff1a; 4、元数据 (Metadata)&#xff1a; 5、数据绑定 (Data Binding) 6、指令 (Directives) 7、服务 (Servic…...

xcode 修改 target 中设备朝向崩溃

修改xcode的target中的设备朝向导致崩溃。 从日志上看好像没有什么特别的信息。 之后想了想&#xff0c;感觉这个应该还是跟xcode的配置有关系&#xff0c;不过改动的地方好像也只有plist。 就又翻腾了半天plist中的各种配置项&#xff0c;再把所有的用户权限提示相关的东西之…...

ZLMediaKit 编译以及测试(Centos 7.9 环境)

文章目录 一、前言二、编译器1、获取代码2、编译器2.1 编译器版本要求2.2 安装编译器 3、安装cmake4、依赖库4.1 依赖库列表4.2 安装依赖库4.2.1 安装libssl-dev和libsdl-dev4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖 三、构建和编译项目&#xff08;启用WebRTC功能&#xff09…...

汽车清除积碳和清洗节气门

汽车清除积碳和清洗节气门 汽车需要清除积碳的部位检查积碳方法&#xff1a; 清除积碳和清洗节气门风险&#xff1a;燃油宝 第一次清除积碳1万公里2万公里3万公里--5万公里6万公里以上 汽车需要清除积碳的部位 节气门喷油嘴进气道燃烧室 检查积碳方法&#xff1a; 建议每3到5…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...