0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux下實現(xiàn)MySQL數(shù)據(jù)庫定時自動備份

馬哥Linux運維 ? 來源:未知 ? 作者:胡薇 ? 2018-11-26 11:05 ? 次閱讀

備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分數(shù)據(jù)集合從應(yīng)用主機的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程。而對于一些網(wǎng)站、系統(tǒng)來說,數(shù)據(jù)庫就是一切,所以做好數(shù)據(jù)庫的備份是至關(guān)重要的!

備份是什么?

為什么要備份?

容災(zāi)方案建設(shè)

存儲介質(zhì)

光盤

磁帶

硬盤

磁盤陣列

DAS:直接附加存儲

NAS網(wǎng)絡(luò)附加存儲

SAN:存儲區(qū)域網(wǎng)絡(luò)

云存儲

這里主要以本地磁盤為存儲介質(zhì)講一下計劃任務(wù)的添加使用,基本的備份腳本,其它存儲介質(zhì)只是介質(zhì)的訪問方式可能不大一樣。

1、查看磁盤空間情況:

既然是定時備份,就要選擇一個空間充足的磁盤空間,避免出現(xiàn)因空間不足導(dǎo)致備份失敗,數(shù)據(jù)丟失的惡果!

存儲到當前磁盤這是最簡單,卻是最不推薦的;服務(wù)器有多塊硬盤,最好是把備份存放到另一塊硬盤上;有條件就選擇更好更安全的存儲介質(zhì);

2、創(chuàng)建備份目錄:

上面我們使用命令看出 / home 下空間比較充足,所以可以考慮在 / home 保存?zhèn)浞菸募?/p>

cd /home

mkdir backup

cd backup

3、創(chuàng)建備份 Shell 腳本:

注意把以下命令中的 DatabaseName 換為實際的數(shù)據(jù)庫名稱;

當然,你也可以使用其實的命名規(guī)則!

vi bkDatabaseName.sh

輸入 / 粘貼以下內(nèi)容:

#!/bin/bash

/usr/local/mysql/bin/mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

對備份進行壓縮:

#!/bin/bash

/usr/local/mysql/bin/mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意:

把 username 替換為實際的用戶名;

把 password 替換為實際的密碼;

把 DatabaseName 替換為實際的數(shù)據(jù)庫名;

4、添加可執(zhí)行權(quán)限:

chmod u+x bkDatabaseName.sh

添加可執(zhí)行權(quán)限之后先執(zhí)行一下,看看腳本有沒有錯誤,能不能正常使用;

./bkDatabaseName.sh

5、添加計劃任務(wù)

檢測或安裝 crontab

確認 crontab 是否安裝:

執(zhí)行 crontab 命令如果報 command not found,就表明沒有安裝

# crontab

-bash: crontab: command not found

如時沒有安裝 crontab,需要先安裝它,具體步驟請參考:

CentOS 下使用 yum 命令安裝計劃任務(wù)程序 crontab

使用 rpm 命令從 CentOS 系統(tǒng)盤安裝計劃任務(wù)程序 crontab

添加計劃任務(wù)

執(zhí)行命令:

crontab -e

這時就像使用 vi 編輯器一樣,可以對計劃任務(wù)進行編輯。

輸入以下內(nèi)容并保存:

*/1 * * * * /home/backup/bkDatabaseName.sh

具體是什么意思呢?

意思是每一分鐘執(zhí)行一次 shell 腳本 “/home/backup/bkDatabaseName.sh”。

例如:

修改 /etc/crontab

#vi /etc/crontab

01 3 * * * root/home/backup/bkDatabaseName.sh

表示每天 3 點鐘執(zhí)行備份

退出編輯頁:點擊 ESC 推出,然后點擊 ":wq"w 寫入 write q 推出 quit

例如:在每周一中午 12 點運行一次

vi /etc/crontab 然后: 在最后一行, 0 12 * 1 * root run-parts /home/abckup.sh

6、測試任務(wù)是否執(zhí)行

很簡單,我們就執(zhí)行幾次 “l(fā)s” 命令,看看一分鐘過后文件有沒有被創(chuàng)建就可以了!

如果任務(wù)執(zhí)行失敗了,可以通過以下命令查看任務(wù)日志:

# tail -f /var/log/cron

輸出類似如下:

Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2503]: starting 0anacron

Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: finished 0anacron

Sep 30 15:01:01 bogon CROND[3092]: (root) CMD (run-parts /etc/cron.hourly)

Sep 30 15:01:01 bogon run-parts(/etc/cron.hourly)[3092]: starting 0anacron

Sep 30 15:01:02 bogon run-parts(/etc/cron.hourly)[3101]: finished 0anacron

Sep 30 15:50:44 bogon crontab[3598]: (root) BEGIN EDIT (root)

Sep 30 16:01:01 bogon CROND[3705]: (root) CMD (run-parts /etc/cron.hourly)

Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3705]: starting 0anacron

Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3714]: finished 0anacron

Sep 30 16:15:29 bogon crontab[3598]: (root) END EDIT (root)

Crontab 的格式

第 1 列分鐘 1~59

第 2 列小時 1~23(0 表示子夜)

第 3 列日 1~31

第 4 列月 1~12

第 5 列星期 0~6(0 表示星期天)

第 6 列要運行的命令

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11182

    瀏覽量

    208546
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3740

    瀏覽量

    64185
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    794

    瀏覽量

    26365

原文標題:Linux 下如何實現(xiàn) MySQL 數(shù)據(jù)庫定時自動備份?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    何在Rust中連接和使用MySQL數(shù)據(jù)庫

    何在Rust中連接和使用MySQL數(shù)據(jù)庫。 安裝 mysql 模塊 這里我們假設(shè)你已經(jīng)安裝了Rust編程語言工具鏈,在本教程中,我們將使用 mys
    的頭像 發(fā)表于 09-30 17:05 ?1522次閱讀

    阿里云數(shù)據(jù)庫備份DBS商業(yè)化發(fā)布,數(shù)據(jù)庫實時備份到OSS

    防線,經(jīng)常躲在安全網(wǎng)絡(luò)保護,而數(shù)據(jù)備份的明文傳輸和存儲也慢慢變得理所應(yīng)當,安全部門永遠不會承諾憑一己之力保障企業(yè)100%安全,多層縱深安全防護理念推行,往往會在這層保護罩被攻破時讓數(shù)據(jù)庫
    發(fā)表于 05-30 17:49

    基于linuxmysql數(shù)據(jù)庫每天自動備份定時備份實現(xiàn)

    linux如何實現(xiàn)mysql數(shù)據(jù)庫每天自動備份
    發(fā)表于 05-10 17:10

    Linux的oracle數(shù)據(jù)庫備份

    今天遇到需要備份oracle數(shù)據(jù)庫Linux環(huán)境,以前沒有弄過,今天嘗試了一次,特此記錄。
    發(fā)表于 07-22 07:36

    如何用labview對數(shù)據(jù)庫進行備份/如何在MySql中使用命令的方式進行數(shù)據(jù)庫備份(非cmd窗口非手動保存)

    想要使用labview對數(shù)據(jù)庫進行備份,但是不清楚語句,在網(wǎng)上查找的信息中,顯示如果要備份數(shù)據(jù)庫有兩個方法1:使用命令mysqldump ,但是mysqldump 命令必須在 cmd 窗口
    發(fā)表于 07-15 16:48

    MySQL數(shù)據(jù)庫誤刪后的回復(fù)技巧

    在日常運維工作中,對于數(shù)據(jù)庫備份是至關(guān)重要的!數(shù)據(jù)庫對于網(wǎng)站的重要性使得我們對 MySQL 數(shù)據(jù)庫的管理不容有失!然而是人總難免會犯錯誤,
    發(fā)表于 05-05 08:02 ?2328次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>誤刪后的回復(fù)技巧

    備份的優(yōu)缺點_數(shù)據(jù)庫備份教程詳解

    備份發(fā)生在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的情況,當正常關(guān)閉時會提供給我們一個完整的數(shù)據(jù)庫。冷備份是將關(guān)鍵性文件拷貝到另外位置的一種說法。對于
    發(fā)表于 02-10 10:42 ?3092次閱讀

    Linux教程之linux如何備份還原mysql數(shù)據(jù)庫

    本文介紹了linux如何備份與恢復(fù)mysql數(shù)據(jù)庫。數(shù)據(jù)庫
    發(fā)表于 10-19 17:18 ?4次下載

    PHP的Mysql數(shù)據(jù)庫備份腳本詳細資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是PHP的Mysql數(shù)據(jù)庫備份腳本詳細資料免費下載。
    發(fā)表于 06-19 17:15 ?5次下載

    PHP的Mysql數(shù)據(jù)庫備份腳本的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是PHP的Mysql數(shù)據(jù)庫備份腳本的程序免費下載。
    發(fā)表于 06-28 15:37 ?2次下載

    華為云數(shù)據(jù)庫-RDS for MySQL數(shù)據(jù)庫

    華為云數(shù)據(jù)庫-RDS for MySQL數(shù)據(jù)庫 華為云數(shù)據(jù)庫作為華為云的一款數(shù)據(jù)庫產(chǎn)品,它主要是以MyS
    的頭像 發(fā)表于 10-27 11:06 ?1433次閱讀

    MySQL數(shù)據(jù)庫管理與應(yīng)用

    MySQL數(shù)據(jù)庫管理與應(yīng)用 MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被認為是最流行和最常見的開源數(shù)據(jù)庫之一。它可以被用于多種不同的應(yīng)
    的頭像 發(fā)表于 08-28 17:15 ?898次閱讀

    mysql數(shù)據(jù)庫備份與還原

    MySQL是一種常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),用于存儲和管理數(shù)據(jù)。備份和還原數(shù)據(jù)庫是非常重要的操作,可以保護
    的頭像 發(fā)表于 11-23 14:32 ?1102次閱讀

    mysql數(shù)據(jù)庫基礎(chǔ)命令

    MySQL是一個流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),經(jīng)常用于存儲、管理和操作數(shù)據(jù)。在本文中,我們將詳細介紹MySQL的基礎(chǔ)命令,并提供與每個命令相關(guān)的詳細解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?514次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實例,數(shù)據(jù)庫引擎類型為innodb,
    的頭像 發(fā)表于 12-08 14:18 ?1010次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例