1. 程式人生 > 資料庫 >SqlServer 事務日誌傳輸 【將備份目錄設定到輔助伺服器】

SqlServer 事務日誌傳輸 【將備份目錄設定到輔助伺服器】

基本概念 

  可以使用日誌傳送將事務日誌不間斷地從一個數據庫(主資料庫)傳送到另一個數據庫(輔助資料庫)。不間斷地備份主資料庫中的事務日誌,然後將它們複製並還原到輔助資料庫,這將使輔助資料庫與主資料庫基本保持同步。目標伺服器充當備份伺服器,並可以將查詢處理從主伺服器重新分配到一個或多個只讀的輔助伺服器。日誌傳送可與使用完整或大容量日誌恢復模式的資料庫一起使用。  

  日誌傳送由三項操作組成:

  1. 在主伺服器例項中備份事務日誌。

  2. 將事務日誌檔案複製到輔助伺服器例項。

  3. 在輔助伺服器例項中還原日誌備份。

日誌可傳送到多個輔助伺服器例項。在這些情況下,將針對每個輔助伺服器例項重複執行操作 2 和操作 3。

日誌傳送配置不會自動從主伺服器故障轉移到輔助伺服器。如果主資料庫變為不可用,可手動使任意輔助資料庫聯機。

您可以為了實現報表目的而使用輔助資料庫。

 

配置過程

  1、首先需要在輔助資料庫建立用於備份的共享目錄logbackup,主要用於存放從主資料備份來的日誌檔案,放在輔助資料庫伺服器方便讀取備份日誌檔案,如下圖

  

 

  2、新增目錄信任(這部很重要,因為共享目錄以後在主資料伺服器雖然可以讀寫共享目錄,但是後來在通過SqlServer傳輸日誌的時候總是因為許可權的問題失敗)

  首先,是啟用SqlServer的xp_cmdshell功能,可以通過命令啟用,通過Management Studio執行以下指令碼:

  複製程式碼  
在主庫上執行:

1 sp_configure 'show advanced options',1 2 reconfigure 3 go 4 sp_configure 'xp_cmdshell',1 5 reconfigure 6 go
複製程式碼

  但是指令碼執行僅本次起作用,下次重啟資料庫會失效,所以可以通過介面設定來永久啟用xp_cmdshell:

  右擊"SqlServer資料庫"--方面--點選常規--選擇外圍應用配置器--然後將cmdshell的屬性改為True,如下圖

  

  

  操作完以上步驟以後,開始通過Management Studio執行目錄信任命令:

  

在主庫上執行,表示在主庫上設定訪問輔助伺服器的共享目錄許可權:

exec master..xp_cmdshell 'net use \\172.16.3.79\logbackup Envisi0n@#1 /user:172.16.3.79\ENADMIN';

  \\172.16.3.79\logbackup--是共享目錄

  172.16.3.79\ENADMIN--輔助資料庫伺服器共享目錄的使用者     

 Envisi0n@#1--使用者的密碼

   

 

案例如下:

自己的環境的配置引數是: exec master..xp_cmdshell 'net use \\192.168.17.41\backup abcdef_123 /user:192.168.17.41\ADMINISTRATOR';


解釋:
192.168.17.41\ADMINISTRATOR 為輔助機的賬戶 , abcdef_123 為administrator 使用者的密碼。

\\192.168.17.41\backup 為輔助伺服器的備份目錄,當然這個需要設定為共享資料夾,而且,必須授予 sqlserver agent 登入使用者的 許可權。

比如我這裡 sqlserver agent 的登入使用者為administrator
 那麼必須設定共享資料夾 c:/backup  有administrator 使用者的讀寫許可權。如下圖:



 

 

  3、在輔助資料庫服務新增防火牆程式和埠例外(SqlServer Studio和埠1433):

  轉到 防火牆--點選高階配置--新建規則--分步新增程式和埠的例外,這裡很簡單就不做說明,程式選擇的目錄(C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe)。

 

  4、開始執行日誌傳輸配置:

  首先,開啟主資料庫的屬性介面,選擇“事務日誌傳輸”,點選選擇啟用日誌傳輸功能的複選框。

  

  然後彈出主資料庫日誌備份相關的配置,備份資料夾的網路路徑選擇之前建立的共享目錄,備份作業可以自行根據實際情況編輯選擇。

  

  然後,則是新增輔助資料,輔助資料庫可以新增多個,在“初始化輔助資料庫”介面,我們選擇在主資料庫生成完全備份,還原到輔助資料庫中(輔助資料不存在,則建立它)。

在還原選項中需要選擇資料夾存放資料庫檔案和日誌檔案,這些目錄都是輔助資料庫伺服器上的目錄。

  

  在“複製檔案”介面進行配置複製的一些任務,這裡的任務主要是負責將主資料庫的日誌備份檔案複製到輔助資料庫服務的共享目錄下,如下圖

  

  在“還原事務日誌”介面配置還原備份日誌的相關配置和任務計劃,其中還原備份時資料庫有2種狀態,無恢復模式和備用模式,主要區別是無恢復模式不允許使用者連線資料庫查詢,而備用模式允許使用者查詢資料(但是在資料庫還原期間是不允許查詢的)。一般選擇備用模式,並且選擇“在還原備份時斷開資料庫中的使用者連線”。 

     

  使輔助資料庫處於備用模式時,有兩種配置方式:
  還原事務日誌備份時,可以選擇使資料庫使用者斷開連線。如果選中此選項,則日誌傳送還原作業每次嘗試將事務日誌還原到輔助資料庫時,使用者都將與資料庫斷開連線。斷開連線將按為還原作業設定的計劃發生。
  可以選擇不與使用者斷開連線。在這種情況下,如果使用者連線到輔助資料庫,則還原作業無法將事務日誌備份還原到輔助資料庫。事務日誌備份將一直累積到沒有使用者連線到該資料庫為止。

  5、最後點選”確定”按鈕,會將主資料庫備份並且還原到輔助資料庫伺服器,此步驟可能會執行一段較長時間,只要不報錯就OK,最後可以檢視輔助資料庫伺服器多出一個處於“備用/只讀”的資料庫,如下圖:

  

  

  6、注意,因為所有日誌的備份、複製和還原都是計劃任務,所以在主資料和輔助資料庫伺服器都要啟用SQL Server代理。