linux下備份mysql數據
- 2022 年 1 月 6 日
- 筆記
- Mysql-Oracle資料庫相關
一、業務場景
自己現在做的項目基本上已經開發完成,正式開始上線運行,主要包含兩個子項目一個是小程式的後台,一個是後台管理系統。
正式開始運行一段時間後,基本上也沒什麼BUG了,整個項目都已經能夠正常的跑起來,程式也能夠正常運轉。這時候相對來說
系統也比較穩定。這時候自己就在考慮如何來備份資料庫數據,做好備份工作是運維工作的必備技能之一,為的就是防止伺服器
被黑客進行惡意攻擊後,伺服器上的所有數據都無法恢復的問題。
二、需求分析
由於自己之前做的工作主要是在內網進行開發,即使有的項目在公網可以正常訪問,生產伺服器這一塊自己也基本接觸不到。
這導致的問題就是對於真實的伺服器一些操作,自己只會一些基本的操作,比如常規的軟體安裝,開埠,部署項目等等。對於
資料庫備份這一塊自己懂得不多,對於運維這一塊了解得比較少。很多東西都需要現學現賣,使用Google和百度來解決遇到的各種問題。
自己也私下裡問過之前的同事,主要是做後端開發工作的朋友,他們有沒有好的資料庫備份腳本。他們給出的意見是他們沒有做備份
工作,對於安全這一塊也只是做一些常規的操作,比如禁止root用戶遠程登錄,使用非root用戶登錄後再切換為root用戶進行項目部署。
所以需要自己去學習如何備份資料庫數據,去學習如何寫腳本,複製、粘貼也行。
三、解決方案
經過自己的尋找,找到一個比較實用的腳本,是一個已經寫好的腳本,修改裡面的一些參數即可。自己使用這個腳本,修改好參數後
立馬進行測試,發現竟然可行。之後就使用這個腳本來進行修改,按照項目的實際需求來不斷底改進腳本。反反覆復底修改多次後
自己已經將改好的腳本直接上傳到伺服器上,也在linux系統上設置了定時任務來執行這個腳本。主要的操作為在星期一、三、五、日
的凌晨4點執行該腳本,腳本已經添加了可執行許可權,之後使用郵件將數據發送到一個指定的郵箱。
設置的執行時間如下:
過了幾天後,自己來查看執行結果。發現程式正常運行,可是自己去查看接收到的具體郵件時,發現裡面收到的內容並不是自己想要的。
linux下面的定時任務已經正常執行,郵件也已經正常發送,可是裡面並沒有自己需要的數據,說明資料庫備份失敗,不然怎麼可能只有1kb
記憶體的大小。之後自己去排查問題,找了很久終於找到問題,導致這個問題的原因是在windows上寫的腳本文件不能直接上傳到linux伺服器上
使用,因為windows和linux的字元編碼不一樣。解決辦法之一是可以將在windows上寫好的腳本文件內容複製、粘貼一份,然後在linux系統上
使用vim命令編輯腳本文件,將內容粘貼進行即可。自己做好之後,立馬進行手動執行進行測試,發現這種方式可行。到此,在linux下自動備份
mysql資料庫,然後將備份後的文件壓縮打包發送到指定的郵件這個功能全部完成。
參考