1、假設備份文件xxxx.bak大小約300G,還原後所占用的空間為900G 2、磁碟空間只有1T,若將備份文件拷貝過來,空間剩餘700G,無法成功還原,因此通過遠程方式還原。 例子如下: SQLSERVER服務實例名稱: 192.168.12.163需要備份的資料庫名稱: a備份機器名稱(Clie
1、假設備份文件xxxx.bak大小約300G,還原後所占用的空間為900G
2、磁碟空間只有1T,若將備份文件拷貝過來,空間剩餘700G,無法成功還原,因此通過遠程方式還原。
例子如下:
SQLSERVER服務實例名稱: 192.168.12.163
需要備份的資料庫名稱: a
備份機器名稱(Client端): 192.168.12.30
備份機用戶: administrator 密碼: 123
備份機功能變數名稱: B28-1230
備份機提供備份需求的文件夾:D:\backup
備份資料庫
第一步: 在備份機建立共用文件夾
在程式代碼中調用(或者CMD視窗)
net share sqlbakup=D:\backup 或者用NetShareAdd這個API
簡要說明:
net share:是WINDOWS內部的網路命令。
作用:建立本地的共用資源,顯示當前電腦的共用資源信息。
第二步: 建立共用信用關係
exec master..xp_cmdshell 'net use \\192.168.12.30\backup 123 /user:B28-1230\Administrator'
若報錯提示這個:“SQL Server 阻止了對組件'xp_cmdshell' 的過程'sys.xp_cmdshell' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。
系統管理員可以通過使用sp_configure 啟用'xp_cmdshell'。有關啟用'xp_cmdshell' 的詳細信息,請參閱SQL Server 聯機叢書中的"外圍應用配置器"。”
啟用’xp_cmdshell’:
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
關閉’xp_cmdshell’:
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
開啟’xp_cmdshell’後再執行建立信用關係:
exec master..xp_cmdshell 'net use \\192.168.12.30\backup 123 /user:B28-1230\Administrator'
還原備份庫a:
restore database peking from disk = '\\192.168.12.30\backup\a.bak'
with move 'a_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\a.mdf',
move 'a_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\a_log.ldf'
使用 SQL Server restore filelistonly 命令來查看邏輯文件名
restore filelistonly from disk='\\192.168.12.30\backup\a.bak'
restore with move 用法:
restore database Northwind from disk = 'c:\Northwind.bak'
with move 'Northwind' to 'd:\microsoft sql server\mssql.1\mssql\data\Northwind.mdf'
,move 'Northwind_log' to 'd:\microsoft sql server\mssql.1\mssql\data\Northwind.ldf'
簡要說明:
1:xp_cmdshell :是SQLSERVER的擴展存儲過程。
作用:以操作系統命令行解釋器的方式執行給定的命令字元串, 並以文本行方式返回任何輸出。
語法:參見SQLSERVER聯機幫助
2:net use : 是WINDOWS內部的網路命令。
作用:將電腦與共用資源連接或斷開,或者顯示關於電腦連接的信息。
該命令還控制持久網路連接。
3:備份資料庫
backup database a to disk='\\192.168.12.30\sqlbak\a.bak'
backup database a to disk='\\192.168.12.30\sqlbak\a1.bak' WITH DIFFERENTIAL (差異備份)
4: 刪除共用文件夾
在程式代碼中調用(或者CMD視窗) net share sqlbakup/delete
或者用NetShareDel這個API
恢複數據庫
restore database a from disk='\\192.168.12.30\backup\a.bak'
以下是差異還原
restore database scs from disk='\\192.168.12.30\backup\a.bak' WITH NORECOVERY
restore database scs from disk='\\192.168.12.30\backup\a1.bak' WITH NORECOVERY
restore database scs from disk='\\192.168.12.30\backup\a2.bak'