如果有一個或多個電子信箱損毀,您可以使用 reconstruct 公用程式來重建電子信箱或電子信箱資料庫,並修復任何不一致問題。
reconstruct 公用程式可重建一個或多個電子信箱,或主電子信箱檔案,並修復任何不一致問題。您可以使用此公用程式從郵件儲存中任何一種資料損毀類型回復。請參閱表示需要執行 reconstruct -m 的錯誤訊息
表 18–16 列出了 reconstruct 選項。如需詳細的語法和用法需求,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「reconstruct」。
表 18–16 reconstruct 選項
選項 |
說明 |
---|---|
-e |
重建前,移除 store.exp 檔案。這將消除尚未被儲存程序清除之已移除郵件的任何內部儲存記錄。它還有助於在使用 -i 或 -e 時使用 -f 選項,因為這些選項僅在實際重建資料夾後才運作。同樣,如果您使用 -n 選項 (執行檢查,而非重建),-i 和 -e 選項不會運作。 如果 reconstruct 未偵測到損毀,則執行 reconstruct -e 將不會回復已移除郵件。-f 將強制重建。 |
-i |
重建前將 store.idx 檔案長度設定為零。它還有助於在使用 -i 或 -e 時使用 -f 選項,因為這些選項僅在實際重建資料夾後才運作。同樣,如果您使用 -n 選項 (執行檢查,而非重建),-i 和 -e 選項不會運作。 |
-f |
強制 reconstruct 執行電子信箱的修正。 |
-l |
重建 lright.db。 |
-m |
執行一致性檢查並在需要的情況下修復電子信箱資料庫。此選項會檢查它在暫存區中找到的每個電子信箱,然後在電子信箱資料庫中適當地新增或移除項目。每當在資料庫中新增或移除項目時,此公用程式便會將訊息輸出到標準輸出檔案。它尤其會修正 folder.db、quota.db 和 lright.db。 |
-n |
僅檢查郵件儲存而不執行電子信箱的修復作業。-n 選項不能單獨使用,除非提供電子信箱名稱。如果未提供電子信箱名稱,則必須將 -n 選項與 -r 選項配合使用。-r 選項可以與 -p 選項結合使用。例如,以下指令均有效: reconstruct -n user/dulcinea/INBOX reconstruct -n -r reconstruct -n -r -p primary reconstruct -n -r user/dulcinea/ |
-o |
棄用,請參閱 mboxutil -o |
-o -d filename |
棄用,請參閱 mboxutil -o |
-p partition |
-p 選項與 -m 選項配合使用,並將重建的範圍限制在指定的分割區內。如果未指定 -p 選項,reconstruct 會依預設處理所有分割區。它尤其會修正 folder.db 和 quota.db ,而非 lright.db。這是因為修正 lright.db 需要為郵件儲存中的每一個使用者掃描 ACL。對每個分割區執行此選項不會很有效。若要修正 lright.db,請執行 reconstruct -l。 指定分割區名稱;不使用完整路徑名稱。 |
-q |
修復配額子系統中任何不一致的問題,如電子信箱的根配額錯誤或是報告的根配額使用率錯誤。-q 選項可在執行其他伺服器程序時執行。 |
-r [mailbox] |
修復指定電子信箱的分割區並執行一致性檢查。-r 選項還可以修復指定電子信箱中的所有子電子信箱。如果您指定 -r 選項時沒有指定電子信箱引數,則此公用程式將修復使用者分割區目錄下的所有電子信箱暫存區。 |
-u user |
-u 選項與 -m 選項配合使用,並將重建的範圍限制在指定的使用者。-u 選項必須與 -p 選項配合使用。如果未指定 -u 選項,reconstruct 會依預設處理所有分割區或處理使用 -p 選項指定的分割區。 指定使用者名稱;不使用完整路徑名稱。 |
若要重建電子信箱,請使用 -r 選項。此選項的使用時機是:
存取電子信箱時傳回以下錯誤之一:「系統 I/O 錯誤」或「信箱的格式無效」。
存取電子信箱會導致伺服器當機。
已在暫存區目錄中新增或移除檔案。
reconstruct -r 會先執行一致性檢查。它會報告一致性狀況,並僅在偵測到問題時才進行重建。因此,此發行版本已提昇了 reconstruct 公用程式的效能。
您可以按照以下範例中的說明使用 reconstruct:
若要重建使用者 daphne 的電子信箱暫存區,請使用以下指令:
reconstruct -r user/daphne
重建電子信箱資料庫中列出的所有電子信箱的暫存區:
reconstruct -r
但是使用此選項時必須小心,因為對於大型郵件儲存來說,重建電子信箱資料庫中列出的所有電子信箱的暫存區會佔用很長時間。(請參閱重建效能。)較好的故障回復方式可能是將多個磁碟用於儲存。如果其中一個磁碟發生故障,也不致影響整個儲存。如果磁碟損毀,您只需使用 -p 選項重建一部分儲存,如下所示:
reconstruct -r -p subpartition
若要重建指令行引數中列出的、位於 primary 分割區的電子信箱:
reconstruct -p primary mbox1 mbox2 mbox3
如果您需要重建 primary 分割區中的所有電子信箱:
reconstruct -r -p primary
如果您要強制 reconstruct 重建資料夾而不執行一致性檢查,請使用 -f 選項。例如,以下指令會強制重建使用者資料夾 daphne:
reconstruct -f -r user/daphne
若要只檢查所有電子信箱而不進行修正,請使用 -n 選項,如下所示:
reconstruct -r -n
執行電子信箱資料庫的高階一致性檢查和修復:
reconstruct -m
若要對主分割區執行一致性檢查和修復,請執行︰
reconstruct -p primary -m
將 -p 和 -m 旗標與 reconstruct 一起執行不會修正 lright.db。這是因為修正 lright.db 需要掃描郵件儲存中每個使用者的 ACL。對每個分割區執行此選項不會很有效。若要修正 lright.db,請執行 reconstruct -l。
若要對個別使用者的名為 john 的電子信箱執行一致性檢查和修復,請執行︰
reconstruct -p primary -u john -m
-m 選項的使用時機是:
已從儲存的暫存區移除一個或多個目錄,從而還需要移除電子信箱資料庫的項目。
已將一個或多個目錄復原到儲存的暫存區,從而還需要新增電子信箱資料庫的項目。
stored -d 選項無法確保資料庫的一致性。
如果 stored -d 選項無法確保資料庫的一致性,您應依次執行以下步驟:
關閉所有伺服器。
移除 store_root/mboxlist 中的所有檔案。
重新啟動伺服器程序。
執行 reconstruct -m 以根據暫存區的內容建立新的電子信箱資料庫。
reconstruct 執行作業所花費的時間取決於以下因素:
所執行的作業類型及選擇的選項
磁碟效能
執行 reconstruct -m 時的資料夾數目
執行 reconstruct -r 時的郵件數目
郵件儲存的整體大小
系統在執行哪些其他程序以及系統的忙碌程度
是否有正在進行的 POP、IMAP、HTTP 或 SMTP活動
reconstruct -r 選項會執行初始一致性檢查;該項檢查會根據需要重建的資料夾數目來提昇 reconstruct 的效能。
有大約 2400 名使用者的 85GB 郵件儲存伺服器 (同時有 POP、IMAP 或 SMTP 活動) 的系統具有以下效能:
reconstruct -m 大約需要 1 小時
reconstruct -r -f 大約需要 18 小時
如果伺服器上沒有 POP、IMAP、HTTP 或 SMTP 活動正在執行,則 reconstruct 作業所需的時間會顯著減少。