有關SQL 資料庫自動備份,ftp 定期執行自動上傳bak檔案到遠端伺服器記錄
阿新 • • 發佈:2019-02-17
2017年病毒爆發嚴重,我們公司幾個外建專案都受到了不同程度的攻擊,最為嚴重的是其中一個系統的應用伺服器和資料庫伺服器都被攻陷,所有的檔案系統不可使用,導致系統崩潰並無法恢復;
系統設計:應用伺服器和資料庫伺服器使用雙機互備,定期備份系統的資料庫檔案;一般能應付其中一臺伺服器宕機後可以在短時間內恢復系統執行;但遇到雙機都被攻陷的情況下,導致系統完全癱瘓並資料無法恢復。所以我們採用了遠端備份的方式作為救災手段。
第一:申請遠端資料備份儲存伺服器
可以購買一臺單獨的伺服器作為檔案儲存備份伺服器;這裡我們選擇在阿里雲上購買了一臺ECS服務例項作為伺服器;
第二:部署ftp 伺服器
在備份伺服器上部署ftp,此處自行百度;ps:阿里雲實例上開通ftp 服務,需要開啟20、21埠的進出。別問我為什麼,我也不知道。
第三:在系統伺服器上將資料庫檔案上傳至阿里雲資料備份伺服器
1) 接下來需要將備份好的bak檔案壓縮成rar格式(需要安裝win rar或其他壓縮軟體)。
2)向ftp伺服器上傳檔案
3)刪除所有bak 及 rar 檔案
3,原始碼分為兩個檔案A, B 詳細如下:
A.bat 原始碼
系統設計:應用伺服器和資料庫伺服器使用雙機互備,定期備份系統的資料庫檔案;一般能應付其中一臺伺服器宕機後可以在短時間內恢復系統執行;但遇到雙機都被攻陷的情況下,導致系統完全癱瘓並資料無法恢復。所以我們採用了遠端備份的方式作為救災手段。
第一:申請遠端資料備份儲存伺服器
可以購買一臺單獨的伺服器作為檔案儲存備份伺服器;這裡我們選擇在阿里雲上購買了一臺ECS服務例項作為伺服器;
第二:部署ftp 伺服器
在備份伺服器上部署ftp,此處自行百度;ps:阿里雲實例上開通ftp 服務,需要開啟20、21埠的進出。別問我為什麼,我也不知道。
第三:在系統伺服器上將資料庫檔案上傳至阿里雲資料備份伺服器
1) 接下來需要將備份好的bak檔案壓縮成rar格式(需要安裝win rar或其他壓縮軟體)。
2)向ftp伺服器上傳檔案
3)刪除所有bak 及 rar 檔案
3,原始碼分為兩個檔案A, B 詳細如下:
A.bat 原始碼
B.ftp原始碼rem 將每天備份的資料壓縮後匯入到ftp伺服器 @echo off set dateStr=%date:~0,4%%date:~5,2%%date:~8,2% echo 壓縮備份檔案 set path=%path%;D:\Program Files\WinRAR; rar a f:\databak\2017_%dateStr%.rar f:\databak\*.bak pause echo 上傳檔案 ftp -n < f:\B.ftp echo 刪除多餘檔案 del f:\databak\*.bak del f:\databak\*.rar pause
open 127.0.0.1
user anonymous 33
put f:\databak\*.rar
quit
127.0.0.1 改成你儲存伺服器的IPuser 輸入使用者名稱和密碼
ftp主動模式(port):
- 使用者主機一個隨機埠連線FTP SERVER的TCP21埠進行協商;
- 使用者主機告訴FTP SERVER,我的XXXX埠已經開啟,你可以放心大膽的連過來;
- 然後FTP SERVER就用TCP20埠連線使用者主機的XXXX埠,資料傳輸開始。
- 首先使用者使用隨機埠連線FTP SERVER的TCP 21埠進行協商;
- FTP SERVER告訴客戶機:我的XXXX埠開放了,你連過來吧;
- 客戶機使用一個隨機埠連線FTP SERVER的XXXX埠傳輸資料。
如果你的系統伺服器也處於路由內,建議選擇ftp 被動模式;因為主動模式下,系統伺服器向阿里儲存伺服器的21 埠傳送請求後,阿里雲端儲存伺服器通過20埠來像系統伺服器提供的xxxx埠訪問;而你的系統伺服器這些埠一般都是受限不允許通過,所以會導致ftp訪問異常;
被動模式下(PASV):IIS伺服器 ftp設定防火牆支援 設定指定埠範圍,ftp伺服器就會在埠範圍內選擇一個埠讓客戶端訪問;所以只要在安全組設定xxx/xxx埠入方向 通過即可;
ftp防火牆設定埠範圍後,切記重啟ftp服務,使ftp埠生效!!!(血坑。。。。)
客戶端伺服器ftp通過防火牆設定:
64位系統將C:\Windows\SysWOW64\ftp.exe檔案新增到防火牆的允許列表中即可。
32位系統就新增C:\Windows\system32\ftp.exe即可。
最後將bat檔案放到windows 自動執行任務即可完成!
以上內容參考其他大神博文指導,僅作整理記錄。