生產伺服器(A 機)與備份伺服器(B 機)位於同一區域網路。為避免單點故障導致數據遺失,需將 A 機的 SQL Server 資料庫與 IIS 站點定時備份至 B 機。核心思路:啟用 xp_cmdshell 執行系統指令,透過網路磁碟映射將備份檔複製至遠端共享資料夾,並結合 SQL Server Agent 作業排程自動化。
\\B\SqlShare)與 IIS 備份(如 \\B\IIsShare),設定讀寫權限。xp_cmdshell:EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;該存儲過程接受伺服器 IP、帳號、密碼、共享路徑、備份目標路徑、資料庫名稱等參數,執行流程:
BACKUP DATABASE 指令備份資料庫至本地預設備份目錄。osql 工具遠端執行備份指令(或直接在本地執行)。iisback 工具遠端備份 IIS 設定(生成 .MD 與 .SC 檔)。net use 建立網路磁碟映射(Y: 對應 IIS 共享、Q: 對應 SQL 共享)。copy 至對應映射磁碟,實現異地複製。利用 msdb 系統存儲過程(sp_add_job、sp_add_jobstep、sp_add_jobschedule、sp_add_jobserver)動態建立 SQL Server Agent 作業,支援指定執行時間、重試次數與間隔,每日自動執行備份流程。
xp_cmdshell 權限極高,生產環境建議僅在備份時間窗口開啟,平時保持關閉。\\Server\Share),避免映射磁碟機代號衝突。透過系統存儲過程封裝 xp_cmdshell 操作,結合 Agent 作業排程,可實現 SQL Server 資料庫與 IIS 設定的自動化異地備份,大幅降低數據遺失風險。