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

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

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

相关文章

初识GroovyShell

文章目录 前言一、GroovyShell二、maven三、解决方案四、关键代码4.1 数据库配置表(pg)4.2 入参4.3 分页查询 总结 前言 项目背景:查询多个表的数据列表和详情,但不想创建过多的po、dao、resp等项目文件。 一、GroovyShell Apache Groovy是一种强大的…

Windows下使用CMake编译lua

Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码,需要使用Make进行编译,具体的编译方法为 curl -R -O http://www.lua.org/ftp/lua-5.4.6.…

中兴 H108NS 路由器 tools_admin.asp权限绕过漏洞复现

0x01 产品简介 中兴H108NS路由器是一款集WiFi管理、路由分配、动态获取上网连接等功能于一体的路由器产品。 0x02 漏洞概述 中兴H108NS路由器tools_admin.asp接口处存在身份认证绕过漏洞,攻击者可利用该漏洞绕过身份认证允许访问路由器的管理面板修改管理员密码,获取用户的…

虾皮选品网:如何使用虾皮选品数据软件提升您的选品策略

在虾皮(Shopee)平台上进行选品时,了解市场趋势、竞争程度和产品潜力是非常重要的。为了帮助卖家更好地分析虾皮市场,并为选品和运营策略提供有力支持,有一些数据软件和工具可以派上用场。本文将介绍一些建议使用的虾皮…

HPM5300系列--第二篇 Visual Studio Code开发环境以及多种调试器调试模式

一、目的 在博文《HPM5300系列--第一篇 命令行开发调试环境搭建》、《HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境》中我们介绍了命令行方式开发环境,也介绍了HPM6750evkmini开发板如何使用Visual Studio Code进行开发调试(其中调试方式使用…

Power BI - 5分钟学习增加条件列

每天5分钟,今天介绍Power BI增加条件列。 什么是增加条件列? 简单理解,可以根据表中某列设置一个或者多个条件,判定的结果会生成一个新列。 举例: 首先,导入一张【Sales】样例表(Excel数据源导入请参考每…

Java构建线程的方式

1. 继承Thread类 通过创建一个继承自Thread类的子类,然后覆盖run()方法来定义线程的执行逻辑。 class MyThread extends Thread {public void run() {// 线程执行的代码System.out.println("Thread is running");} }public class Main {public static v…

【C++】POCO学习总结(十六):随机数、密码、时间戳、日期和时间(格式化与解析)、时区、本地时间

【C】郭老二博文之:C目录 1、Poco::Random 随机数 1.1 说明 POCO包括一个伪随机数生成器(PRNG),使用非线性加性反馈算法,具有256位状态信息和长达269的周期。 PRNG可以生成31位的伪随机数。 它可以生成UInt32, char, bool, float和double…

深入理解C语言的函数参数

1、一个简单的函数 int Add(int x, int y) {return x y; }int main() {printf("%d", Add(2, 3, 4, 5, 6));return 0; } 这一段足够简单的代码,闭眼都能知道运行结果会在屏幕上打印 5 。那编译器是怎么处理后面的 4、5、6 ? 我们再看看这个函…

前端已死?别低估前端,他是互联网世界的核心!【这是一篇治愈系文章】

文章目录 💥 AI回答🦋 现状🦉 焦虑🐉 力量🦅 观点🐣 粗浅分析🦥 快乐的韭菜🏆 总结 💥 AI回答 前端已死? ai的答案是这样: 前端并没有死掉,它仍然…

【小沐学Python】Python实现语音识别(SpeechRecognition)

文章目录 1、简介2、安装和测试2.1 安装python2.2 安装SpeechRecognition2.3 安装pyaudio2.4 安装pocketsphinx(offline)2.5 安装Vosk (offline)2.6 安装Whisper(offline) 3 测试3.1 命令3.2 fastapi3.3 go…

WTF ‘Questions‘

WTF ‘Tech Team Lead’ As a Tech Team Lead, your role is to oversee the technical aspects of a project or team, and to provide guidance, support, and leadership to your team members. Here are some key responsibilities and aspects of the role: Leadership …

vue 中国省市区级联数据 三级联动

vue 中国省市区级联数据 三级联动 安装插件 npm install element-china-area-data5.0.2 -S 当前版本以测试,可用。组件中使用了 element-ui, https://element.eleme.cn/#/zh-CN/component/installation 库 请注意安装。插件文档 https://www.npmjs.com/package/ele…

PyQt 如何通过连续点击托盘图标显示隐藏主窗口并且在主窗口隐藏时调整界面到托盘图标附近

不废话直接看代码 # -*- codingutf-8 -*- # # author: Ruben # mail: 773849069qq.com # time: 2023/12/8 # u""" 一个托盘图标的小部件 """ from Qt import QtWidgets, QtGui, QtCore# --*--*--*--*--*--*--*--*--*--…

Alibaba分布式事务组件Seata AT实战

1. 分布式事务简介 1.1 本地事务 大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务(Local Transaction)。本地事务的ACID特性是数据库直接提供支持。本地事务应用架构如下所示: 在JDBC编程中,我…

【Java面试题】ArrayList和LinkedList有什么区别

这道题考的是数据结构 ArrayList 和 LinkedList 是 java 集合框架中,list 接口下的两个实现类。 以下从三个方面来讲述ArrayList 和 LinkedList 的区别 目录 1. 内部的实现方面 2. 数据访问的时间复杂度不同 3.空间占用方面 1. 内部的实现方面 ArrayList 内…

使用SPSS的McNemar检验两种深度学习模型的差异性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用SPSS的McNemar检验两种深度学习模型的差异性 前言简述:一、McNemar检验1.1来源1.2 两配对样本的McNemar(麦克尼马尔)变化显著性检验1.3 适用范围:…

Unity | Shader基础知识(第二集:shader语言的格式)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、shader的基本格式 1 SubShader块 2 通道(Pass) 3 CG语言 4 语义 5 引入 三、下集介绍 一、本节介绍 1 上集回顾 上节课我们学到,空的shader是玫红色的,英文里叫pink(我实…

卷积神经网络(含案例代码)

概述 卷积神经网络(Convolutional Neural Network,CNN)是一类专门用于处理具有网格结构数据的神经网络。它主要被设计用来识别和提取图像中的特征,但在许多其他领域也取得了成功,例如自然语言处理中的文本分类任务。 C…

Nginx快速入门

nginx准备 文本概述参考笔记 狂神:https://www.kuangstudy.com/bbs/1353634800149213186 前端vue打包 参考:https://blog.csdn.net/weixin_44813417/article/details/121329335 打包命令: npm run build:prod nginx 下载 网址&#x…