在了解了自動化管理作業之後,我們要來談談資料庫的高可用性(High Availability),所以這一篇文章將為大家介紹SQL Server的記錄傳送(Log Shipping)的基本觀念以及需要注意的地方。
SQL Server的記錄傳送(Log Shipping)的運作層級是在資料庫層級上,要執行紀錄傳送的資料庫,必須使用完整復原模式或大量記錄復原模式,關於復原模式詳細介紹您可以參考
SQL Server 無敵手冊第七篇,且參與的伺服器應有相同的區分大小寫設定(case-sensitivity)。
另外由於紀錄傳送是透過SQL Server Agent來執行作業,所以您需要將SQL Server Agent服務啟動,建議您可以將該服務設定為[自動],如下圖所示。
[基本觀念]
送出紀錄的稱為主要伺服器(primary database),目的端我們稱為次要伺服器(secondary database),一個主要伺服器可以設定傳送給多個次要伺服器。記錄傳送的作業由主要伺服器將資料庫進行交易紀錄備份(下圖的1備份作業),然後傳送到次要伺服器(下圖的2複製作業),然後次要伺服器將交易紀錄進行還原(下圖的3還原作業),次要伺服器的還原狀態可以設定為NORECOVERY(不復原)或是STANDBY(待命模式),關於還原模式您可以參考SQL Server 無敵手冊第十篇。而在紀錄傳送作業中,您可以設定監控伺服器來監視記錄傳送活動並保存記錄傳送記錄,下圖就是紀錄傳送的作業示意圖。
PS:記錄傳送組態可以結合在 32 位元環境中執行的伺服器執行個體,以及在 64 位元環境中執行的伺服器執行個體。
[權限說明]
由以上的介紹,可以推想要成功執行紀錄傳送作業,您需要先確認下列各作業中權限項目:
備份作業:
主要伺服器執行個體的 SQL Server 服務帳戶與執行備份作業的帳戶(預設是主要伺服器執行個體的 SQL Server Agent 服務帳戶)必須擁有備份目錄(通常我會把這個Share Folder開在主要伺服器中)的讀取/寫入權限。
複製作業:
執行複製作業的帳戶(預設是次要伺服器執行個體的 SQL Server Agent 服務帳戶)必須擁有備份目錄的讀取權限和複製目錄(這個目錄通常在次要伺服器)的寫入權限。
還原作業:
次要伺服器執行個體的 SQL Server 服務帳戶與執行還原作業的帳戶(預設是次要伺服器執行個體的 SQL Server Agent 服務帳戶),必須擁有複製目錄的讀取/寫入權限。
在實作上比容易遇到權限設定不正確而遇到紀錄傳送作業失敗,如下圖您安裝時可能會將SQL Server執行個體與SQL Server Agent的服務由本機帳戶來執行:
現在您已經了解在SQL Server中如何做到紀錄傳送,接下來我們會在下一篇跟大家介紹如何利用SQL Server Management Studio實作紀錄傳送。