差異備份和完全備份,把備份檔案同時拷貝到異地伺服器,實作異地備份: 一、差異備份,把下面語句直接放在任務裡面定時執行,實作差異備份。 DECLARE @ss VARCHAR(200),
@des_hisdb varchar(200),
@des_ehr varchar(200)
SET @ss = replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
SET @des_hisdb= 'S:/databaseBack/hisdb_diff_backup_'[email protected] +'.bak'
--差異備份hisdb
BACKUP DATABASE [hisdb] TO DISK = @des_hisdb
WITH DIFFERENTIAL ,RETAINDAYS = 7,NOFORMAT, NOINIT,
NAME = 'hisdb-差異 資料庫 備份', SKIP, NOREWIND,
NOUNLOAD, STATS = 10
SET @des_ehr= 'S:/databaseBack/ehr_diff_backup_'[email protected] +'.bak'
--差異備份ehr
BACKUP DATABASE [ehr] TO DISK = @des_ehr
WITH DIFFERENTIAL ,RETAINDAYS = 7,NOFORMAT, NOINIT,
NAME = 'ehr-差異 資料庫 備份', SKIP, NOREWIND, NOUNLOAD,
STATS = 10 --*********** 開始異地備份
---顯示進階選項(僅需執行一次)
EXEC sp_configure 'show advanced options', 1
RECONFIGURE ---允許執行xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE declare
@cmd_sql varchar(200)
--定義網絡映射驅動器
exec master..xp_cmdshell 'net use z: //192.168.0.18/hisdb_mz "密碼" /user:administrator' --copy備份檔案到網絡驅動器,實作異地存儲備份
set @cmd_sql = 'copy '[email protected]_hisdb+' z:'
EXEC [master]..xp_cmdshell @cmd_sql set @cmd_sql = 'copy '[email protected]_ehr+' z:'
EXEC [master]..xp_cmdshell @cmd_sql --删除網絡映射
exec master..xp_cmdshell 'net use z: /delete' 二、完整備份 具體方法隻需對上面sql語句稍作修改 1.把BACKUP語句 裡面的DIFFERENTIAL 删除。 2.修改檔案儲存名字。 3.把所有文字“差異”跟換為“完整”