在Linux下每日定時備份MySQL資料庫?

在資訊系統中,軟體是軀體,資料是靈魂。資料定時的備份和異地防災措施,就顯得格外的重要。在本篇中,將詳細介紹不同版本中,MySQL資料庫整庫備份的方法,以及入門的資料儲存策略機制。

在Linux下每日定時備份MySQL資料庫

工具/原料

MySQL Server端

Bash Shell

vim

crontab

方法/步驟

首先,我們來明確MySQL的備份命令:mysqldump。該命令可以將MySQL的資料庫資訊,通過SQL的方式儲存在一個檔案中。我們首先測試一下這個命令。

在Linux下每日定時備份MySQL資料庫

在上一部中,我們發現雖然備份操作成功了。但是其中出現了一個警告。警告的意思,主要是講在命令列中,直接出現使用者的密碼是一種不安全的做法。為了解決這個問題。我們需要將備份使用的使用者名稱和密碼備份到一個mysql安全機制認為安全的檔案中,即my.cnf。該檔案的一般路徑為/etc/my.cnf

在Linux下每日定時備份MySQL資料庫

通過vim命令,我們在此檔案中使用mysqldump命令的預設使用者名稱和密碼資訊。具體的操作是,1.通過↓將游標移到檔案末尾,2.輸入“[mysqldump]”標籤,以及user和password資訊

在Linux下每日定時備份MySQL資料庫

使用":wq"命令儲存my.cnf檔案。然後,對此檔案的有效性進行測試。測試命令為:--defaults-extra-file=/alidata/server/mysql-5.6.21/my.cnf --all-databases > 2.bat

在Linux下每日定時備份MySQL資料庫

通過上一步,我們發現此時警告訊息已經消失。我們建立bash shell建立sh檔案,讓mysqldump檔案輸出的資料庫備份SQL,寫入一個以8位日期命名的sql檔案中,例如20160607.sql

在Linux下每日定時備份MySQL資料庫

由於長期來看,資料庫備份檔案會變得非常的大。所以此時,我們採用近期(7天內)的備份檔案全部保留。對7天以上的資料,只保留每月10,20,30日這三個日期的備份檔案。所以,在shell中,增加自動刪除舊有備份檔案的功能。如下圖:

在Linux下每日定時備份MySQL資料庫

一個功能比較齊全的MySQL資料庫備份shell到這裡基本上就結束了。在最後一步,我們需要將這個shell新增到crontab的列表中,使之能夠在每天執行。目前我定義的備份時間是每天凌晨4點。大家可以根據自己不同的需要進行不同的設定。但是建議設定為每天備份。操作的過程是:首先通過crontab -e命令,進入一個類似vim的文字編輯頁面,然後用和vim相同的方法,增加對啟動時間的設定。然後同樣的用:wq儲存退出。這樣每天備份Mysql的工作就設定好了。開始幾天,只需要稍微檢視一下是否生成了檔案即可。

在Linux下每日定時備份MySQL資料庫

在Linux下每日定時備份MySQL資料庫

注意事項

如果有異地儲存機制,可以將異地磁碟mount到Linux系統中,直接備份到異地。這是相對來說更保險的辦法。

資料, 異地, 資料庫, 備份, 機制,
相關問題答案