標籤:
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‘
Sql Server遠程還原