程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用SQLSERVER的擴展存儲過程實現遠程備份與恢復

使用SQLSERVER的擴展存儲過程實現遠程備份與恢復

編輯:關於SqlServer

最近我在為公司的框架程序(以數據應用為導向的應用體系)做數據管理模塊,這個模塊的需求比較簡單:備份、恢復和清理日志。我公司的軟件基本上以C/S為基本架構,所以數據管理模塊中兩個主要的功能‘備份與恢復’都可能會在ClIEnt端操作,備份與恢復’的文件也都有可能存儲在clIEnt端,因而這個數據管理模塊就必須能夠實現在遠程備份與恢復數據庫。

文章的前提闡述完了,就該說說如何具體實現吧。其實都很簡單,我想寫個遠程備份的測試實例
給大家看,就能夠很清楚的描述吧!
實例說明:
環境:win2k+sqlserver 2K+查詢分析器
SQLSERVER服務實例名稱:mainserver
需要備份的數據庫名稱: msdb
本地機器名稱(ClIEnt端):david
本地用戶:zf 密碼:123
本地域名:domain
本地提供備份需求的文件夾:e:\test

第一步: 建立共享文件夾
在程序代碼中調用(或者CMD窗口) net share test=e:\test
或者用NetShareAdd這個API
簡要說明:
net share : 是Windows內部的網絡命令。
作用:建立本地的共享資源,顯示當前計算機的共享資源信息。
語法:參見 net share /?
第二步: 建立共享信用關系
master..xp_cmdshell 'net use 123 /user:domain\zf'
簡要說明:
1:xp_cmdshell :是SQLSERVER的擴展存儲過程。
作用,以操作系統命令行解釋器的方式執行給定的命令字符串,
並以文本行方式返回任何輸出。
語法:參見SQLSERVER聯機幫助
2:net use : 是Windows內部的網絡命令。
作用,將計算機與共享資源連接或斷開,或者顯示關於計算機
連接的信息。該命令還控制持久網絡連接。
語法:參見 net use /?

第三步:備份數據庫
backup database msdb to disk='\\david\test\msdb.bak'
這個不需要說明吧,語法參見SQLSERVER聯機幫助

第四步: 刪除共享文件夾
在程序代碼中調用(或者CMD窗口) net share test /delete
或者用NetShareDel這個API
結果:
已處理 1376 頁,這些頁屬於數據庫 'msdb' 的文件 'MSDBData'(位於文件 1 上)。
已處理 1 頁,這些頁屬於數據庫 'msdb' 的文件 'MSDBLog'(位於文件 1 上)。
BACKUP DATABASE 操作成功地處理了 1377 頁,花費了 3.653 秒(3.086 MB/秒)。

這樣mainserver服務器上的msdb就備份到了david機器的E:\test\msdb.bak文件了,使用起來很簡單吧?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved