MySQL生產環境備份腳本

全量備份腳本,其中BakDir,ZlbakDir,LogFile需要自己創建

#!/bin/bash
export LANG=en_US.UTF-8# 指定備份目錄
BakDir=/root/beifen/data/mysqlbak/data/allbak
# 指定增量備份目錄
ZlbakDir=/root/beifen/data/mysqlbak/data/zlbak
# 備份日志位置
LogFile=/root/beifen/data/mysqlbak/log/bak.log# 獲取當前時間
CurrentDate=$(date +%Y-%m-%d-%H-%M-%S)
# 腳本執行時間
Begin=$(date +"%Y年%m月%d日 %H:%M:%S")
# 要備份的數據庫
Database=a# 進入全備目錄
cd $BakDir || exit 1  # 如果目錄不存在或無法進入,則退出腳本# 存儲即將生成的SQL備份文件名稱
DumpFile=$Database-$CurrentDate.sql
# 存儲壓縮后的名稱
GZDumpFile=$Database-$CurrentDate.tar.gz# 使用mysqldump進行備份,--flush-logs會刷新日志,--delete-master-logs會刪除舊的二進制日志(注意:這通常在生產環境中使用時需要謹慎),--single-transaction用InnoDB表的一致性備份。
mysqldump -u root -plmx $Database --flush-logs --delete-master-logs --single-transaction > $BakDir/$DumpFile# 用tar命令將SQL備份文件壓縮成tar.gz格式
tar -czvf "$GZDumpFile" "$DumpFile"
rm "$DumpFile"# 統計當前目錄下.tar.gz文件的數量
count=$(ls -l *.tar.gz 2>/dev/null | wc -l)
if [ $count -ge 2 ]; then# 刪除最舊的.tar.gz文件file=$(ls -lt *.tar.gz | head -n 1 | awk '{print $9}')rm -f "$file"
fi# 獲取腳本結束時的日期和時間
Last=$(date +"%Y年%m月%d日 %H:%M:%S")# 將備份的開始時間、結束時間和成功生成的壓縮文件名追加到日志文件中
echo "開始:$Begin 結束:$Last $GZDumpFile success" >> "$LogFile"# 進入增量備份目錄,這里假設您只想清空目錄(注意:這可能會刪除重要文件)
cd $ZlbakDir || exit 1
rm -f *# 如果需要保留某些文件(如binlog),請修改上面的rm命令以排除這些文件。

成功后會在目錄里看到一個tar.gz包,解壓之后就可以查看sql文件了
在這里插入圖片描述
增量備份腳本
其中BakDir,LogFile需要自己創建,BinDir和BinFile需要自己尋找,如果不知道在那的話登錄MySQL輸入以下兩條命令

MySQL 會自動管理二進制日志索引文件,其名稱通常與二進制日志文件的基本名稱相同,但擴展名為 .index。在您的配置中,由于 log-bin=mysql-bin,二進制日志索引文件通常會被命名為 mysql-bin.index

#!/bin/bash
# 指定腳本的解釋器為Bashexport LANG=en_US.UTF-8
# 設置環境變量LANG為en_US.UTF-8,確保腳本在處理文本時使用UTF-8編碼BakDir=/root/beifen/data/mysqlbak/data/zlbak
# 定義備份目錄的路徑BinDir=/usr/local/mysql/data
# 定義MySQL二進制日志文件的目錄路徑LogFile=/root/beifen/data/mysqlbak/log/binlog.log
# 定義日志文件的路徑,用于記錄備份過程中的信息BinFile=/usr/local/mysql/data/mysql-bin.index
# 定義包含二進制日志文件列表的索引文件的路徑mysqladmin  -u root -plmx flush-logs
# 使用mysqladmin命令刷新MySQL的日志,包括二進制日志。Counter=$(wc -l $BinFile | awk '{print $1}')
# 計算索引文件($BinFile)中的行數,即二進制日志文件的數量,并將結果存儲在變量Counter中NextNum=0
# 初始化NextNum變量為0,用于在后續循環中計數# 這個for循環用于遍歷索引文件($BinFile)中的每一行(每個文件路徑)
for file in $(cat $BinFile)
dobase=$(basename $file)# 使用basename命令從完整路徑中提取文件名(不包含路徑)NextNum=$(expr $NextNum + 1)# 將NextNum的值加1if [ $NextNum -eq $Counter ]then# 如果當前文件是索引文件中的最后一個文件echo $base skip! >> $LogFile# 則記錄到日志文件中,表示跳過else# 如果不是最后一個文件dest=$BakDir/$base# 定義目標備份文件的完整路徑if test -e $destthen# 如果目標備份文件已經存在echo $base exist! >> $LogFile# 則記錄到日志文件中,表示文件已存在else# 如果目標文件不存在cp $BinDir/$base $BakDir# 將二進制日志文件從MySQL的日志目錄復制到備份目錄echo $base copying >> $LogFile# 記錄到日志文件中,表示文件正在被復制fifi
done# 記錄備份成功的消息到日志文件中,并附帶當前日期和時間
echo $(date +"%Y年%m月%d日 %H:%M:%S") Backup success! >> $LogFile

成功后如下
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62397.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62397.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62397.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP multipart/form-data 請求

序言 最近在寫項目的過程中有一個需求是利用 HTTP 協議傳輸圖片和視頻,經過查詢方法相應的方法發現使用 multipart/form-data 的方式,這是最常見處理二進制文件的表單編碼類型。 ?學習了一下午,現在總結一下使用的方法和相關的知識點&#x…

Linux下redis環境的搭建

1.redis的下載 redis官網下載redis的linux壓縮包,官網地址:Redis下載 網盤鏈接: 通過網盤分享的文件:redis-5.0.4.tar.gz 鏈接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取碼: ehgj 2.redis安裝與配置 將包上傳到 /…

如何使用靜態IP代理?【詳細教程】

靜態IP地址是手動分配給設備或伺服器的固定不變的 IP。與動態 IP 地址不同,動態 IP 地址由 DHCP 伺服器自動分配,並且會隨時間而變化。??????? 如何獲取和設置靜態IP地址 一、檢查是否需要靜態IP? 在配置靜態 IP 之前,請…

監控組態軟件的構成與功能

監控組態軟件的構成包括系統開發環境、圖形界面系統、實時數據庫系統等。其功能包括數據采集與控制、人機交互界面、數據處理與存儲等。 監控組態軟件的構成: 系統開發環境:這是自動化工程設計工程師為實施其控制方案,在組態軟件的支持下進行…

Java 基礎之 XQuery:強大的 XML 查詢語言

一、什么是 XQuery XQuery 是一種函數式語言,專門用于檢索以 XML 格式存儲的信息。它負責從 XML 文檔中查找和提取元素及屬性,在網絡服務中有著廣泛的應用,比如提取信息、生成摘要報告、進行數據轉換等。 XQuery 是 W3C 設計的一種針對于 X…

day09性能測試(1)——純理論

document.querySelector(video).playbackRate 2.5 //可以寫任何數字 【沒有所謂的運氣🍬,只有絕對的努力?】 目錄 1、性能測試概念 2、功能測試 vs 性能測試 3、小結(習題) 4、性能測試的策略 4.1 基準測試 4.2 負載測試 …

docker-3.docker權限問題

docker權限,每次開機都要重新sudo 目錄 1.簡介2.解決辦法1:當前用戶添加到docker用戶組(這個方法還是缺權限??)3.解決辦法2:臨時更改Docker socket文件權限1.簡介 Ubuntu下Docker提示permission denied (權限不足)解決辦法 安裝docker后,執行docker ps命令時提示 perm…

easyExcel實現表頭批注

背景&#xff1a; 網上大部分都不能直接使用&#xff0c;為此總結一個方便入手且可用的工具&#xff0c;用自定義注解實現 依賴包&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>…

內部類和Object類

匿名對象 格式&#xff1a; 匿名對象只可以調用一次成員 &#xff1a; 1. 調用一次成員變量 &#xff1a; new 類名(實參).成員變量名&#xff1b; 2.調用一次成員方法&#xff1a; new 類名(實參).成員方法名(實參)&#xff1b; 匿名對象存在的必要&#xff1a;為了提高…

Python的3D可視化庫vedo 1-3 (visual模塊)網格對象的線和面、圖片的屬性

文章目錄 4 MeshVisual4.1 線條4.1.1 線寬和顏色4.1.2 線條渲染為管 4.2 曲面4.2.1 物體展示為實心或框架4.2.2 曲面插值4.2.3 面的剔除 4.3 紋理4.4 相機跟隨 5 ImageVisual5.1 圖片屬性5.1.1 占用內存大小5.1.2 顏色標量范圍 5.2 渲染屬性5.2.1 透明度5.2.2 亮度5.2.3 對比度…

19 設計模式之享元模式(電影院座位預定案例)

一、享元模式的定義 享元模式是一種結構型設計模式&#xff0c;它通過共享對象來支持大量細粒度的對象&#xff0c;減少內存消耗。享元模式的核心思想是&#xff1a;將對象分為共享部分和非共享部分&#xff0c;只有共享部分是被多個對象共享的&#xff0c;而非共享部分則是每個…

使用redis 的stream 做消息中間件 多線程消費消息

1.redis stream 特點 1.支持消息持久化 2.消費者組模式 3.消息確認機制 4. 消息重試機制 5. 死信隊列2. 消息生產者服務 2.1 如下代碼Service Slf4j public class StreamMessageProducer {Autowiredprivate StringRedisTemplate redisTemplate;private static final String S…

Python100道練習題

Python100道練習題 BIlibili 1、兩數之和 num1 20 num2 22result num1 num2print(result)2、一百以內的偶數 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以內的奇數 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…

Java轉C之并發和多線程

提綱&#xff1a; 概念介紹與對比概述 簡述Java與C在并發和多線程方面的核心區別解釋C11標準、POSIX、C11 <threads.h>、Pthread等名詞 Java多線程與并發回顧 線程、Runnable、ExecutorService概念說明同步關鍵字與工具類含義 C并發基礎 沒有Java式的內置線程類&#xf…

Ubuntu系統本地化搭建Maxakb+Ollama

安裝docker 最詳細的ubuntu 安裝 docker教程-騰訊云開發者社區-騰訊云 安裝Ollama Ollama官網 執行命令&#xff1a; curl -fsSL https://ollama.com/install.sh | sh安裝完成后下載模型 執行命令&#xff1a; ollama run llama3.3:70b安裝MaxKb 執行命令&#xff1a; d…

基于JAVA的旅游網站系統設計

摘要 隨著信息技術和網絡技術的迅速發展&#xff0c;人們的生活質量和觀念也在發生著改變&#xff0c;各地爭相發展旅游業&#xff0c;傳統的 旅游社已經無法滿足人們的需求&#xff0c;旅游網站將突破傳統在時間和地域的限制&#xff0c;成為方便、快捷、安全、可靠的旅游 方…

【Flux.jl】 卷積神經網絡

Flux.jl 是包含卷積神經網絡的, 但是官方API文件中沒有給出一個完整的程序框架, 只是對所需神經元給了局部解釋, 此外對 model-zoo 模型動物園中的案例沒有及時跟著 Flux.jl 的版本更新, 也無法運行出來結果。 因此本文搭建了一個完整可訓練的卷積神經網絡。 Conv 卷積算子…

H5游戲出海如何獲得更多增長機會?

海外H5小游戲的崛起給了國內眾多中小廠商出海發展的機會&#xff0c;開發者如何在海外市場獲得更多的增長機會&#xff1f;#APP出海# H5游戲如何在海外獲得核心用戶&#xff1f; HTML5游戲的開發與運營者們首先可以利用量多質高的HTML5游戲&#xff0c;維持海外用戶粘性&…

Next.js系統性教學:深入理解和應用組件組合模式

更多有關Next.js教程&#xff0c;請查閱&#xff1a; 【目錄】Next.js 獨立開發系列教程-CSDN博客 目錄 更多有關Next.js教程&#xff0c;請查閱&#xff1a; 1. 什么是組件組合模式&#xff1f; 1.1 組件組合模式概述 1.2 組件組合模式的優勢 2. Next.js 中的組件組合模式…

國際薦酒師Peter助力第六屆地博會,推動地理標志產品國際化發展

國際薦酒師Peter Lisicky助力第六屆知交會暨地博會&#xff0c;推動地理標志產品國際化發展 第六屆粵港澳大灣區知識產權交易博覽會暨國際地理標志產品交易博覽會于2024年12月9日至11日在中新廣州知識城盛大舉行&#xff0c;吸引了全球眾多行業專家、企業代表及相關機構齊聚一…