SQL Server 2000之日志傳送功能-設定
日志傳送功能可自動復制數據庫的交易日志文件,并回存到備援服務器 (standby server) 的另外一個數據庫。因此可大幅提高SQL Server數據庫之可用性。因為備援數據庫完整地接收來源數據庫的異動情況,所以它就是一份來源數據庫的復本 - 差別僅在于資料復制與加載過程所產生的時間差。然而,當主要服務器停擺時,您就可以將備援服務器更改為新的主要服務器。如果原來的主要服務器可重新上線使用,那么您可以將其設定為新的備援服務器 - 事實上就是對調兩臺服務器的角色。 在SQL Server 2000企業版或開發版之中,Microsoft在Enterprise Manager內提供了一項日志傳送(Log Shipping)的功能 - 為數據庫維護計劃精靈的其中一部份。在使用之前的SQL Server時,您需要自行建立日志傳送系統。設定日志傳送
主要服務器(primary server) 即是實際處理資料的正式服務器;此服務器內擁有來源數據庫。次要服務器(secondary server)上存放目的數據庫,用來復制與回存來源數據庫的交易日志文件。監控服務器(monitor server)用來監控主要服務器與次要服務器。與SQL Server 7.0不同的是(SQL Server 7.0是在次要服務器上監控日志傳送動作),SQL Server 2000使用Enterprise Manager的日志傳送監控工具來監控每一組傳送中的日志資料。Microsoft建議您在另外一臺監控用服務器安裝這個工具程序。 您可以利用Enterprise Manager的數據庫維護計劃精靈設定SQL Server 2000的日志傳送。但是在您激活精靈之前,您必須先進行某些準備工作。一開始請先遵循下列步驟: 1.決定一組要設定日志傳送的服務器(即日志傳送過程之中,主要服務器與次要服務器為何)。 2. 選擇一臺監控服務器。最好不同于主要服務器或次要服務器。 3. 設定所有服務器之安全性。您用來設定日志傳送的Windows帳號必須擁有所有服務器上SQL Server系統管理者(sa)的權限。 4. 在主要/次要服務器上建立分享資料夾。首先,將來源數據庫交易日志文件所在的目錄設定為分享目錄。接著在次要服務器上,將您打算回存交易日志文件的目錄也分享出來。為了清楚辨別各分享目錄,請在分享名稱內注明服務器與數據庫之名稱。如果分享目錄名稱已存在,您可能需要從分享目錄中刪除或是搬移其它檔案,特別是舊的日志備份文件。然后再將這些分享目錄的權限開放給每一臺服務器上SQL Agent所使用的Windows帳號。 5. 決定如何建立并初始化目的地數據庫。您可以在日志傳送設定過程就先建立與初始同步化目的地數據庫,否則您必須手動進行初始數據庫之回存動作。 6. 在Enterprise Manager注冊此三臺服務器(即主要、次要與監控服務器)。在您完成這些準備動作時,您就可以準備激活數據庫維護計劃精靈來設定日志傳送。您可以先檢視日志傳送過程的五個連續步驟,如圖1所示:
圖1:SQL Server 2000日志傳送的設定步驟。
前兩個為選擇性(optional)步驟。如果您尚未同步化來源與目的數據庫,則步驟1會為您先備份來源數據庫,然后執行同步化動作。在步驟2時,精靈會將備份文件復制到次要服務器,并回存到目的地數據庫。 精靈一定會執行其余三項步驟。在步驟3時,精靈將在主要服務器上建立一個SQL Agent工作(job)。此工作將會周期性地把交易日志文件內容備份到磁盤檔案內。精靈也會在次要服務器上建立一個傳送日志的數據庫維護計劃;此計畫包含兩個SQL Agent工作:一個是將交易日志文件復制到次要服務器(步驟4),另一個則是將交易日志文件回存到目的數據庫(步驟5)。這些步驟將建立一組日志傳送服務器(互相有日志傳送關系的兩個數據庫)。如果您想要額外提供容錯功能或是設定一臺報表服務器,那么您可以將主要服務器與另外一臺次要服務器組合在一起,再設定一組日志傳送配對服務器。
準備工作 1. 準備 Primary Server (以下為Ztao-1) 及 Secondary Server (以下為IntronTest) 2. 將要作 Log Shipping 的數據庫(以下為IntronERP)之還原模型(Recovery Model)設定為完整(FULL)。
3. 將兩臺計算機的SQL Server服務賬號加入Administrator群組4. 建立Primary Server 備份Log的數據夾 a. 建立C:Logfile,以存放Primary Server數據庫Transaction Log的備份 b. 將C:Logfile作數據分享,分享目錄的權限開放給SQL Agent所使用的Windows帳號。5. 建立 Secondary Server 還原的數據夾(在Secondary Server) a. 建立C:Shippedlog數據夾以存放從Primary Server傳送過來的Transaction log 的備份 b. 建立 C:Logfile數據夾,當角色交換后,可存放新Primary Server的數據庫Transaction Log c. 將C:Logfile數據夾作資源共享,分享目錄的權限開放給SQL Agent所使用的Windows帳號。6. 在Primary Server中,新增 Secondary Server的注冊信息
逐步設定
在Primary Server中,設定Standby Server及Log shipping1、開啟Enterprise Manager,由工具中點選數據庫維護計劃
2、歡迎畫面:
3、選取數據庫:勾選Log shipping
4、更新數據最佳化信息:維持預設,不用選擇!
5、數據庫完整性檢查:維持預設,不用選擇!
6、指定數據庫備份計劃:一般不用選擇!
7、指定交易記錄文件備份磁盤目錄:儲存備份文件的目錄指向Primary Server上存放資料日志文件的目錄位置!
8、指定交易記錄共享:在此窗口中您必須指定主服務器上的分享目錄名稱??梢园聪隆尽堪粹o后瀏覽目錄名稱。
9、指定記錄傳送目的地:點選【Add】按鈕后可開啟『新增目的數據庫』對話框
10、新增目的數據庫:輸入所有Secondary Server的相關信息
【伺服務器名稱】下拉式選單會列出您在先前準備工作中曾利用Enterprise Manager所注冊的Secondary Server名稱。在【目錄】文字字段里,請輸入Secondary Server的目錄名稱,用以接收來源數據庫交易日志文件復本;此名稱為本地端路徑名稱,而不是分享目錄名稱。有關數據庫的加載狀態,您有兩種選項可以設定:不復原模式(No recovery mode)與待命模式(Standby mode)。所謂的『不復原模式』表示使用者將無法進行資料查詢,唯一可執行的動作只有回存交易日志文件。而『待命模式』則是將數據庫設定成只讀狀態;只要不是在回存數據庫的時候,您都可以查詢資料。窗口內還有一個【終止數據庫中的使用者(建議選項)】選項,會在回存數據庫或是回存交易日志文件時發生動作。在回存數據庫或是交易日志文件時,『回存程序』將是數據庫內唯一的使用者。所以,Microsoft建議您勾選此選項,否則其它使用者可能會影響回存動作的進行。
11、指定記錄傳送目的地:該設定完成。
12、初始化目的服務器:可以挑選最近一次的備份資料;或是建立一份新的備份資料。對大型數據庫而言,使用既有的備份資料會比較有效率。然而,從那次備份之后的所有交易日志文件都必須存在于主要服務器上交易日志文件的分享目錄之中,精靈才有辦法復制與回存到次要服務器。如果數據庫不是很大,那么讓精靈產生新的備份將會比較簡單。
13、記錄傳送排程:可以設定來源數據庫上交易日志文件的備份頻率;也可以設定次要服務器上SQL Agent工作 (由精靈建立的,用來復制與加載交易日志文件) 的頻率。日志傳送的頻率可粗略設定為一分鐘一次;但以大型數據庫來說,五分鐘一次是比較普遍的選擇。
14、記錄傳送臨界值:針對交易日志文件備份動作,以及復制與回存工作,設定合理的延遲時間。當超過臨界時間時,日志傳送監控程序對話框將會響應一個警示訊息。
15、指定記錄傳送監視服務器信息:這里可能會直接使用默認值,但是預設監控服務器是設定為主要服務器。一般來說,不會把主要或次要服務器當作監控服務器,這是因為如果其中一臺服務器故障停擺時,將無法得知目前日志傳送的狀態為何。
16、產生報告:建議將報告存到你Log的目錄下,或者專門存放有關Log Shipping的Log的目錄下,方便出錯時查找原因!
17、維護計劃歷程記錄:在Secondary Server上也保存一份記錄。
18、設定Log Shipping名字
19、按下【完成】吧!此時精靈會自動從主要服務器與次要服務器之間設定日志傳送動作,并且在監控服務器上設定日志傳送監控程序。
更改日志傳送之組態設定
您可以使用數據庫維護計劃之【屬性】對話盒來更改日志傳送相關設定。在【交易記錄文件備份】設定頁提供的選項可更改日志傳送過程中交易日志文件備份的組態。
【記錄傳送】設定頁顯示出您先前在維護計劃內設定的日志傳送配對服務器;如果您設定了其它組日志傳送配對服務器,也會列在此處。本設定頁也包含下列選項:新增目的數據庫(用以建立新的日志傳送配對服務器)、刪除既有日志傳送配對服務器、編輯目前的日志傳送配對服務器之屬性,以及移除整個日志傳送功能。
當您在【記錄傳送】設定頁之中點選【編輯】時,將開啟【編輯目的數據庫】對話盒。您可以在對話盒內【一般】設定頁檢視與修改次要服務器的交易日志文件之目錄位置,以及未來做為主要服務器時分享目錄之路徑?!境跏蓟吭O定頁則可讓您更改復原模式,以及次要服務器上復制與回存之頻率?!九R界值】頁可以設定日志傳送之臨界周期。
在【超出同步臨界值】項目可設定:當日志傳送監控程序產生警示訊息之前所能允許的最大時間間隔 (介于最近一次來源數據庫交易日志文件備份以及最新的交易日志文件回存動作之間)。您也可以在日志傳送監控程序之中設定此參數。【在入時間延遲】、【檔案保留期限】以及【歷程記錄保留期限】則是與次要服務器相關的設定。注:監控服務器在這些組態選項中扮演相當重要的角色。因為【記錄傳送】設定頁的大部分信息取決于監控服務器,所以一但監控服務器停擺時,您將無法更改日志傳送的組態設定值。在監控服務器執行SQL Server 2000 Profiler時,主要服務器會連到監控服務器,然后從日志傳送資料表中取得既有的日志傳送計劃。因此,要改變日志傳送計劃的設定時,您必須確定在Enterprise Manager內可以連接到監控服務器。
檢查與監控日志傳送動作
SQL Server 2000的日志傳送功能還提供了一項日志傳送監控程序,可讓您安裝在另一臺獨立監控用服務器。 在SQL Server企業版與開發版的msdb數據庫中共有七個關于日志傳送的資料表: log_shipping_plans log_shipping_plan_databases log_shipping_databases log_shipping_plan_history log_shipping_monitor log_shipping_primaries log_shipping_secondaries 上述每一個資料表都存在于主要、次要以及監控服務器上。各服務器也會使用某些資料表儲存資料,視該服務器在日志傳送系統的角色為何。 在主要服務器上檢視日志傳送動作 從Enterprise Manager 里,您可以登入主要服務器,并觀察與監控日志傳送動作。如果某個數據庫已設定要進行日志傳送,在數據庫【內容】對話盒的【一般】頁可得知該數據庫的角色(來源數據庫;或是目的數據庫),也可知道日志傳送監控程序是位于那一臺服務器上。您可以在Enterprise Manager內SQL Server Agent的【作業】節點,檢視日志傳送與交易日志文件備份工作所執行的狀態與歷史紀錄。主要服務器只使用msdb數據庫的兩個日志傳送資料表。在log_shipping_databases資料表中,SQL Server新增的每一筆資料將會把數據庫維護計劃ID以及日志傳送來源數據庫連結在一起。在log_shipping_monitor資料表中,SQL Server新增的每一筆資料包含了監控服務器的名稱,以及登入數據庫的方式。 在次要服務器上檢視日志傳送動作 日志傳送計劃存在于次要服務器。您可在次要服務器監控SQL Agent工作(復制交易日志文件到次要服務器,并回存至目的數據庫)。 您也可檢視目的數據庫的屬性對話盒,以決定該數據庫在日志傳送過程所扮演的角色。 在次要服務器上,SQL Server使用msdb數據庫的四個日志傳送資料表。當SQL Server建立一個日志傳送計劃之后,它會新增一筆資料到log_shipping_plan資料表,用以紀錄:主要與次要服務器的名稱、檔案位置、復制與回存工作ID(來自于次要服務器之sysjobs系統資料表)。在log_shipping_plan_databases資料表,SQL Server會連結維護計劃以及來源/目的數據庫名稱,而且儲存最后一次進行檔案復制與加載動作的相關信息。log_shipping_plan_history資料表則是將每次日志傳送的復制與回存事件紀錄下來,連同該工作是否成功的信息。SQL Server也會新增一筆資料在log_shipping_monitor資料表,用以參照監控服務器。 如果您勾選了【Allow database to assume primary role】復選框,您將在次要服務器上看到一個重要的額外項目:另一個數據庫維護計劃(與您先前所建立的維護計劃名稱相同),但是并沒有激活日志傳送。您也會看到一個非作用中(disabled)的SQL Agent工作(備份該數據庫的交易日志)。也許您會被這些項目所混淆。盡管它們的名字相同,但是此額外產生的維護計劃卻不同于當初所建立的那個。SQL Server保留第二個逆向維護計劃是為了以后可能發生的主要/次要服務器角色對調動作所準備。
在監控服務器上檢視日志傳送動作 當您正確設定日志傳送之后,SQL Server 會激活監控服務器上Enterprise Manager 的日志傳送監控工具程序。此外,SQL Server會建立兩個SQL Agent 警示工作(alert job):一個用來執行工作,另一個處理out-of-sync情況。 使用監控工具程序的方式是,開啟Enterprise Manager并連至監控服務器,展開【Management】節點,然后點選【記錄傳送監視器(Log Shipping Monitor)】。當您點選此工具程序時,其內會列出日志傳送配對服務器的清單。您可在配對服務器上按下鼠標右鍵,檢視其備份、復制與回存等工作的執行歷史紀錄。這些歷史紀錄十分有用,因為您從這里得到的錯誤訊息會比從次要服務器上(SQL Agent 復制與回存工作)得到的更為詳盡。 如圖所示:當您開啟配對服務器之屬性對話盒,并進入【Status】設定頁時,您可檢視此配對服務器執行備份與回存程序之狀態。
其狀態(Status)可以是Normal 或是Out-of-Sync。如果SQL Server Agent尚未復制或回存交易日志文件,對話盒內將會顯示日志文件名為first_file_000000000000.trn。這并不是實際的文件名稱,只不過是用來標示SQL Server Agent尚未處理任何檔案而已。在【Status】設定頁也會顯示備份、復制以及加載(回存)等動作執行時所耗費的時間。此設定頁之信息不會自動更新,所以您必須將此對話盒關閉后再開啟,才能更新其資料。 SQL Server只使用msdb數據庫內兩個資料表來儲存日志傳送服務器之相關資料。SQL Server在這兩個資料表中都給予一個ID做為連結,以及一個外來鍵(foreign key)。該外來鍵是設定在log_shipping_secondaries資料表上,并參照log_shipping_primaries資料表的primary_id字段(這兩個是所有日志傳送資料表中唯一具有外來鍵關系的資料表)。在log_shipping_primaries資料表內的每筆資料都包含日志傳送的相關信息,例如:來源數據庫名稱、交易日志文件備份工作執行之狀態,以及已規劃的停擺信息(可避免不必要的警示訊息)。而log_shipping_secondaries 資料表之每筆資料關于目的數據庫之信息;每個目的數據庫附屬于特定的日志傳送來源數據庫。這兩個資料表互相連結的結果就是日志傳送監控程序內所顯示的配對服務器信息。
移除與重新組態日志傳送功能
如果您想從數據庫維護計劃中移除日志傳送功能,可參考下列方式:開啟該計劃的屬性對話盒,選擇【記錄傳送】設定頁,然后點選【移出記錄傳送】。此動作將從次要服務器上移除SQL Server Agent的備份與回存工作,并清除日志傳送資料表內的所有相關資料。此外,日志傳送監控程序的相關信息也會一并被清除。然而此動作將會適當地保留主要服務器上SQL Server Agent的交易日志備份工作。只有在刪除數據庫維護計劃時,該工作才會被移除。假如您想從監控服務器內移除掉日志傳送監控程序,請用手動方式將log_shipping_primaries與log_shipping_secondaries這兩個資料表(位于監控服務器的msdb數據庫)的資料刪除即可。
如果您在數據庫維護計劃內設定日志傳送時,就已允許目的數據庫可以做為新的日志傳送來源數據庫。當您刪除主要服務器的維護計劃時,次要服務器上仍然會保留其數據庫維護計劃,以及交易日志文件備份工作。刪除這些項目的方式是將次要服務器上與日志傳送相關的數據庫維護計劃直接刪除。
轉摘《DigJim的專欄》——實在精典,希望更多的人學習,資源共享
