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

SQL Server 擴展預存程序實現遠端備份與還原實戰

     編輯:關於SqlServer

環境與目標

  • 主機:Win2K + SQL Server 2000,實例名 mainserver
  • 備份資料庫:msdb
  • 本地端(Client):主機名 david,用戶 zf/密碼 123,網域 domain
  • 共享資料夾:E:\test

四步驟完成遠端備份

1. 建立共享資料夾

NET SHARE test=E:\test
-- 或呼叫 NetShareAdd API

2. 建立共享信任關係

EXEC master..xp_cmdshell 'NET USE \\david\test 123 /USER:domain\zf';
-- xp_cmdshell:以 OS 命令列方式執行字串,回傳文字輸出
-- NET USE:連線共享資源

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 (SA) 角色 呼叫
  • 屬 SQL Server 經典安全隱患,眾多 DBA 會刪除或停用
  • 開發使用時務必極度謹慎,評估替代方案(如 SQL Agent Job + Proxy、PowerShell、SSIS)

測試建議

最簡單驗證:查詢分析器 + CMD 視窗即可完成端到端測試。

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