■ 內(nèi)蒙古 杜云雷
編者按:流量高并發(fā)導(dǎo)致服務(wù)器崩潰的問題在很多單位都時有發(fā)生,作為運維人員,必須想方設(shè)法避免這類情況的出現(xiàn)。本文介紹筆者嘗試的Windows Server 服務(wù)器應(yīng)用系統(tǒng)自動備份策略來解決這一問題。
筆者單位的應(yīng)用系統(tǒng)是由PHP 來編寫的,在Windows Server服務(wù)器上,使用phpStudy 一鍵部署Nginx + MySQL 環(huán)境,近期遇到高并發(fā)服務(wù)器崩潰,造成數(shù)據(jù)丟失損壞,系統(tǒng)使用問題頻發(fā)。如何能讓應(yīng)用系統(tǒng)長久穩(wěn)定運行,一旦出現(xiàn)問題能夠快速恢復(fù),減少運維負(fù)擔(dān),是筆者需要解決的問題。
1. 服務(wù)器上安裝VM 虛擬機,設(shè)置每天自動快照鏡像,一旦出了問題,一鍵還原之前的快照即可。
2. 自行搭建OpenStack云平臺,服務(wù)器直接虛擬化,既能監(jiān)控服務(wù)器狀態(tài),還能對服務(wù)器快捷管理,重啟關(guān)機打補丁快照備份等,充分利用服務(wù)器資源。
3.在短時間內(nèi)最簡單快捷的方法,莫過于將代碼備份到GitHub 或碼云,因為代碼固定不會改變。數(shù)據(jù)庫每天會有變化,數(shù)據(jù)庫設(shè)定每天自動備份到服務(wù)器上。
mysqldump 是MySQL 自帶的邏輯備份工具,在這里新建一個數(shù)據(jù)庫自動備份腳本:
@echo off
set "Ymd=%date:~,4%%d ate:~5,2%%date:~8,2%"
D:phpstudy_proExtensionsMySQL5.7.26inmysqldump
--opt -u 數(shù)據(jù)庫用戶名 -p數(shù)據(jù)庫密碼 數(shù)據(jù)庫名稱 > D:/db_backup/db_%Ymd%.sql
@echo on
保存成批處理.bat腳本。
打開周期計劃任務(wù),新建基本任務(wù),設(shè)置每天運行數(shù)據(jù)庫備份腳本,如圖1 所示。
選擇腳本所在路徑,如圖2 所示。
圖1 設(shè)置周期計劃任務(wù)運行頻率
圖2 設(shè)置周期計劃任務(wù)運行的指定程序
創(chuàng)建完成后,嘗試運行一下查看效果,發(fā)現(xiàn)D 盤目錄下沒有出現(xiàn)備份文件。原來數(shù)據(jù)庫備份腳本中的D:/db_backup/這個文件夾系統(tǒng)不會自動創(chuàng)建,需要手動提前建立好。經(jīng)過再次運行,成功備份!如圖3 所示。
如果覺得備份到服務(wù)器上不夠安全,防止服務(wù)器意外硬件損壞致使備份也丟失,那么可以采取異地備份。網(wǎng)上很多Windows 服務(wù)器異地備份的教程,都是通過搭建FTP 或者共享存儲實現(xiàn)取回。
其實完全可以通過調(diào)整mysqldump 參數(shù)實現(xiàn),具體步驟如下:
1.任意找一臺與服務(wù)器網(wǎng)絡(luò)互通的終端,服務(wù)器端我們需要進(jìn)行兩項操作。
(1)將服務(wù)器防火墻添加入站規(guī)則開放3306 端口。
(2)登錄服務(wù)器數(shù)據(jù)庫,新建一個遠(yuǎn)程用戶,假設(shè)用戶名為administrator,密碼為123456,主機名172.16. 1.52,生成密碼留空,全局權(quán)限勾選全選,然后執(zhí)行。
2.在終端上需要進(jìn)行四個操作。
圖3 測試計劃任務(wù)運行
圖4 創(chuàng)建MySQL 遠(yuǎn)程賬戶
(1)如果終端沒安裝MySQL,則從服務(wù)器MySQL 安裝目錄下拷貝mysqldump.exe 文件到終端D 盤。
(2)編寫備份批處理腳本,注意端口號前參數(shù)是大寫P,且中間沒有空格。
@echo off
set
" Ymd = % d ate:~,4%%date:~5,2%%da te:~8,2%"
D:mysqldump --opt -uadministrator -p123456 -h172.16.1.52 -P3306 phpems > D:/db_backup/db_%Ymd%.sql
@echo on
3.新建備份文件夾db_backup。
4.創(chuàng)建周期計劃任務(wù),指定腳本路徑,定好備份周期。
至此,數(shù)據(jù)庫遠(yuǎn)程備份就設(shè)置好了。
1.只要把數(shù)據(jù)庫時刻備份好,就不會擔(dān)心服務(wù)器崩潰的問題,萬一真的出現(xiàn)問題,一鍵導(dǎo)入還原數(shù)據(jù)庫即可。
2.根據(jù)應(yīng)用系統(tǒng)使用頻率和重要程度設(shè)置備份頻率,以便恢復(fù)到最近時間點的數(shù)據(jù)。
3.檢查測試備份數(shù)據(jù)庫的有效性,試著在測試機恢復(fù)數(shù)據(jù)庫看是否完整。
4.定期清理舊數(shù)據(jù)庫備份文件,以免過多占用磁盤空間致使新備份無法寫入。