主頁 > 知識庫 > MySQL備份腳本的寫法

MySQL備份腳本的寫法

熱門標(biāo)簽:咸陽防封電銷卡 臨沂做地圖標(biāo)注 新鄉(xiāng)智能外呼系統(tǒng)好處 地圖標(biāo)注客戶付款 申請400電話電話價格 石家莊400電話辦理公司 許昌外呼增值業(yè)務(wù)線路 宜賓全自動外呼系統(tǒng)廠家 廣東400企業(yè)電話申請流程

前言:

數(shù)據(jù)庫備份的重要性不言而喻,特別是在生產(chǎn)環(huán)境,任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果。所以,無論什么環(huán)境,我們都應(yīng)該有相應(yīng)的備份策略來定時備份數(shù)據(jù)庫。在 MySQL 中,比較常用的邏輯備份工具是 mysqldump,本篇文章將介紹 MySQL 定時備份的方法。

1.制定合適的備份策略

對于不同的數(shù)據(jù)庫環(huán)境,我們應(yīng)該考慮不同的備份策略。制定備份策略時,應(yīng)考慮以下幾點因素:

  • 物理備份還是邏輯備份。這個可以由數(shù)據(jù)庫大小決定,比如說小于100G用邏輯備份,大于100G用物理備份。
  • 備份文件保留時間。這個可以由磁盤大小決定,一般至少保留7天。
  • 備份執(zhí)行時間。一般放在業(yè)務(wù)低峰期,比如凌晨執(zhí)行備份操作。
  • 備份間隔時間。一般推薦一天一備,如果系統(tǒng)不太重要,備份間隔也可以延長。
  • 是否有從庫。有從庫的話,推薦放在從庫上備份,減小對主庫的壓力。

2.Linux系統(tǒng)備份腳本

Linux 系統(tǒng)下,我們可以利用 crontab 定時任務(wù)來執(zhí)行備份腳本,如果你你對 crontab 還不了解,可以參考以下介紹快速學(xué)習(xí)下。

crontab是一個命令,常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。

格式:

* * * * * command
分 時 日 月 周 命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識號星期0~6(0表示星期天)
第6列要運行的命令

crontab -e 編輯該用戶下的定時任務(wù)設(shè)置
crontab -l 列出該用戶下的所有定時任務(wù)

下面我們來正式書寫備份腳本,廢話不多說,先給出腳本模板:

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:  mysql_backup.sh 
# Describe:  Used for database backup
# Revision:  1.0
# Date:    2020/08/11
# Author:   wang

# 設(shè)置mysql的登錄用戶名和密碼(根據(jù)實際情況填寫)
mysql_user = "root"
mysql_password = "yourpassword"
mysql_host = "localhost"
mysql_port = "3306"
backup_dir = /data/mysql_backup

dt=date +'%Y%m%d_%H%M'
echo "Backup Begin Date:" $(date +"%Y-%m-%d %H:%M:%S")

# 備份全部數(shù)據(jù)庫
mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -R -E --all-databases --single-transaction > $backup_dir/mysql_backup_$dt.sql

find $backup_dir -mtime +7 -type f -name '*.sql' -exec rm -rf {} \;
echo "Backup Succeed Date:" $(date +"%Y-%m-%d %H:%M:%S")

以上腳本可根據(jù)實際情況修改,比如備份某一個庫、保留時間變更等等。腳本寫完后要注意調(diào)試,調(diào)試完成后就可以部署了,比如我們打算每天凌晨2點進行備份,則可以這樣設(shè)置定時任務(wù)。

# 注意腳本執(zhí)行權(quán)限及修改腳本路徑
00 02 * * * sh /root/scripts/mysql_backup.sh > /root/scripts/mysql_backup.log 2>1

 3.Windows系統(tǒng)備份腳本

Windows 系統(tǒng)備份腳本也是類似的,只不過變成了bat腳本,需要設(shè)置計劃任務(wù)來定時執(zhí)行。比如我們可以在E盤下創(chuàng)建一個 MySQLdata_Bak 目錄,此目錄下創(chuàng)建 mysql_backup 目錄存放備份文件,mysql_bak.bat 是備份腳本,腳本內(nèi)容如下(自動刪除7天前的備份文件):

rem auther:wang
rem date:20200811
rem ******MySQL backup start********
@echo off
forfiles /p "E:\MySQLdata_Bak\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
"E:\mysql5.7.23\bin\mysqldump" -uroot -p123456 -P3306 --default-character-set=utf8 -R -E --single-transaction --all-databases > "E:\MySQLdata_Bak\mysql_backup\backup_%Ymd%.sql"
@echo on
rem ******MySQL backup end********

以上腳本僅供參考,可以根據(jù)自己的環(huán)境稍加改動。同樣的,腳本調(diào)試完成后就可以加入計劃任務(wù)了,如果你對 Windows 計劃任務(wù)還不了解,可以百度下,也是比較方便簡單的。

4.備份可用性校驗

除了備份,非常重要的一件事情就是驗證備份數(shù)據(jù)的可用性。想象一下,當(dāng)你需要進行數(shù)據(jù)恢復(fù)的時候,忽然發(fā)現(xiàn)過去的備份數(shù)據(jù)都是無效的,那得有多難受。很多朋友在寫好備份腳本加到定時任務(wù)后,只是檢查下定時任務(wù)有執(zhí)行,備份目錄有文件就不再關(guān)注了,往往到了需要使用備份文件的時候才發(fā)現(xiàn)備份數(shù)據(jù)有問題。

目前對于備份文件的數(shù)據(jù)校驗沒有非常方便的辦法,用的比較多的還是定時把備份文件拉出來做備份恢復(fù)演練,例如一個月做一次備份恢復(fù)演練就可以有效提高備份文件可用性,心里也踏實。

所以,千萬不要以為有了備份就萬無一失了,平時也要多檢查備份腳本執(zhí)行是否正確,生產(chǎn)的備份腳本內(nèi)容是否可用,最好可以定期做恢復(fù)演練。

總結(jié):

本篇文章主要分享了 Linux 系統(tǒng)及 Windows 系統(tǒng)下的 MySQL 定時備份腳本,腳本內(nèi)容比較簡單明了,功能并不復(fù)雜,如果你有其他備份需求,可以在此基礎(chǔ)上修改完善。如果這篇文章對你有所幫助的話,請多多分享轉(zhuǎn)發(fā)。

以上就是MySQL備份腳本的寫法的詳細(xì)內(nèi)容,更多關(guān)于MySQL備份腳本的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 淺析MySQL 備份與恢復(fù)
  • 詳解mysql的備份與恢復(fù)
  • MySQL定時備份方案(利用Linux crontab)
  • 淺析mysql 定時備份任務(wù)
  • linux 服務(wù)器自動備份腳本的方法(mysql、附件備份)
  • linux定時備份MySQL數(shù)據(jù)庫并刪除以前的備份文件(推薦)
  • CentOS7下 MySQL定時自動備份的實現(xiàn)方法
  • Mysql備份多個數(shù)據(jù)庫代碼實例
  • MySQL如何優(yōu)雅的備份賬號相關(guān)信息

標(biāo)簽:臺灣 日照 貴州 合肥 鎮(zhèn)江 鷹潭 北京 阜新

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL備份腳本的寫法》,本文關(guān)鍵詞  MySQL,備份,腳本,的,寫法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL備份腳本的寫法》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL備份腳本的寫法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章