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

排查問題

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM