最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL備份腳本的寫(xiě)法

 更新時(shí)間:2020年08月27日 11:26:32   作者:MySQL技術(shù)  
這篇文章主要介紹了MySQL備份腳本的寫(xiě)法,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下

前言:

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

1.制定合適的備份策略

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

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

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

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

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

格式:

* * * * * command
分 時(shí) 日 月 周 命令

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

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

下面我們來(lái)正式書(shū)寫(xiě)備份腳本,廢話(huà)不多說(shuō),先給出腳本模板:

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

# 設(shè)置mysql的登錄用戶(hù)名和密碼(根據(jù)實(shí)際情況填寫(xiě))
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ù)庫(kù)
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ù)實(shí)際情況修改,比如備份某一個(gè)庫(kù)、保留時(shí)間變更等等。腳本寫(xiě)完后要注意調(diào)試,調(diào)試完成后就可以部署了,比如我們打算每天凌晨2點(diǎn)進(jìn)行備份,則可以這樣設(shè)置定時(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)備份腳本也是類(lèi)似的,只不過(guò)變成了bat腳本,需要設(shè)置計(jì)劃任務(wù)來(lái)定時(shí)執(zhí)行。比如我們可以在E盤(pán)下創(chuàng)建一個(gè) MySQLdata_Bak 目錄,此目錄下創(chuàng)建 mysql_backup 目錄存放備份文件,mysql_bak.bat 是備份腳本,腳本內(nèi)容如下(自動(dòng)刪除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)境稍加改動(dòng)。同樣的,腳本調(diào)試完成后就可以加入計(jì)劃任務(wù)了,如果你對(duì) Windows 計(jì)劃任務(wù)還不了解,可以百度下,也是比較方便簡(jiǎn)單的。

4.備份可用性校驗(yàn)

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

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

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

總結(jié):

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

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

相關(guān)文章

  • MySQL?SQL預(yù)處理(Prepared)的語(yǔ)法實(shí)例與注意事項(xiàng)

    MySQL?SQL預(yù)處理(Prepared)的語(yǔ)法實(shí)例與注意事項(xiàng)

    所謂預(yù)編譯語(yǔ)句就是將此類(lèi)SQL語(yǔ)句中的值用占位符替代,可以視為將 SQL語(yǔ)句模板化或者說(shuō)參數(shù)化,一般稱(chēng)這類(lèi)語(yǔ)句叫Prepared Statements,下面這篇文章主要給大家介紹了關(guān)于MySQL?SQL預(yù)處理(Prepared)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • mysql中的general_log(查詢(xún)?nèi)罩?開(kāi)啟和關(guān)閉

    mysql中的general_log(查詢(xún)?nèi)罩?開(kāi)啟和關(guān)閉

    這篇文章主要介紹了mysql中的general_log(查詢(xún)?nèi)罩?開(kāi)啟和關(guān)閉問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 常用的SQL例句 數(shù)據(jù)庫(kù)開(kāi)發(fā)所需知識(shí)

    常用的SQL例句 數(shù)據(jù)庫(kù)開(kāi)發(fā)所需知識(shí)

    常用的SQL例句全部懂了,你的數(shù)據(jù)庫(kù)開(kāi)發(fā)所需知識(shí)就夠用了
    2011-11-11
  • SQL多個(gè)字段拼接組合成新字段的常用方法

    SQL多個(gè)字段拼接組合成新字段的常用方法

    在sql語(yǔ)句中,有時(shí)候我們可能需要將兩個(gè)字段的值放在一起顯示,因?yàn)樗麄兺ǔJ且黄鸪霈F(xiàn)的,比如客戶(hù)名稱(chēng)和客戶(hù)編號(hào),那我們就要將這兩個(gè)字段拼接成一個(gè)字段,本文給大家介紹了幾種常見(jiàn)的方法,需要的朋友可以參考下
    2024-02-02
  • MySQL 加密/壓縮函數(shù)

    MySQL 加密/壓縮函數(shù)

    在MySQL中,加密和壓縮函數(shù)返回二進(jìn)制串。對(duì)其中的許多函數(shù)而言,結(jié)果可能包含任意的字節(jié)值,如果想存儲(chǔ)這些結(jié)果,你應(yīng)該使用一個(gè)具有varbinary或者blob二進(jìn)制串?dāng)?shù)據(jù)類(lèi)型的列,這可避免潛在的刪除尾部空白問(wèn)題或者字符集轉(zhuǎn)換問(wèn)題。
    2009-12-12
  • MySQL INNER JOIN 的底層實(shí)現(xiàn)原理分析

    MySQL INNER JOIN 的底層實(shí)現(xiàn)原理分析

    這篇文章主要介紹了MySQL INNER JOIN 的底層實(shí)現(xiàn)原理,INNER JOIN的工作分為篩選和連接兩個(gè)步驟,連接時(shí)可以使用多種算法,通過(guò)本文,我們深入了解了MySQL中INNER JOIN的底層實(shí)現(xiàn)原理,需要的朋友可以參考下
    2023-06-06
  • MyBatis 動(dòng)態(tài)SQL全面詳解

    MyBatis 動(dòng)態(tài)SQL全面詳解

    MyBatis 的強(qiáng)大特性之一便是它的動(dòng)態(tài) SQL。如果你有使用 JDBC 或其他類(lèi)似框架的經(jīng)驗(yàn),你就能體會(huì)到根據(jù)不同條件拼接 SQL 語(yǔ)句有多么痛苦。拼接的時(shí)候要確保不能忘了必要的空格,還要注意省掉列名列表最后的逗號(hào)。利用動(dòng)態(tài) SQL 這一特性可以徹底擺脫這種痛苦
    2021-09-09
  • MySQL?中字符集詳細(xì)介紹

    MySQL?中字符集詳細(xì)介紹

    這篇文章主要介紹了MySQL?中字符集詳細(xì)介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Mysql區(qū)間分組查詢(xún)的實(shí)現(xiàn)方式

    Mysql區(qū)間分組查詢(xún)的實(shí)現(xiàn)方式

    這篇文章主要介紹了Mysql區(qū)間分組查詢(xún)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • mysql大批量插入數(shù)據(jù)的4種方法示例

    mysql大批量插入數(shù)據(jù)的4種方法示例

    這篇文章主要給大家介紹了關(guān)于mysql大批量插入數(shù)據(jù)的4種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

枣强县| 申扎县| 湟源县| 江口县| 多伦县| 健康| 甘洛县| 大新县| 潮州市| 浏阳市| 壶关县| 汾阳市| 恩平市| 肃宁县| 化州市| 两当县| 扶沟县| 府谷县| 山西省| 柳林县| 福清市| 始兴县| 博罗县| 舟曲县| 华宁县| 三原县| 河池市| 建瓯市| 卫辉市| 尤溪县| 木兰县| 靖宇县| 六盘水市| 左云县| 神池县| 视频| 山丹县| 西和县| 开封市| 马边| 海南省|