天天看點

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

閱讀目錄(Content)

回到頂部(go to top)

一 : 為什麼要進行資料庫的備份?

最主要的原因:盡可能地減少損失,包括時間上、精神上和金錢上的損失。很多人都不注意備份資料,以緻在發生問題後丢失大量的重要資料。要知道,在地球上網是很危險的,即使做好安全預防措施,也難免會發生不可預想的問題。是以,資料備份是日常必不可少的操作。資料庫的備份用mysqldump

由于資料庫如此重要,以至于我們要經常備份資料庫,但是,由于白天的時候,資料庫處于活躍的狀态,這時候備份資料庫可能會漏存資料,更有可能會導緻出錯,是以一般會選擇在淩晨備份資料庫。問題來了,難道要一個資料庫管理者淩晨兩點起床備份資料庫?這時候LINUX的CRONTAB定時任務排上用場了!有關CRONTAB的内容請參考我的另一篇部落格

CRONTAB定時任務

(window系統可以使用 ‘任務計劃’)

我們可以在根目錄下編寫這麼一個腳本 : /serverBack/mysqlBack.sh

腳本内容如下:

使用mysqldump備份資料庫test

mysqldump -uroot -ppasswd test >> /serverBack/dbBack/test_$(date+”%Y_%m_%d”).sql

找到/serverBack/dbBack/下檔案名稱以test_開頭,以 .sql 結尾的檔案,并且是7天前系統修改過的檔案,将其删除

find /serverBack/dbBack/ -mtime +7 -name “test_*.sql” -exec rm -rf {} ;

mysqldump -uroot -ppwd dbname > dir/db_

date +%F

.sql

保留近一周的備份檔案,更早的删除

find /dir -mtime +7 -name”db_*.sql” -exec rm -rf {} ;

filename=’date +%y%m%d’

mysqldump -uroot-proot test >>/serverBack/dbBack/$filename.sql

比較齊全,常用的shell腳本内容如下:

[

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

複制代碼

](javascript:void(0); "複制代碼")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">## 記錄日志

echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log

echo

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

(date +"%Y-%m-%d").sql ##

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

? ];then if [ -f "/serverBack/dbBack/test_

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

(date +"%Y-%m-%d %H:%M:%S") "test Database backup success!" >> /serverBack/dbBack/dbBackLog.log else echo

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

(date +"%Y-%m-%d %H:%M:%S") "test Database backup error!" >> /serverBack/dbBack/dbBackLog.log

fi

echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log ## 删除七天前的資料,防止資料備援

find /serverBack/dbBack/ -mtime +7 -name "test_*.sql" -exec rm -rf {} ; ## find後面的';'不能省略</pre>

linux mysqldump一 : 為什麼要進行資料庫的備份?二 : 定時自動備份資料庫三 : 編寫一個shell腳本,執行備份四 : 實作定時自動備份資料庫

此時,我們在指令行模式下執行該腳本: sh /serverBack/mysqlBack.sh

此時我們就可以備份資料庫了,但是我們還沒有實作定時自動備份。趕緊測試一下你能不能備份成功吧!

有關CRONTAB的内容請參考我的另一篇部落格

crontab定時任務

crontab –e ##編輯定時任務

添加定時任務内容:

每天定時15:00:00 執行腳本 /serverBack/mysqlBack.sh

00 15 * * * sh /serverBack/mysqlBack.sh

指令:

crontab –r 删除所有定時任務

crontab –l 列出所有定時任務

轉:

https://blog.csdn.net/baidu_30000217/article/details/51106192