WebSphere MQ v6 日誌原理

CloudSpace發表於2008-07-15
MQ把所有由佇列管理器控制的資料的重要更改到日誌中。這包括建立和刪除物件(除了通道)、持久訊息更新、事務狀態、更改物件屬性以及通道活動。通過以下操作,日誌包含恢復所有訊息佇列更新所需的資訊:
1、保留佇列管理器更改的記錄
2、保留重新啟動程式所使用的佇列更新的記錄
3、能夠在硬體和軟體發生故障後重新恢復資料
日誌是什麼?
WebSphere MQ 日誌包含兩個元件:
1. 日誌資料的一個或多個檔案
2. 日誌控制檔案
存在包含要記錄的資料的許多日誌檔案。您可以定義數量和大小,或者採用三個系統預設檔案。
在 WebSphere MQ Windows 版中,三個檔案都預設為 1 MB。在 WebSphere MQ UNIX 中,三個檔案都預設為 4  MB。
建立佇列管理器時,您定義的日誌檔案數是已分配的主日誌檔案數。如果不指定數,則使用預設值。
在 WebSphere MQ Windows 版中,如果未更改日誌路徑,則在此目錄中建立日誌檔案:
C:Program FilesIBMWebSphere MQlog
在 WebSphere MQ UNIX 中,如果未更改日誌路徑,則在此目錄中建立日誌檔案:
/var/mqm/log/QmName
WebSphere MQ 以這些主日誌檔案開始,但是日誌填滿了,則會分配次日誌檔案。它會動態完成此操作,並在發出日誌空間減少的要求時除去它們。預設情況下,最多可以分配兩個次日誌檔案。
日誌控制檔案:
1、日誌控制檔案包含監控日誌檔案的使用所需的資訊,如它們的大小和位置、下一個可用檔案的名稱等等。
note:確保啟動佇列管理器時建立的日誌足夠大,能夠容納應用程式要處理的訊息的大小和量。您可能需要更改預設日誌數和大小以滿足您的要求.
確定佇列管理器應該使用迴圈還是線性日誌記錄後,您需要估計該佇列管理器需要的日誌大小。 日誌大小是由以下日誌配置引數確定的:
LogFilePages
4K 頁面的單元中每個主和次日誌檔案的大小
LogPrimaryFiles
預分配的主日誌檔案數
LogSecondaryFiles
可建立的次日誌檔案數(主日誌檔案滿時使用)
顯示佇列管理器為各種日誌記錄的資料量。大多數佇列管理器操作需要最小量的日誌空間。但是當持久訊息放入佇列時,所有訊息資料必須寫入日誌,使它能夠恢復此訊息。通常,日誌大小取決於佇列管理器需要處理的持久訊息的數量和大小。
操作  大小
放入持久訊息  750 位元組 + 訊息長度
如果是大訊息,則分隔成 15700 位元組的段,每個段可以有 300 位元組的開銷。
獲取訊息  260 位元組
同步點,提交  750 位元組
同步點,回滾  1000 位元組 + 12 位元組(要回滾的每個獲取或放入)
建立物件  1500 位元組
刪除物件  300 位元組
改變屬性  1024 位元組
記錄介質映象  800 位元組 + 映象
映象分隔成 260 000 位元組的段,每個段有 300 位元組開銷。
檢查點  750 位元組 + 200 位元組(每個活動的工作單元)
可以為任何未提交的放入或取出(由於效能原因而進行了快取)記錄其它資料。
注:
1. 佇列管理器每次啟動時,您可以更改主和次日誌檔案數。
2. 您無法更改日誌檔案大小;必須在建立佇列管理器前確定它。
3. 主日誌檔案的數量和日誌檔案大小確定建立佇列管理器時預分配的日誌空間的量。把空間組織成小數量的大日誌檔案而不是大數量的小日誌檔案。
4. 主和次日誌檔案的總量不能超過長期執行事務的中的 63,它限制了佇列管理器重新啟動恢復可用的日誌空間量。佇列管理器用於介質恢復所需的日誌空間量不共享此極限。
5. 使用迴圈日誌記錄時,佇列管理器重用主日誌空間。這意味著佇列管理器的日誌可以比您估計的佇列管理器需要記錄的資料量要小。日誌檔案滿時,佇列管理器將分配一個次日誌檔案(最多到極限值),並且序列中的下一個主日誌檔案不可用。
6. 主日誌檔案可用於檢查點期間的重用。由於日誌空間量的減少,因此使用檢查點前,佇列管理器會考慮主和次日誌空間。
如果您不定義比次日誌檔案更多的主日誌檔案,則佇列管理器在採用檢查點前可以分配次日誌檔案。 這使得主日誌檔案可以重用。  
日誌記錄型別
在 WebSphere MQ 中,日誌記錄所要求的檔案數取決於檔案大小、您接收到的訊息數和訊息長度。有兩種方法維護佇列管理器活動的記錄:迴圈日誌記錄和線性日誌記錄。
迴圈日誌記錄
如果您所要的只是重新啟動恢復,則使用迴圈日誌記錄,使用日誌回滾系統停止時正在進行的事務。
迴圈日誌在日誌檔案環中保留所有重新啟動資料。日誌記錄填充該環中的第一個檔案,然後移動到下一個檔案,依次類推,直到所有檔案都滿為止。然後它回到環中的第一個檔案並再次開始日誌記錄。只要產品在使用中,就會一直繼續下去,並且具有永遠不會用完日誌檔案的優點。
WebSphere MQ 保留不丟失資料而重新啟動佇列管理器所需的日誌條目,直到不再需要它們以確保佇列管理器資料的恢復為止。:)
 
線性日誌記錄
如果您要重新啟動恢復和介質或轉發恢復(通過重播日誌內容重新建立已丟失或已損壞的資料),則使用線性日誌記錄。
線性日誌記錄在連續的檔案序列中儲存日誌資料。它不重用空間,因此,您可以總是從建立佇列管理器的時間中檢索任何已記錄的記錄。
由於磁碟空間是有限的,您可能需要考慮某種形式的歸檔。管理任務管理日誌的磁碟空間,必要時重用或擴充套件現有的空間。
與線性日誌記錄一起使用的日誌檔案數可以非常大,這取決於您的訊息流和您的佇列管理器壽命。但是,有許多檔案是活動的。活動檔案包含重新啟動佇列管理器所需的日誌條目。活動日誌檔案數通常與配置檔案中定義的主日誌檔案數相同。
控制日誌檔案是否是活動的關鍵事件是檢查點。WebSphere MQ 檢查點是一組日誌記錄,包含啟用佇列管理器成功重新啟動的資訊。重新啟動佇列管理器不需要任何先前記錄的資訊,因此可以稱為非活動的。
您必須確定何時不再需要非活動的日誌檔案。如果您的操作對它們不感興趣了,則可以壓縮或者刪除它們。
如果新檢查點記錄到次日誌檔案中,或者以後記錄到主日誌檔案中,則第一個檔案成為非活動的,並且新的主檔案格式化並新增到主池的結束部分, 恢復記錄可用的主檔案數。在這種方法中,主日誌檔案池可以看作是日誌檔案的擴充套件列表中的當前檔案集。它還是根據您操作要求管理非活動檔案的管理任務。
儘管次日誌檔案是為線性日誌定義的,在正常操作中不使用它們。如果發生此情況(可能由於事務的壽命長所致),不可能從活動池中釋放檔案,因為,它可能仍需要重新啟動,次檔案格式化並新增到活動日誌檔案池中。
如果可用次檔案數用完了,需要日誌活動的大多數進一步操作的請求會被拒絕,並帶有返回到應用程式的 MQRC_RESOURCE_PROBLEM 返回碼。
兩種型別的日誌記錄都可以應付意外的斷電(假設沒有硬體故障)。
佇列管理器回滾消耗太多日誌空間的事務。用此方法回滾其事務的應用程式無法執行後繼的 MQPUT 或 MQGET 操作,這兩個操作在相同事務下指定同步點。在此狀態的同步點下嘗試放入或取出訊息返回 MQRC_BACKED_OUT。接著,此應用程式可以發出 MQCMIT,它返回 MQRC_BACKED_OUT 或 MQBACK,並啟動一個新事務。已回滾消耗了太多的日誌空間的事務,釋放它的日誌空間,並且佇列管理器繼續正常操作。
如果填充日誌,則發出 AMQ7463 訊息。另外,如果由於長期執行事務已保護要釋放的空間而填充日誌,則發出訊息 AMQ7465。
最後,如果記錄寫入日誌比非同步內務處理程式處理它們的速度要快,則發出訊息 AMQ7466。如果您看到此訊息,則增加日誌檔案數或減少佇列管理器要處理的資料量。
磁碟滿時會發生什麼
佇列管理器日誌記錄元件可以應付磁碟滿和日誌檔案滿。如果包含日誌的磁碟滿了,則佇列管理器發出 AMQ6708 訊息,併產生一條錯誤記錄。
日誌檔案是以其最大大小建立的,而不是當日志記錄寫入它們時再擴充套件。這意味著僅當建立新檔案時 WebSphere MQ 可以用完磁碟空間;在把記錄編寫到日誌時無法用完磁碟空間。WebSphere MQ 總會知道現有的日誌檔案中有多少可用的空間,並且管理這些檔案中的空間。
如果您填充包含這些日誌檔案的驅動器,則可能會釋放一些磁碟空間。如果您使用線性日誌,則在此日誌目錄中可能有一些非活動的日誌檔案,並且可以把這些檔案複製到另一個驅動器或裝置。如果您仍用完了磁碟空間,則檢查佇列管理器配置檔案中的日誌配置是否正確。您可能可以減少主或次日誌檔案數,以使日誌不會佔用過多的可用空間。您無法改變現有佇列管理器的日誌檔案大小。佇列管理器假設所有的日誌檔案大小都相同。
管理日誌檔案
如果您使用迴圈日誌記錄,則確保配置系統時有足夠的空間以儲存這些日誌檔案(請參閱"WebSphere MQ 的日誌預設"和"佇列管理器日誌")。日誌使用的磁碟空間量(包括要建立的次檔案的空間(如果要求))不會增加到超出已配置的大小。
如果您使用線性日誌,則記錄資料時連續新增日誌檔案,並且使用的磁碟空間量隨著時間而增加。如果要記錄的資料速率高,則新日誌檔案會快速消耗磁碟空間。
經過一段時間,重新啟動佇列管理器或執行任何受損物件的介質恢復時就不再需要線性記錄的這些舊日誌檔案。佇列管理器定期發出訊息對,表明需要哪些日誌檔案:
    * 訊息 AMQ7467 給出了重新啟動佇列管理器所需的最舊的日誌檔名。佇列管理器重新啟動期間,此日誌檔案和所有較新的日誌檔案必須是可用的。
    * 訊息 AMQ7468 給出了介質恢復所需的最舊的日誌檔名。
任何比這些檔案舊的日誌檔案不需要聯機。您可以把它們複製到一個歸檔介質(如用於災難恢復的磁帶),並把它們從活動日誌目錄除去。任何介質恢復(不是重新啟動)所需的日誌檔案也可解除安裝成某個壓縮文件。
如果找不到任何所需的日誌檔案,則發出 AMQ6767 操作員訊息。使佇列管理器能夠使用日誌檔案和所有後繼的日誌檔案,並重試此操作。
注:
    執行介質恢復時,日誌檔案目錄中的所有必需的日誌檔案必需在此時是可用的。確保使用任何物件的常規介質映象,您可能希望用它來進行恢復,以避免保持所有必需的日誌檔案而用完磁碟空間。
執行 rcdmqimg 命令時,也可能發出訊息 AMQ7467 和 AMQ7468。有關此命令的更多資訊,請參閱rcdmqimg(記錄介質映象)。
日誌檔案位置
選擇日誌檔案的位置時,記住,如果由於缺少磁碟空間而 WebSphere MQ 無法格式化新日誌,則該操作會受到嚴重影響。
如果您使用迴圈日誌,則確保驅動器上至少有用於已配置的主日誌檔案的足夠空間。至少還為一個次日誌檔案保留空間,如果日誌增長則,會需要它。
如果您使用線性日誌,則允許相當的更多空間;資料記錄時,會持續增加日誌消耗的空間。
最好是把日誌檔案和佇列管理器資料放在不同的磁碟驅動器中。這對效能有益。也有可以把日誌檔案放到映象排列中的多個磁碟驅動器中。這保護包含此日誌的驅動器以免發生故障。如果沒有映象,會強制您返回到您的 WebSphere MQ 系統的最後一個備份。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-401649/,如需轉載,請註明出處,否則將追究法律責任。

相關文章