天天看點

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]

Exchange-Unable to mount database排錯

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.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)

Exchange-Unable to mount database排錯
Exchange-Unable to mount database排錯

3.根據報錯MapiExceptionTooManyMountedDatabases及系統日志分析,回想我們在添加新的郵箱後端後并未輸入生産密鑰,評估版郵箱預設可安裝5個資料庫。

Ps.可通過如下指令檢視正在運作的Exchange 2013版本的内部版本号:

Exchange-Unable to mount database排錯

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

Exchange-Unable to mount database排錯

5.重新開機Microsoft Exchange Information Store (Microsoft Exchange 資訊存儲)服務。

Exchange-Unable to mount database排錯

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排錯

繼續閱讀