SQL server資料庫高可用日誌傳送的方法

hushaoren發表於2018-12-27

SQL Server 使用日誌傳送,您可以自動將“主伺服器”例項上“主資料庫”內的事務日誌備份傳送到單獨“輔助伺服器”例項上的一個或多個“輔助資料庫”,下面這篇文章主要給大家介紹了關於sql server資料庫高可用日誌傳送的相關資料,需要的朋友可以參考下。

一. 日誌傳送概述

SQL Server使用日誌傳送,可以自動將主伺服器的事務日誌備份傳送到一個或多個輔助資料庫上。事務日誌備份分別應用於每個輔助資料庫。 可選的第三個伺服器例項(稱為“監視伺服器”)記錄備份和還原操作的歷史記錄及狀態,還可以在無法按計劃執行這些操作時引發警報。

可選的監視伺服器,記錄備份和還原操作的歷史記錄及狀態。

下面話不多說了,來一起看看詳細的介紹吧。

優點

  • 提供災難恢復解決方案
  • 支援對輔助資料庫的受限的只讀訪問許可權
  • 允許使用者定義日誌傳送的延遲時間(如果主資料庫上的資料被意外更改,則較長的延遲會很有用)

術語和定義

備份作業

 主伺服器的代理作業,它執行備份操作,將事務日誌記錄到本地伺服器和監視伺服器,刪除舊的記錄。

複製作業

    主伺服器的代理作業,它將備份檔案從主伺服器複製到輔助伺服器上,在輔助伺服器和監視伺服器上記錄。

還原作業

    輔助伺服器的代理作業,備份檔案還原到輔助資料庫,在本地伺服器和監視伺服器上記錄,刪除舊檔案。

    針對多個輔助伺服器時,要重複執行復製作業和還原作業。

二. 準備工作

同一臺服務資料庫二個例項 (可以是區域網內的多個伺服器)

主資料庫sqlserver 2012 r2 MsSQLSERVERTWO

輔助資料庫sqlserver 2012 r2 MSSQLSERVER

演示庫 LogShipping_Test, 主和輔相同的庫,相同的表結構和資料。 相同的sql 登入名, 密碼

三. 配置日誌傳送

--步驟1:設定主伺服器恢復模式為完全備份
  1. ALTER DATABASE LogShipping_Test SET RECOVERY FULL
--步驟2:主服務資料庫做一次完全備份
  1. 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查詢,看日誌傳送是否執行正常

  1. --(主資料庫查詢)
  2.   exec master..sp_help_log_shipping_monitor
  3.   exec master..sp_help_log_shipping_primary_database 'LogShipping_Test'
  4.  --(輔助資料庫查詢)
  5.   exec master..sp_help_log_shipping_secondary_database 'LogShipping_Test'

四. 主從資料庫手動切換配置

步驟1:在主資料庫,使之處於正在還原

  1. use master
  2.  Backup log [LogShipping_Test] to disk = 'c:\LogShipping\LogShipping_Test1.bak' with NORECOVERY

--手動執行輔助資料庫上的複製和還原作業(快速複製還原到從表)

--手動將主資料庫上的備份和警告作業禁用掉(停止備份)

步驟2:在輔助資料庫上,使用步驟的備件檔案還原

  1. use master
  2. Restore log [LogShipping_Test] from disk ='c:\LogShipping\LogShipping_Test1.bak' with RECOVERY

將以前備份和複製所在資料夾的資料刪除掉(D:\LogShipping\primary,D:\LogShipping\secondary )

重新配置日誌傳送,在輔助資料庫上(LogShipping_Test庫-->屬性-->任務-->傳送事務日誌將主伺服器和輔助資料庫配置成功後)使輔助資料庫之變成主資料庫

將原來主資料庫的日誌傳送刪除(LogShipping_Test庫-->屬性-->任務-->傳送事務日誌,將勾選去掉確定).

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,

相關文章