1. 程式人生 > >有關SQL 資料庫自動備份,ftp 定期執行自動上傳bak檔案到遠端伺服器記錄

有關SQL 資料庫自動備份,ftp 定期執行自動上傳bak檔案到遠端伺服器記錄

  2017年病毒爆發嚴重,我們公司幾個外建專案都受到了不同程度的攻擊,最為嚴重的是其中一個系統的應用伺服器和資料庫伺服器都被攻陷,所有的檔案系統不可使用,導致系統崩潰並無法恢復;
  系統設計:應用伺服器和資料庫伺服器使用雙機互備,定期備份系統的資料庫檔案;一般能應付其中一臺伺服器宕機後可以在短時間內恢復系統執行;但遇到雙機都被攻陷的情況下,導致系統完全癱瘓並資料無法恢復。所以我們採用了遠端備份的方式作為救災手段。
  第一:申請遠端資料備份儲存伺服器
     可以購買一臺單獨的伺服器作為檔案儲存備份伺服器;這裡我們選擇在阿里雲上購買了一臺ECS服務例項作為伺服器;
 第二:部署ftp 伺服器
    在備份伺服器上部署ftp,此處自行百度;ps:阿里雲實例上開通ftp 服務,需要開啟20、21埠的進出。別問我為什麼,我也不知道。
 第三:在系統伺服器上將資料庫檔案上傳至阿里雲資料備份伺服器
   1) 接下來需要將備份好的bak檔案壓縮成rar格式(需要安裝win rar或其他壓縮軟體)。
   2)向ftp伺服器上傳檔案
  3)刪除所有bak 及 rar 檔案
  3,原始碼分為兩個檔案A, B 詳細如下:

A.bat 原始碼
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
B.ftp原始碼
open 127.0.0.1
user anonymous 33
put f:\databak\*.rar
quit
127.0.0.1 改成你儲存伺服器的IP

user 輸入使用者名稱和密碼

ftp主動模式(port):

  • 使用者主機一個隨機埠連線FTP SERVER的TCP21埠進行協商;
  • 使用者主機告訴FTP SERVER,我的XXXX埠已經開啟,你可以放心大膽的連過來;
  • 然後FTP SERVER就用TCP20埠連線使用者主機的XXXX埠,資料傳輸開始。
ftp被動模式(PASV)
  • 首先使用者使用隨機埠連線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 自動執行任務即可完成!

以上內容參考其他大神博文指導,僅作整理記錄。