首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

SQL Server 2005 異地遠端備份資料庫與 IIS 完整實作

     編輯:SQL Server 2005

背景與架構

生產伺服器(A 機)與備份伺服器(B 機)位於同一區域網路。為避免單點故障導致數據遺失,需將 A 機的 SQL Server 資料庫與 IIS 站點定時備份至 B 機。核心思路:啟用 xp_cmdshell 執行系統指令,透過網路磁碟映射將備份檔複製至遠端共享資料夾,並結合 SQL Server Agent 作業排程自動化。

前置準備

  • 兩台伺服器均安裝 SQL Server 2005,B 機需知曉 A 機的 Windows 登入帳密。
  • 於 B 機建立共享資料夾供 SQL 備份(如 \\B\SqlShare)與 IIS 備份(如 \\B\IIsShare),設定讀寫權限。
  • 於 A 機啟用 xp_cmdshell:
    EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;

核心存儲過程:BackSqlorFile

該存儲過程接受伺服器 IP、帳號、密碼、共享路徑、備份目標路徑、資料庫名稱等參數,執行流程:

  1. 動態組合備份檔名(格式:資料庫名_MMDDYYYY.bak)。
  2. 使用 BACKUP DATABASE 指令備份資料庫至本地預設備份目錄。
  3. 呼叫 osql 工具遠端執行備份指令(或直接在本地執行)。
  4. 使用 iisback 工具遠端備份 IIS 設定(生成 .MD 與 .SC 檔)。
  5. 透過 net use 建立網路磁碟映射(Y: 對應 IIS 共享、Q: 對應 SQL 共享)。
  6. 將本地備份檔與 IIS 備份檔 copy 至對應映射磁碟,實現異地複製。
  7. 刪除網路磁碟映射,結束流程。

排程作業存儲過程:Creat_Job

利用 msdb 系統存儲過程(sp_add_job、sp_add_jobstep、sp_add_jobschedule、sp_add_jobserver)動態建立 SQL Server Agent 作業,支援指定執行時間、重試次數與間隔,每日自動執行備份流程。

注意事項

  • xp_cmdshell 權限極高,生產環境建議僅在備份時間窗口開啟,平時保持關閉。
  • 網路共享權限需確保 SQL Server 服務啟動帳號具備讀寫權限。
  • 備份路徑建議使用 UNC 路徑(\\Server\Share),避免映射磁碟機代號衝突。
  • 定期驗證備份檔案完整性與可還原性。

總結

透過系統存儲過程封裝 xp_cmdshell 操作,結合 Agent 作業排程,可實現 SQL Server 資料庫與 IIS 設定的自動化異地備份,大幅降低數據遺失風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved