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

SQL Server中通過擴展存儲過程實現數據庫的遠程備份與恢復

編輯:更多數據庫知識

本文通過實例解析了 SQL Server 數據庫擴展存儲過程,實現遠程備份與恢復的方法和步驟
實例說明:

  環境:win2k+sqlserver 2K+查詢分析器
  SQL SERVER服務實例名稱:mainserver
  需要備份的數據庫名稱: msdb
  本地機器名稱(Client端):david
  本地用戶:zf 密碼:123
  本地域名:domain
  本地提供備份需求的文件夾:e: est

  第一步: 建立共享文件夾

  在程序代碼中調用(或者CMD窗口) net share test=e: est

  或者用NetShareAdd這個API

  簡要說明:

  net share: 是WINDOWS內部的網絡命令。

  作用:建立本地的共享資源,顯示當前計算機的共享資源信息。

  語法:參見 net share /?

  第二步: 建立共享信用關系

  master..xp_cmdshell 'net use \david est 123 /user:domainzf'

  簡要說明:

  1:xp_cmdshell :是SQLSERVER的擴展存儲過程。

  作用,以操作系統命令行解釋器的方式執行給定的命令字符串,

  並以文本行方式返回任何輸出。

  語法:參見SQLSERVER聯機幫助

  2:net use: 是WINDOWS內部的網絡命令。

  作用,將計算機與共享資源連接或斷開,或者顯示關於計算機

  連接的信息。該命令還控制持久網絡連接。

  語法:參見 net use /?

  第三步:備份數據庫

  backup database msdb to disk='\david estmsdb.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: estmsdb.bak文件了,使用起來很簡單吧?恢復數據庫操作也是一樣,只要將第三個步驟的語句改為'restore database msdb from disk='\david estmsdb.bak'就可以啦。。你看完了也可以試試呀?!(最簡單的測試工具查詢分析器+CMD窗口)

  備注:xp_cmdshell 這個擴展存儲過程只能SA級別的用戶調用,而且是SQL Server的安全隱患之一,許多DBA都喜歡將其刪除或者禁用,所以開發人員使用時要倍加小心哦。

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