一. 日志傳送概述
SQL Server使用日志傳送,可以自動将主伺服器的事務日志備份發送到一個或多個輔助資料庫上。
可選的監視伺服器,記錄備份和還原操作的曆史記錄及狀态。
優點
提供災難恢複解決方案
支援對輔助資料庫的受限的隻讀通路權限
允許使用者定義日志發送的延遲時間(如果主資料庫上的資料被意外更改,則較長的延遲會很有用)
術語和定義
備份作業
主伺服器的代理作業,它執行備份操作,将事務日志記錄到本地伺服器和監視伺服器,删除舊的記錄。
複制作業
主伺服器的代理作業,它将備份檔案從主伺服器複制到輔助伺服器上,在輔助伺服器和監視伺服器上記錄。
還原作業
輔助伺服器的代理作業,備份檔案還原到輔助資料庫,在本地伺服器和監視伺服器上記錄,删除舊檔案。
.
針對多個輔助伺服器時,要重複執行複制作業和還原作業。
二. 準備工作
同一台服務資料庫二個執行個體 (可以是區域網路内的多個伺服器)
主資料庫sqlserver 2012 r2 MSSQLSERVERTWO
輔助資料庫sqlserver 2012 r2 MSSQLSERVER

示範庫 LogShipping_Test, 主和輔相同的庫,相同的表結構和資料。 相同的sql 登入名, 密碼
三. 配置日志傳送
--步驟1:設定主伺服器恢複模式為完全備份
ALTER DATABASE LogShipping_Test SET RECOVERY FULL
--步驟2:主服務資料庫做一次完全備份
BACKUP DATABASE LogShipping_Test TO DISK='D:\LogShipping\LogShipping_Test.bak' WITH NOFORMAT,INIT
-- 步驟3:
在主伺服器上建立共享目錄C:\LogShipping\primary 具有作業通路權限
在輔助伺服器上建立共享目錄C:\LogShipping\secondary 具有作業通路權限
---步驟4:
主伺服器LogShipping_Test庫-->屬性-->任務-->傳送事務日志将主伺服器和輔助資料庫配置成功後,設定複制和還原每隔兩分鐘做一次傳送如下圖
日志傳送配置成功後:輔助資料庫辨別為(備用/隻讀)如下圖
主資料庫SQL Server代理作業如下圖:
備份作業(LSBackup_LogShipping_Test)
警告作業(LSAlert_{計算機名})
輔助資料庫SQL Server代理作業如下圖
複制作業(LSCopy_{計算機名}_LogShipping_Test)
還原作業(LSRestore_{計算機名}_LogShipping_Test)
警告作業(LSAlert_{計算機名}\MSSQLSERVERTWO)
主伺服器隔2分鐘備份的檔案共享目錄如下圖
輔助伺服器隔2分鐘複制的檔案共享目錄如下圖
最後:檢視日志傳送是否正确無誤
利用可視化操作在SQL Server代理作業中檢視日志傳送是否正常
通過SQL查詢,看日志傳送是否運作正常
--(主資料庫查詢)
exec master..sp_help_log_shipping_monitor
exec master..sp_help_log_shipping_primary_database 'LogShipping_Test'
--(輔助資料庫查詢)
exec master..sp_help_log_shipping_secondary_database 'LogShipping_Test'
四. 主從資料庫手動切換配置
步驟1:在主資料庫,使之處于正在還原
use master
Backup log [LogShipping_Test] to disk = 'c:\LogShipping\LogShipping_Test1.bak' with NORECOVERY
--手動運作輔助資料庫上的複制和還原作業(快速複制還原到從表)
--手動将主資料庫上的備份和警告作業禁用掉(停止備份)
步驟2:在輔助資料庫上,使用步驟的備件檔案還原
use master
Restore log [LogShipping_Test] from disk ='c:\LogShipping\LogShipping_Test1.bak' with RECOVERY
将以前備份和複制所在檔案夾的資料删除掉(D:\LogShipping\primary,D:\LogShipping\secondary )
重新配置日志傳送,在輔助資料庫上(LogShipping_Test庫-->屬性-->任務-->傳送事務日志将主伺服器和輔助資料庫配置成功後)使輔助資料庫之變成主資料庫
将原來主資料庫的日志傳送删除(LogShipping_Test庫-->屬性-->任務-->傳送事務日志,将勾選去掉确定).