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
新建計划
排查問題
在新建的作業上右鍵點擊作業執行步驟,則作業則會執行,會返回執行結果。
如果遇到問題,則可以在新建的作業上右鍵點擊查看歷史記錄,里面包含詳細的錯誤信息;
根據錯誤信息進行相應修改,直到作業成功執行。
查看歷史記錄的錯誤時請點開記錄前的+,以便查看詳細信息;