Log Shipping 是早從 SQL 7 就有的功能,它與 SQL 2005 中的 Mirroring 是相似的作用。 二者都有一台「主要伺服器」當作營運使用,另外還有一台「次要伺服器」當作 StandBy ,並隨時與「主要伺服器」保持資料同步。
記錄傳送(Log Shipping )
記錄傳送概觀
在記錄傳送的架構中,成員有以下幾種:
- 主要伺服器 (primary database) :做為實際執行 SQL Server 的主要執行個體。
- 次要伺服器 (secondary server):用來保留主要資料庫的暖待命副本(warm standby copy)的執行個體。
- 監視伺服器 (monitor server) :用來以追蹤記錄傳送的所有詳細資料
實作SQL Server 記錄傳送最少需要兩個 SQL Server 執行個體,一個是「主要伺服器」,另一個則為「次要伺服器」,而「監視伺服器」則是可選擇性的。
在SQL Server 記錄傳送作業中, 送出紀錄的稱為主要伺服器(primary database), 目的端我們稱為次要伺服器(secondary database),一個主要伺服器可以設定傳送給多個次要伺服器。
主要伺服器會進行交易紀錄備份,然後傳送到次要伺服器; 次要伺服器將交易紀錄進行還原,次要伺服器的還原模式可設定的選項有 NORECOVERY 或是 STANDBY 。 而在紀錄傳送作業中,您可以設定監控伺服器來監視記錄傳送活動並保存記錄傳送記錄,下圖就是紀錄傳送的作業示意圖。
記錄傳送由三項作業組成:
- 在主要伺服器執行個體上備份交易記錄檔。
- 將交易記錄檔複製到次要伺服器執行個體上。
- 在次要伺服器執行個體上還原記錄備份。
以上的紀錄傳送作業,都是透過 SQL Server Agent 來執行作業
記錄傳送組態沒有自動從主要伺服器容錯移轉到次要伺服器的功能,若主要資料庫無法使用,您可以手動將任何次要資料庫連上線。
您可以將次要資料庫做為報表用途。
權限設定
備份作業 (backup job)
主要伺服器執行個體的 SQL Server 服務帳戶與執行備份作業的帳戶(預設是主要伺服器執行個體的 SQL Server Agent 服務帳戶),必須擁有備份目錄的讀取/寫入權限。
複製作業 (copy job)
執行複製作業的帳戶(預設是次要伺服器執行個體的 SQL Server Agent 服務帳戶)必須擁有備份目錄的讀取權限和複製目錄(這個目錄通常在次要伺服器)的寫入權限。
還原作業 (restore job)
次要伺服器執行個體的 SQL Server 服務帳戶與執行還原作業的帳戶(預設是次要伺服器執行個體的 SQL Server Agent 服務帳戶),必須擁有複製目錄的讀取/寫入權限。
警示作業 (alert job)
SQL Server Agent 作業,若備份或還原作業未在指定臨界值內順利完成,此作業就會為主要及次要資料庫發出警示。 若資料庫啟用了記錄傳送,監視伺服器執行個體上就會產生「記錄傳送警示」目錄(Log Shipping Alert)。
互通性
記錄傳送也能與 SQL Server 的下列功能或元件搭配使用:
實作記錄傳送
下面範例,使用二個執行個體。 假設第一台執行個體中有個 TestDB1 ,第一台執行個體中則完全沒有資料庫。 我們要將這個TestDB1資料庫,利用 Log Shipping 方式,同步到第二台執行個體。
準備工作
1. 設定主資料庫的復原模式
在設定交易記錄傳送前,必須先確認主資料庫的復原模式,必須選擇「完整」或「大量記錄」,不支援「簡單」。
2. 建立備份資料夾和複製資料夾
在作業前,我們可以先建立二個資料夾,存放資料夾和複製資料夾。(本範例使用 LogShipping_Backup 和 LogShipping_Copy)
備份資料夾:
SQL Server Agent 會將主資料庫的備份存放於此。 所以必須開放主要伺服器 SQL Server Agent 服務帳號的讀取/寫入權限; 也必須開放次要伺服器 SQL Server Agent 服務帳號的讀取權限。
複製資料夾:
SQL Server Agent 會將主資料庫的備份複製一份到次要伺服器。 所以必須開放次要伺服器 SQL Server Agent 服務帳號的讀取/寫入權限。
3. 啟用 SQL Server Agent
由於 Log Shipping 都是由 SQL Server Agent 負責執行,所以請先確認二端的 SQL Server Agent 是否都已啟動。
設定主要伺服器
4. 啟用交易記錄傳送
開啟主資料庫資料庫屬性頁面,然後勾選啟用交易記錄傳送。
5. 備份設定
1. 設定備份資料夾:
將步驟2建立的備份資料夾填入。
2. 設定壓縮:
可設定啟用或不啟用備份壓縮。
設定次要伺服器
6. 加入次要資料庫
7. 連線次要伺服器
8. 設定還原選項
因為次要伺服器中,原先並沒有資料庫,所以這裡要設定一個資料庫存放的路徑。
9. 指定複製檔案用的目的資料夾
10. 指定還原模式
指定次要伺服器的還原模式,支援:不復原模式(NoRecover)或待命模式(Standby)。
設定監視伺服器
監視伺服器為選用設備,若有使用,只要依操作設定即可。
完成工作
回顧一下,剛剛設定做了哪些設定。沒錯,就上面文章介紹的:備份、複製、還原。
按下[確定],若設定無誤,可以下列視窗
此時 Log Shipping 已設定完成,可正常執行,你可以透過 [Instance] -> [報表] -> [標準報表] -> [交易記錄傳案狀態] 查看目前的執行狀況,
主要伺服器
次要伺服器
最後你可以在次要伺服器上,看到資料庫已經新增完成。 同時因為我們選用 NORECOVERY 模式,所以狀態會一直處於還原中,所以無法存取。 若選用 STANDBY 模式,狀態就會是待命/唯讀。
首先感謝大大的筆記, 真的讓我受益良多。
回覆刪除在這篇幅內容 :【 假設第一台執行個體中有個 TestDB1 ,第一台執行個體中則完全沒有資料庫。】
應該是筆誤了...?