1. 程式人生 > 其它 >linux下備份mysql資料

linux下備份mysql資料

一、業務場景

  自己現在做的專案基本上已經開發完成,正式開始上線執行,主要包含兩個子專案一個是小程式的後臺,一個是後臺管理系統。

正式開始執行一段時間後,基本上也沒什麼BUG了,整個專案都已經能夠正常的跑起來,程式也能夠正常運轉。這時候相對來說

系統也比較穩定。這時候自己就在考慮如何來備份資料庫資料,做好備份工作是運維工作的必備技能之一,為的就是防止伺服器

被黑客進行惡意攻擊後,伺服器上的所有資料都無法恢復的問題。

二、需求分析

  由於自己之前做的工作主要是在內網進行開發,即使有的專案在公網可以正常訪問,生產伺服器這一塊自己也基本接觸不到。

這導致的問題就是對於真實的伺服器一些操作,自己只會一些基本的操作,比如常規的軟體安裝,開埠,部署專案等等。對於

資料庫備份這一塊自己懂得不多,對於運維這一塊瞭解得比較少。很多東西都需要現學現賣,使用谷歌和百度來解決遇到的各種問題。

自己也私下裡問過之前的同事,主要是做後端開發工作的朋友,他們有沒有好的資料庫備份指令碼。他們給出的意見是他們沒有做備份

工作,對於安全這一塊也只是做一些常規的操作,比如禁止root使用者遠端登入,使用非root使用者登入後再切換為root使用者進行專案部署。

所以需要自己去學習如何備份資料庫資料,去學習如何寫指令碼,複製、貼上也行。

三、解決方案

經過自己的尋找,找到一個比較實用的指令碼,是一個已經寫好的指令碼,修改裡面的一些引數即可。自己使用這個指令碼,修改好引數後

立馬進行測試,發現竟然可行。之後就使用這個指令碼來進行修改,按照專案的實際需求來不斷底改進指令碼。反反覆覆底修改多次後

自己已經將改好的指令碼直接上傳到伺服器上,也在linux系統上設定了定時任務來執行這個指令碼。主要的操作為在星期一、三、五、日

的凌晨4點執行該指令碼,指令碼已經添加了可執行許可權,之後使用郵件將資料傳送到一個指定的郵箱。

設定的執行時間如下:

過了幾天後,自己來檢視執行結果。發現程式正常執行,可是自己去檢視接收到的具體郵件時,發現裡面收到的內容並不是自己想要的。

linux下面的定時任務已經正常執行,郵件也已經正常傳送,可是裡面並沒有自己需要的資料,說明資料庫備份失敗,不然怎麼可能只有1kb

記憶體的大小。之後自己去排查問題,找了很久終於找到問題,導致這個問題的原因是在windows上寫的指令碼檔案不能直接上傳到linux伺服器上

使用,因為windows和linux的字元編碼不一樣。解決辦法之一是可以將在windows上寫好的指令碼檔案內容複製、貼上一份,然後在linux系統上

使用vim命令編輯指令碼檔案,將內容貼上進行即可。自己做好之後,立馬進行手動執行進行測試,發現這種方式可行。到此,在linux下自動備份

mysql資料庫,然後將備份後的檔案壓縮打包傳送到指定的郵件這個功能全部完成。

參考

https://blog.csdn.net/qq_34776233/article/details/90409000