Назад | Перейти на главную страницу

Переход с Exchange 2013 на 2019 приводит к сбою целевой базы данных

возникли проблемы с переносом почтовых ящиков Exchange 2013 на Exchange 2019. Когда почтовый ящик находится на последних этапах миграции, он вызывает сбой целевого почтового ящика (База данных почтовых ящиков 2019). Журнал событий на сервере 2019 горит с ошибками и предупреждениями, сопровождающими каждый сбой. После каждого сбоя база данных будет повторно подключаться, и миграция будет успешно завершена. В этом году я сделал несколько обновлений до 2019 года, но это мой первый 2013 -> 2019 год. Остальные миграции (2010 -> 2016 -> 2019) прошли гладко. Вот все, что я пытался исправить.

  1. Перенесены почтовые ящики в 2013 год. Делал это по одному и повторно монтировал базу данных при каждом сбое.
  2. Это виртуальные машины, я удалил 2019 из домена и установил на свежий сервер. Та же проблема.
  3. Установил другой CU 2019 года (устанавливал CU6, перешел на CU3). Та же проблема
  4. Установил Exchange 2016 на другом новом виртуальном. Перенос почтовых ящиков в 2016 работает без ошибок.
  5. Мигрировал с 2016 на 2019 год, та же проблема.
  6. Мигрировал с 2019 на 2016 год, та же проблема.
  7. Позвонил в Microsoft, заплатил 500 долларов и через несколько часов никуда не попал. Они помогли вернуть все на 2013 год и стабилизировать его там.
  8. Убедитесь, что MAPI включен
  9. Установите правильные значения внутренних и внешних URL-адресов для MAPI
  10. Обыскал средство просмотра событий на предмет каких-либо неясных ссылок на выходящую из строя базу данных и ничего не нашел за пределами журнала приложений.

Вот 2 ошибки, которые не покидали меня с самого начала. Источник: MSExchangeIS Event ID 1002. Поиск этой ошибки в Интернете дал мне близкие, но не совсем точные ошибки, которые должны были быть исправлены уже в старых CU.

Необработанное исключение (System.InvalidOperationException: объект, допускающий значение NULL, должен иметь значение. В System.ThrowHelper.ThrowInvalidOperationException (ресурс ExceptionResource) в Microsoft.Exchange.Protocols.MAPI.MapiMessage.IsStreamSizeInvalid (контекст MapiContext, размер Int64) в Microsoft.Exchange.Exchange. MAPI.MapiStream.ValidateStreamSize (контекст MapiContext, размер Int64) в Microsoft.Exchange.Protocols.MAPI.MapiStream.Write (контекст MapiContext, Byte [] bytesToWrite, смещение Int32, длина Int32) в Microsoft.Exchange.Server.Storage.MapiDisp. RopHandler.WriteStreamExtended (контекст MapiContext, поток MapiStream, сегмент ArraySegment1[] dataChunks, UInt32& outputByteCount, WriteStreamExtendedResultFactory resultFactory) at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.WriteStreamExtended(IServerObject serverObject, ArraySegment1 [] dataChunks, WriteStreamExtendedResultFactory resultFactory) в Microsoft.Exchange.RpcClientAccess.Parser.RopWriteStreamExtended.InternalExecute (IServerObject serverObject, IRopHandler ropHandler, ArraySegment1 outputBuffer) at Microsoft.Exchange.RpcClientAccess.Parser.InputRop.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment1 outputBuffer) в Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops (List1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32 & outputSize, A additionalData a secondaryData, Boolean isFake, Byte [] & fakeOut) в Microsoft.Exchange.RpcClientAccess.Parser.RopDuteriver.Exe1 inputBufferArray, ArraySegment1 outputBuffer, Int32 & outputSize, Вспомогательные данные, вспомогательные данные, логическое значение isFake, Byte [] и fakeOut) в Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc. <> C__DisplayClass29_1.b__0 (MapiContext operationContext, MapiContext operationContext, MapiSession вспомогательных данных и сеанс) Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute (IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr & contextHandle, Boolean tryLockSession, String userDn, IList1 dataIn, Int32 sizeInMegabytes, ArraySegment1 вспомогательный вход, сегмент массива1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate) at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList1 ropInArraySegments, ArraySegment1 ropOut, Int32& sizeRopOut, Boolean internalAccessPrivileges, ArraySegment1 вспомогательный вход, сегмент массива1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut) at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment1 запрос, ArraySegment1 auxiliaryIn, IPoolSessionDoRpcCompletion completion) at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment1 запрос, ArraySegment`1 вспомогательный вход, завершение IPoolSessionDoRpcCompletion)
в Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer. <> c__DisplayClass48_0.b__0 () в Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch [T] (действие tryDelegate, GenericFilterDelegate filterDelegateDelegate).

Источник: идентификатор события MSExchangeIS 1013

Почтовый ящик с guid 8f656114-9b45-43ac-8073-8ddd3f7596b8 вызвал сбой или отключение ресурсов в базе данных «База данных почтовых ящиков 2» (da3e70b9-c9b1-4937-9fb1-f18324f85926).

Версия: 15.02.0464.005 Описание: InvalidOperationException: S.ThrowHelper.ThrowInvalidOperationException, MEPMAPI.MapiMessage.IsStreamSizeInvalid, MEPMAPI.MapiStream.ValidateStreamSize, MEPMAPI.MapiStream.ValidateStreamSize, MEPMAPI.MapiStream.ValidateStreamSize, MEPMAPI.MapiStream.

На первый взгляд я знаю, что означает ошибка ... Я не знаю, где ее исправить. Если вам нужна дополнительная информация или журналы событий, я предоставлю. Спасибо за помощь!

Какой номер сборки у вашего Exchange Server 2013? Основываясь на моем исследовании, Код события MSExchangeIS 1013 похоже, вызвано неподдерживаемым .NET Framework версия, официальная документация, связанная с событием 1013, предназначена для вашей справки: Почтовые ящики помещены в карантин, и базы данных неожиданно отключаются при отказе в Exchange Server 2013, и вы можете запустить следующие команды, чтобы проверить, является ли текущая версия .NET Framework вашего Exchange 2013 CU поддерживаемая / неподдерживаемая версия(В то же время вы также можете проверить это на своем сервере Exchange 2019):

$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server) $RegKey= $Reg.OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full") [int]$NetVersionKey= $RegKey.GetValue("Release") if($NetVersionKey -ge 381029) { "4.6 or later" return } switch ($NetVersionKey) { {($_ -ge 378389) -and ($_ -lt 378675)} {"4.5"} {($_ -ge 378675) -and ($_ -lt 379893)} {"4.5.1"} {$_ -ge 379893} {"4.5.2"} default {"Unable to Determine"} }