標籤:mysql 自動化 備份
前言:《mysql自動備份》,在安裝完mysql,需要的就是對mysql進行自動化備份,以免項目運行過程中資料丟失造成不可挽回的後果,那麼這篇文章就來手把手的教你如何進行自動化備份,注意啊,睜大眼睛了,哈哈,這可是不可多得的秘密!
經常不經意間就發現文章被扣到各式各樣的網站上面,甚是可惡!
那麼人生何處不爬蟲,爬蟲請標http://blog.csdn.net/qing_gee
見賢思齊焉,見不賢而內自省也!
庫檔案備份
庫檔案備份,我建議一周一次(當然,我的項目規模一般,然後至於怎麼一周一次,稍候我們再聊了)
#!/bin/bashdate_now=`date +%Y_%m_%d_%H%M%S`mysqldump -uroot -plixiaoli --flush-logs --master-data=2 maweiqing>/home/backup/${date_now}.sql &&zip -r /home/backup/${date_now}.zip /home/backup/${date_now}.sqlrm -f /home/backup/${date_now}.sql
- 擷取當前日期,作為庫檔案備份的檔案名稱
- mysqldump命令對資料庫maweiqing備份到20151030.sql中
- zip命令對檔案壓個縮。
- rm命令刪除sql檔案
二進位記錄備份
二進位檔案備份,我建議早晚各一次了。
#!/bin/bashdate_now=`date +%Y_%m_%_d_%H%M%S`filename=mysql-binfilesuffix_max=0filesuffix_lastbutone=0mysqlpath=/var/lib/mysql/backuppath=/home/backup/mysqlbinarylog/mysqladmin -uroot -plixiaoli flush-logs &&for fname in `ls $mysqlpath`dofilesuffix=${fname##*.}isnum=`expr match ${filesuffix} ‘[0-9][0-9]*$‘`if [ $isnum ] && [ $isnum -ne 0 ] && [ $filesuffix -gt $filesuffix_max ] then filesuffix_lastbutone=$filesuffix_max filesuffix_max=$filesuffixfidone &&filefullname=${filename}.${filesuffix_lastbutone}cp $mysqlpath$filefullname $backuppath &&zip ${backuppath}${date_now}${filefullname}.zip $backuppath$filefullname &&echo "done"
1. 注意,二進位記錄備份,需要mysql開啟二進位日誌。
2. 其檔案路徑是在/var/lib/mysql/路徑下面。
3. mysqladmin 命令進行二進位記錄備份。
說到這,我覺得我要提醒你點什麼,以免你照做後出現錯誤來找我(如果你要來找我,我覺得挺樂意的)。
- 上面兩個檔案列出的路徑,你一定要檢查是否存在,如果不存在,就mkdir一下。
- zip命令如果在伺服器上沒有安裝的話,我稍候也會告訴你怎麼做的。
- mysql記錄檔的事情,我的另一篇文章會說明的,請參見。
- 至於在Linux上怎麼編輯檔案,我想你可以問問“vim”大人。
- 還有什麼忘記說的?對了,你在看這篇文章之前最好看看mysql配置
這兩個檔案是搞好了,接下來要做什嗎?“元芳,你怎麼看?”“大人,你覺得呢?”
測試一下唄
首先,要想讓兩個檔案運行,肯定是要賦予他們靈魂的,不然,怎麼搞。
[root@iZ23gsv94suZ soft]# chmod 700 flushlog_and_copy.sh [root@iZ23gsv94suZ soft]# chmod 700 backuplixiaoli.sh
flushlog_and_copy.sh這個是二進位檔案備份。
那麼另外一個就是備份庫檔案了。
測試一下吧!
[[email protected] soft]# sh backuptiangong.sh mysqldump: [Warning] Using a password on the command line interface can be insecure. adding: home/backup/2015_10_30_105545.sql (deflated 77%)[[email protected] backup]# lltotal 28-rw-r--r-- 1 root root 23948 Oct 30 10:55 2015_10_30_105545.zip
看到了吧,檔案備份好了!既然有zip檔案,這說明zip命令也有了,還不錯!
測試二進位檔案
[[email protected] soft]# sh flushlog_and_copy.sh mysqladmin: [Warning] Using a password on the command line interface can be insecure.expr: syntax error adding: home/backup/mysqlbinarylog/mysql-bin.000002 (deflated 36%)done[[email protected] soft]# cd /home/backup/mysqlbinarylog/[[email protected] mysqlbinarylog]# lltotal 8-rw-r--r-- 1 root root 343 Oct 30 10:59 2015_10_30_105901mysql-bin.000002.zip-rw-r----- 1 root root 167 Oct 30 10:59 mysql-bin.000002
不知道這樣的寫作風格是否符合你的閱讀習慣,如果你覺得還可以,那麼繼續吧!先來看看Linux的自動化服務!
到這呢,你可能需要先看看Linux:時間同步,瞭解一下Linux的自動化服務!
先看看crontab有沒有列表
[root@iZ23gsv94suZ mysqlbinarylog]# crontab -l-bash: crontab: command not found
什嗎?竟然沒有安裝crontab,不過也沒有什麼大不了的嘛,安裝下就OK!
[[email protected] mysqlbinarylog]# yum install -y vixie-cronLoaded plugins: securitySetting up Install ProcessResolving DependenciesInstalled: cronie.x86_64 0:1.4.4-15.el6 Dependency Installed: cronie-anacron.x86_64 0:1.4.4-15.el6 crontabs.noarch 0:1.10-33.el6 exim.x86_64 0:4.72-7.el6 Complete!
不過以上,我覺得沒什麼大不了的,不過我覺得很重要的是一定要啟動crontab服務,然後設定為開機啟動,這些怎麼做到?別忘了我已經告訴你了,查看Linux:時間同步.
將下面這兩個自動化任務加入到crontab中吧!
30 12,17,23 * * 1-5 sh /home/soft/flushlog_and_copy.sh40 23 * * 6 sh /home/soft/backuplixiaoli.sh
注意,檔案的路徑啊。
稍微解釋一下,全憑我一時記憶。
- 周一到周五12點半、17點半、23點半進行二進位檔案備份
- 周六23點40分進行庫檔案備份。
然後,我們crontab -l查看一下,是否已經命令加入到自動化任務中!
最後的最後,請你一定要注意觀察,備份有沒有自動化開始,如果你有麻煩的話,請麻煩我,哈哈!
結語:我要做技術路上的清道夫,為你為我為大家掃清我遇到的困惑!有沒有發現,我是很有理想的,哈哈!
著作權聲明:這是自封為qing_gee的挨踢工作者,用文字打造的一個高品質的部落格欄目。讓你擁有一段快樂的閱讀時光,不再是奢侈的夢想!
mysql自動備份