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