1. 程式人生 > >SqlServer 2012 異地備份

SqlServer 2012 異地備份

目錄

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 密碼設定得複雜點;

新建windows賬號

2、建立共享資料夾

本地地址為:C:\bakFolder(對應的網路路徑為\\WIN-A6O73B***\bakFolder

設定共享資料夾的使用者為【dbbakuser 】,並賦予讀取與更改的許可權;

共享資料夾

在高階共享中做同樣的設定;

共享資料夾

測試使用者【dbbaker】能否正常訪問檔案伺服器

在資料庫伺服器上開啟cmd視窗,通過命令NET USE Z: \\WIN-A6O73B***\bakFolder 【此處填寫你設定的密碼】 /USER:dbbakuser

三、新建作業

1、資料庫伺服器上,使用DBMS中的SQL Server 代理新建作業;

常規設定

需要注意這裡的所有者,必須是sa或者與sa擁有同等許可權的使用者;
名稱是必填項,其他選項可以不做改動;

Vue

新建步驟

步驟名稱是必填項;
命令如下,請對應修改:

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

Vue

新建計劃

Vue

排查問題

在新建的作業上右鍵點選作業執行步驟,則作業則會執行,會返回執行結果。
如果遇到問題,則可以在新建的作業上右鍵點選檢視歷史記錄,裡面包含詳細的錯誤資訊;
根據錯誤資訊進行相應修改,直到作業成功執行。
檢視歷史記錄的錯誤時請點開記錄前的+,以便檢視詳細資訊;