1. 程式人生 > >Exchange-Unable to mount database排錯

Exchange-Unable to mount database排錯

false turn family 無需 rest 我們 正在運行的服務 中一 earch

問題描述

因人員遞增及業務發展需要,需要對現階段Exchange前後端及數據庫進行全新規劃,並根據實際需要擴容現有數據庫。在掛載數據庫時發生報錯MapiExceptionTooManyMountedDatabases: Unable to mount database。

環境描述

Windows Server 2012R2 + Exchange CU17

問題分析:

Microsoft Exchange Server 2013在兩個服務器版本中可用:標準版和企業版。企業版可以在發布到制造(RTM)和累積更新1(CU1)版本中擴展到每個服務器50個裝載數據庫,累積更新2(CU2)和更高版本CU18中每個服務器裝載100個數據庫; 標準版僅限於每臺服務器安裝5個數據庫。掛載的數據庫是正在使用的數據庫

。掛載的數據庫可以是安裝為供客戶端使用的活動郵箱數據庫,也可以是安裝在恢復中的用於日誌復制和重放的被動郵箱數據庫。雖然可以創建比上述限制更多的數據庫,但只能裝載上面指定的最大數目。恢復數據庫不計入此限制。

這些許可版本由產品密鑰定義。輸入有效的許可證產品密鑰時,會建立服務器的受支持版本。產品密鑰只能用於相同版本的密鑰交換和升級; 他們不能用於降級。您可以使用有效的產品密鑰將Exchange 2013的評估版(試用版)移至標準版或企業版。您也可以使用有效的產品密鑰從標準版轉移到企業版。

您也可以使用相同版本的產品密鑰重新授權服務器。例如,如果您有兩臺帶有兩個密鑰的Standard Edition服務器,但意外在兩臺服務器上使用了同一個密鑰,則可以將其中一個密鑰更改為您發布的另一個密鑰。您可以執行這些操作,而無需重新安裝或重新配置任何內容。輸入產品密鑰並重新啟動Microsoft Exchange Information Store服務後,將反映與該產品密鑰對應的版本。

當試用版過期時,不會發生功能損失,因此您可以在120天內維護實驗室,演示版,培訓版和其他非生產環境,而無需重新安裝Exchange 2013試用版。

如前所述,您不能使用產品密鑰從企業版降級到標準版,也不能使用它們還原到試用版。這些類型的降級只能通過卸載Exchange 2013,重新安裝Exchange 2013以及輸入正確的產品密鑰來完成。

解決思路

1.在ECP網頁管理界面執行數據庫掛載操作,報錯信息如下:

裝入數據庫"DB17"失敗。錯誤: 活動管理器操作失敗。錯誤: 數據庫操作失敗。錯誤: 嘗試為可能的激活操作選擇數據庫副本時發生錯誤。錯誤: 未裝載數據庫'DB17',因為驗證數據庫副本是否可激活時,或者試圖激活另一個副本時出現了錯誤。詳細錯誤: mbx04: 活動管理器操作失敗。錯誤: 操作失敗,出現消息: MapiExceptionTooManyMountedDatabases: Unable to mount database. (hr=0x8004060e, ec=-2147219954) Diagnostic context: Lid: 65256 Lid: 10722 StoreEc: 0x8004060E Lid: 1494 -- Remote Context Beg -- Lid: 37952 dwParam: 0x3C1A048E Lid: 39576 StoreEc: 0x977 Lid: 35200 dwParam: 0x1970 Lid: 58864 StoreEc: 0x8004060E Lid: 43248 StoreEc: 0x8004060E Lid: 35388 StoreEc: 0x8004060E Lid: 54336 dwParam: 0x3C1A048E Lid: 35200 dwParam: 0x1970 Lid: 1750 -- Remote Context End -- Lid: 1047 StoreEc: 0x8004060E [服務器: MBX04.***.com] [數據庫: DB17, 服務器: MBX02.***.com]

技術分享圖片

2.此時查看服務器日誌:

郵箱數據庫 DB17 的索引遇到意外異常。錯誤詳細信息: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Core.Abstraction.ComponentFailedPermanentException: Failed to read notifications, MDB: 6fbcc62c-b4ad-45a8-b512-d1daac1090b7. ---> Microsoft.Mapi.MapiExceptionMdbOffline: MapiExceptionMdbOffline: Unable to read events. (hr=0x80004005, ec=1142)

Diagnostic context:

Lid: 49384

Lid: 51176 StoreEc: 0x476

Lid: 40680 StoreEc: 0x476

Lid: 43980

Lid: 16354 StoreEc: 0x476

Lid: 38985 StoreEc: 0x476

Lid: 20098

Lid: 20585 StoreEc: 0x476

在 Microsoft.Mapi.MapiExceptionHelper.InternalThrowIfErrorOrWarning(String message, Int32 hresult, Boolean allowWarnings, Int32 ec, DiagnosticContext diagCtx, Exception innerException)

在 Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, IExInterface iUnknown, Exception innerException)

在 Microsoft.Mapi.MapiEventManager.ReadEvents(Int64 startCounter, Int32 eventCountWanted, Int32 eventCountToCheck, Restriction filter, ReadEventsFlags flags, Boolean includeSid, Int64& endCounter)

在 Microsoft.Exchange.Search.Mdb.NotificationsEventSource.<>c__DisplayClass3.<ReadEvents>b__1()

在 Microsoft.Exchange.Search.Mdb.MapiUtil.<>c__DisplayClass1`1.<TranslateMapiExceptionsWithReturnValue>b__0()

在 Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptions(IDiagnosticsSession tracer, LocalizedString errorString, Action mapiCall)

--- 內部異常堆棧跟蹤的結尾 ---

在 Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptions(IDiagnosticsSession tracer, LocalizedString errorString, Action mapiCall)

在 Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptionsWithReturnValue[TReturnValue](IDiagnosticsSession tracer, LocalizedString errorString, Func`1 mapiCall)

在 Microsoft.Exchange.Search.Mdb.NotificationsEventSource.ReadEvents(Int64 startCounter, Int32 eventCountWanted, ReadEventsFlags flags, Int64& endCounter)

在 Microsoft.Exchange.Search.Mdb.NotificationsEventSource.ReadFirstEventCounter()

在 Microsoft.Exchange.Search.Engine.NotificationsEventSourceInfo..ctor(IWatermarkStorage watermarkStorage, INotificationsEventSource eventSource, IDiagnosticsSession diagnosticsSession, MdbInfo mdbInfo)

在 Microsoft.Exchange.Search.Engine.SearchFeedingController.DetermineFeederStateAndStartFeeders()

在 Microsoft.Exchange.Search.Engine.SearchFeedingController.InternalExecutionStart()

在 Microsoft.Exchange.Search.Core.Common.Executable.InternalExecutionStart(Object state)

--- 內部異常堆棧跟蹤的結尾 ---

在 Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)

在 Microsoft.Exchange.Search.Engine.SearchRootController.ExecuteComplete(IAsyncResult asyncResult)

技術分享圖片

技術分享圖片

3.根據報錯MapiExceptionTooManyMountedDatabases及系統日誌分析,回想我們在添加新的郵箱後端後並未輸入生產密鑰,評估版郵箱默認可安裝5個數據庫。

Ps.可通過如下命令查看正在運行的Exchange 2013版本的內部版本號:

Get-ExchangeServer | fl name,edition,admindisplayversion

技術分享圖片

4.正常錄入Exchange企業版授權密鑰:

技術分享圖片

5.重啟Microsoft Exchange Information Store (Microsoft Exchange 信息存儲)服務。

技術分享圖片

6.重新嘗試添加數據庫,此時可正常添加。本次排錯操作完成。

補充:

Exchange 2013許可證類型

Exchange 2013在服務器/客戶端訪問許可證(CAL)模型中獲得許可,與Exchange 2010的許可方式類似。以下是許可證的類型:

  • 服務器許可證:必須為正在運行的服務器軟件的每個實例分配許可證。服務器許可證以兩種服務器版本銷售:標準版和企業版。

  • 客戶端訪問許可證(CAL):Exchange 2013還包含兩個客戶端訪問許可證(CAL)版本,這兩個版本稱為標準CAL和企業CAL。您可以將服務器版本與CAL類型混合搭配使用。例如,您可以使用Exchange 2013標準版的Enterprise CAL。同樣,您可以使用Exchange 2013企業版的標準CAL。


Exchange-Unable to mount database排錯