SqlServer 2012 異地備份
踩了很多坑,在Google和StackoverFlow的幫助下成功幫咱們項目中實現了SqlServer的異地備份。現記錄,以幫助須要之同行。shell
[TOC]數據庫
1、基本信息
文件服務器:(裏面有無數據庫不影響)
IP地址 | 192.168.33.**8 |
---|---|
服務器系統 | Windows Server 2012 |
服務器名稱 | WIN-A6O73BD*** |
SqlServer數據庫所在服務器:
IP地址 | 192.168.33.**0 |
---|---|
服務器系統 | Windows Server 2012 |
服務器名稱 | WIN-L6D5JH*** |
SqlServer版本 | SqlServer 2012 |
2、在文件服務器上建立共享帳號及共享文件夾
一、 建立windows用戶
控制面板->管理工具->計算機管理->用戶和組->空白地方右鍵新建用戶,dbbakuser 密碼設置得複雜點;windows
二、建立共享文件夾
本地地址爲:C:\bakFolder
(對應的網絡路徑爲\\WIN-A6O73B***\bakFolder
)服務器
設置共享文件夾的用戶爲【dbbakuser 】,並賦予讀取與更改的權限;
在高級共享中作一樣的設置;
測試用戶【dbbaker】可否正常訪問文件服務器
在數據庫服務器上打開cmd
窗口,經過命令NET USE Z: \\WIN-A6O73B***\bakFolder 【此處填寫你設置的密碼】 /USER:dbbakuser
網絡
3、新建做業
一、數據庫服務器上,使用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
新建計劃
排查問題
在新建的做業上右鍵點擊做業執行步驟,則做業則會執行,會返回執行結果。 若是遇到問題,則能夠在新建的做業上右鍵點擊查看歷史記錄,裏面包含詳細的錯誤信息; 根據錯誤信息進行相應修改,直到做業成功執行。 查看歷史記錄的錯誤時請點開記錄前的+,以便查看詳細信息;測試