Exchange-Unable to mount database排錯
因人員遞增及業務發展需要,需要對現階段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排錯