[MSSQL]Log Shipping

最近幫公司將產線上的帳務資料整合到ERP,讓ERP自動產生財務報表,使用到了MSSQL的Log Shipping,簡單記錄一下。

  • 來源端: GCP雲端VM
  • 目的端: 公司機房受IT保護的VM

由系統自動執行備份資料庫的作業,自動複製備份檔案到另一伺服器上,最後再自動執行資料庫的還原作業,達成資料同步作業,可作為備援用的資料庫。
基本的運作流程,可以簡化為三項作業:「備份」、「複製」、「還原」。
Log Shipping


必要條件

  • 主要資料庫必須使用完整或大量記錄復原模式。
  • 需安裝 .NET Framework 3.5。

1. 首先要請IT雙向開通以下PORT(通常這是最花時間的XD),GCP 設定VM防火牆規則

  • Port 1433
  • Port 135
  • Ports 137, 138, 139 , 445

參考網址

2. 設定相同帳號權限

  • 二台資料庫和OS各要建一組一樣的帳號密碼,SQL Server Agent服務會用這組帳號啟動。
  • 共享的資料夾要給這組的帳號讀取寫入的權限否則會造成排程失敗,權限也可以開everyone這樣不容易出問題。

3. 來源端按照步驟設定Log Shipping

  • 主要資料庫進行完整備份(也可以不用)

    backup database “DBName” to disk =’G:\SQLLogShipping\DBName\FileName.bak’
    with compression, stats = 10;

  • 將完整備份複製到次要資料庫還原(也可以不用)

    • Options選擇 RESTORE WITH STANDBY
    • Overwirte the existing database (WITH REPLACE) 勾起

4. 主要資料庫設定Log Shipping

Log Shipping

  • 點選 backup setting,輸入在主要伺服器上的備份資料夾與對應的本機路徑,路徑二個都要寫本機的路徑並選擇壓縮檔
    • 筆記:Network path 若是主機在同一內部網路可設內部IP,若主機在不同網路可設外部IP
    • 注意:此資料夾一定要讓SQL Server Agent的服務帳號擁有讀取和寫入的權限

Log Shipping

5.設定完成後,加入次要伺服務器

  • 連接到你的次要伺服器系統會自行搜尋與主要伺服器相同的名稱。若次要資料庫已還原(做了第3步驟),在此選擇紅框,若是次要資料庫不存在,則選擇第一個綠框

Log Shipping

  • 切換到 Copy Files 的分頁後,輸入次要伺服器上的分享資料夾
    • 注意:此資料夾一定要讓SQL Server Agent的服務帳號擁有讀取和寫入的權限

Log Shipping

  • 切換到Restore Transation Log的分頁後,要讓第二台同時也可以進行讀取,所以選擇Sandby mode,並且勾選Disconnect users in the database when restoring backups

Log Shipping

-------------The End-------------