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

SQL Server 遠端備份實作方案:透過網路共享與 xp_cmdshell 實現跨機器備份

     編輯:關於SqlServer

環境設定

  • 來源伺服器:mainserver (SQL Server 2000)
  • 目標資料庫:msdb
  • 備份目的地主機:david (Win2K),共享資料夾 E:\test
  • 網域帳號:domain\zf,密碼 123

四步驟實作流程

步驟 1:建立本機共享資料夾

net share test=E:\test

或呼叫 NetShareAdd API。此命令建立名為 test 的網路共享資源。

步驟 2:建立 SQL Server 到目標主機的信任連線

EXEC master..xp_cmdshell 'net use \\david\test 123 /user:domain\zf'
  • xp_cmdshell:SQL Server 擴展預存程序,以作業系統命令列模式執行字串並回傳文字輸出。
  • net use:Windows 網路命令,建立持久網路連線至共享資源。

步驟 3:執行資料庫備份至網路路徑

BACKUP DATABASE msdb TO DISK = '\\david\test\msdb.bak'

備份檔案直接寫入遠端共享資料夾。

步驟 4:移除共享資料夾(清理現場)

net share test /delete

或呼叫 NetShareDel API。

實測結果

已處理 1376 頁...(資料檔)
已處理 1 頁...(記錄檔)
BACKUP DATABASE 成功處理 1377 頁,耗時 3.653 秒(3.086 MB/秒)

還原操作

僅需將步驟 3 的指令改為:

RESTORE DATABASE msdb FROM DISK = '\\david\test\msdb.bak'

⚠️ 重要安全警示

xp_cmdshell 僅限 sysadmin 固定伺服器角色成員呼叫,且為已知安全風險來源。眾多 DBA 會選擇刪除或停用此擴展預存程序。開發人員使用時必須評估風險,並在嚴格管控下操作。

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