SqlServer 2012 異地備份
阿新 • • 發佈:2018-12-22
目錄
SqlServer 2012 異地備份
踩了不少坑,在Google和StackoverFlow的幫助下成功幫我們專案中實現了SqlServer的異地備份。現記錄,以幫助需要之同行。
一、基本資訊
檔案伺服器:(裡面有無資料庫不影響)
IP地址 | 192.168.33.**8 |
---|---|
伺服器系統 | Windows Server 2012 |
伺服器名稱 | WIN-A6O73BD*** |
SqlServer資料庫所在伺服器:
IP地址 | 192.168.33.**0 |
---|---|
伺服器系統 | Windows Server 2012 |
伺服器名稱 | WIN-L6D5JH*** |
SqlServer版本 | SqlServer 2012 |
二、在檔案伺服器上建立共享賬號及共享資料夾
1、 建立windows使用者
控制面板->管理工具->計算機管理->使用者和組->空白地方右鍵新建使用者,dbbakuser 密碼設定得複雜點;
2、建立共享資料夾
本地地址為:C:\bakFolder
(對應的網路路徑為\\WIN-A6O73B***\bakFolder
)
設定共享資料夾的使用者為【dbbakuser 】,並賦予讀取與更改的許可權;
在高階共享中做同樣的設定;
測試使用者【dbbaker】能否正常訪問檔案伺服器
在資料庫伺服器上開啟cmd
視窗,通過命令NET USE Z: \\WIN-A6O73B***\bakFolder 【此處填寫你設定的密碼】 /USER:dbbakuser
三、新建作業
1、資料庫伺服器上,使用DBMS中的SQL Server 代理新建作業;
常規設定
需要注意這裡的所有者,必須是sa或者與sa擁有同等許可權的使用者;
名稱是必填項,其他選項可以不做改動;
新建步驟
步驟名稱是必填項;
命令如下,請對應修改:
sys.sp_configure @configname = 'allow_updates',
@configvalue = 0;
RECONFIGURE WITH OVERRIDE;
GO
sys.sp_configure @configname = 'show advanced options',
@configvalue = 1
RECONFIGURE
GO
sys.sp_configure @configname = 'xp_cmdshell',
@configvalue = 1
RECONFIGURE
GO
DECLARE @bakpath NVARCHAR(500)
SET @bakpath = '\\WIN-A6O73B***\bakFolder\SanF***190_bakup_' +
CONVERT(VARCHAR(10),GETDATE(),112) + '-' + REPLACE(CONVERT(VARCHAR(10),GETDATE(),108),':','') + '.bak'
EXEC master..xp_cmdshell "NET USE Z: \\WIN-A6O73B***\bakFolder 【此處填寫你設定的密碼】 /USER:dbbakuser"
BACKUP DATABASE SanFengNew TO DISK = @bakpath
GO
sys.sp_configure @configname = 'xp_cmdshell',
@configvalue = 0
RECONFIGURE
GO
sys.sp_configure @configname = 'show advanced options',
@configvalue = 0
RECONFIGURE
GO
sys.sp_configure @configname = 'allow_updates',
@configvalue = 1;
RECONFIGURE WITH OVERRIDE;
GO
新建計劃
排查問題
在新建的作業上右鍵點選作業執行步驟,則作業則會執行,會返回執行結果。
如果遇到問題,則可以在新建的作業上右鍵點選檢視歷史記錄,裡面包含詳細的錯誤資訊;
根據錯誤資訊進行相應修改,直到作業成功執行。
檢視歷史記錄的錯誤時請點開記錄前的+,以便檢視詳細資訊;