This is the second part of the Exchange 2013 to Exchange 2016 migration. The first part can be found here:
Now that we have 2 functional Exchange servers, it's time to migrate the data.
Migration of public folders
The first step is to migrate the public folders. In contrast to Exchange 2010 and earlier, the public folder migration from Exchange 2013 to Exchange 2016 is child's play. If you do not use public folders, you can skip this part and continue directly with the migration of the mailboxes.
There is a mailbox for public folders on the Exchange 2013 server
This mailbox contains a few public folders:
To migrate the public folders, only the mailbox for the public folders needs to be moved to the Exchange 2016 database. This can be done quickly using the Exchange Management Shell:
Get-Mailbox -PublicFolder | New-MoveRequest -TargetDatabase DB2016
The status can also be queried using the shell:
Get-MoveRequest
Depending on the size of the public folders, this can of course take some time. The following command can be used to check in which database the mailboxes for public folders are stored:
Get-Mailbox -PublicFolder | ft name,alias,servername,database
That was all. No more setting up folder replication, just move public folder mailbox. Wonderful.
Migration of mailboxes
Before the mailboxes are moved, the offline address book must be assigned to the Exchange 2016 database:
For the sake of simplicity, I take all mailboxes with me in one go, including system mailboxes. Here, however, everyone can decide for themselves at which points in time which users are moved.
The next step is to assign a name and specify the target database:
In the last dialog, you can control when the switch to the new database should take place, either directly after the move or at a selectable time:
The migration batch has been created, so wait until the move is complete:
At some point it will be done
By the way: Does anyone remember this message? A thing of the past, no restart necessary.
In the third and final part, the environment is cleaned up and Exchange 2013 is uninstalled. Coming soon.
Update: The third part can be found under the following link:
HowTo: Migration from Exchange 2013 to Exchange 2016 (Part 3)
Vielleicht hab ich es ja überlesen…
2 Tipps
Ich setze immer bei den Datenbanken vor der Migration
1. unter „Wartung“ Umlaufprotokollierung aktiv (dadurch wird der Log Ordner nicht so vollgeballert, was vor allem bei virtuellen Umgebungen ganz gut ist
2. unter „Grenzwerte“ setze alle Parameter auf unlimited. Die sind auf 2GB vor eingestellt und die Migration eines Postfachs läuft nicht durch, wenn das Limit erreicht ist.
Nach der Migration die Umlaufprotokollierung wieder ausschalten, das ist für die Performance besser.
Grenzwerte nach belieben. Ich halts da wie bei M 365. 50GB. „Senden und Empfangen verbieten“ im auf unlimited – außer man hat ne schriftliche Anweisung vom Kunden…
Hi Rainer,
Ja den Punkt 1. hätte ich auch machen sollen, nun hab ich in der VM wieder 2 große Platten weil mir C: vollgelaufen ist.
Aber demnächst kommt die DAG, dann verschwindet das wieder nach den Migrationen.
LG
PS: 2. isn guter Tipp danke
Hallo Frank,
du schreibst in deiner Anleitung ganz zum Schluss, dass die Meldung in Outlook der Vergangenheit angehört. In meinem Test bekomme ich diese aber angezeigt. Migration von Exchange 2013 nach 2016, Outlook 2016. Gibt es irgendwelche Voraussetzungen, die erfüllt werden müssen?
Hi Frank,
ich hab das gleiche Problem wie Paul im Post vor mir. Die Meldung mit dem Outlook-Neustart kommt immer noch. Warum?
Gruß
Brilo
Hallo Frank,
Super Anleitung Danke dafür. Ich habe auch so ein Problem das sich die Postfächer nicht migrieren lassen.
Von Exchange 2007 auf 2013 kein Problem. Aber von 2013 auf 2016 steht die Migration immer auf Synchronisierung.
Die Ausgabe von Get-MoveRequest ist leer. So als wenn die Migration nicht laufen würde. Das zu migrierende Postfach enthält nur ein paar Mails ist kein produktives System. Daher kann es auch nicht solange dauern. Was kann ich hier noch tun bzw. welche Commandlets helfen bei der Fehlersuche?
Gruß
Andreas
Hallo Andreas,
hast du das Migrationspostfach bereits verschoben?
Gruß, Frank
Hallo Frank,
Ist das Migrationspostfach die Voraussetzung? Nein ich habe gleich mit den Benutzern angefangen. Habe es eigentlich so gemacht wie bei Exchange 2013 auch. Was muss ich denn hier tun? Habe auch nichts vom Migrationspostfach gelesen.
Gruß
Andreas
Hallo Andreas,
es gibt ein Systempostfach mit dem Namen „Migration…“ dies musst du zuerst auf den Exchange 2016 Server verschieben, dann sollten sich auch die Benutzerpostfächer verschieben lassen.
Gruß, Frank
Hallo Frank,
Nachdem ich es gestern noch ein paar mal über das ECP versucht habe – vergeblich. Habe ich mit dem folgenden Befehl auf der Exchange Powershell die Postfächer erfolgreich migrieren können.
Get-Mailbox -Database „DB01“ | New-MoveRequest -TargetDatabase „DB02“ -BatchName „DB01toDB02“
Danke für die Unterstützung
Gruß
Andreas
Vielleicht sollte man noch erwähnen – Bei großen Datenbanken die Umlaufprotokollierung beachten.
Sonst läuft die Daten-Partition voll.. ;-)
Ja der Hinweis sollte FETT in ROT dastehen. Habe meine Log Partition mehrfach vergrößern müssen. ;) und wir haben „nur“ 1 DB mit 750GB + 1 PF DB mit 150GB.
Hallo Frank,
ich hab es nun bei einem Postfach, das sich mit dem Migrarationsassistenten nicht verschieben lässt, mit New-MoceRequest versucht und da funktioniert es. Werde eben nun die Postfächer mit der Powershell verschieben.
Gruß Ernst
Hallo Frank,
danke für deine rasche Antwort. Komme aber erst jetzt dazu zu antworten. Ich hab hier die Ausgaben für einen Benutzer, bei dem die Migration von 2007 auf 2013 funktioniert hat, aber bei der Migration von 103 auf 2016 einfach nichts passiert. Der Versuch erscheint auch nicht in den Ausgaben.
Get-MoveRequest
RunspaceId : cefc90b9-c327-465f-8116-4303687a2924
ExchangeGuid : 05f66854-323a-4e3c-9de3-435ac4eb56b8
SourceDatabase :
TargetDatabase : db
SourceArchiveDatabase :
TargetArchiveDatabase :
Flags : IntraOrg, Pull
RemoteHostName :
BatchName : MigrationService:Migration2
Status : Completed
RequestStyle : IntraOrg
Direction : Pull
IsOffline : False
Protect : False
Suspend : False
SuspendWhenReadyToComplete : False
Alias : David
ExtensionCustomAttribute1 : {}
ExtensionCustomAttribute2 : {}
ExtensionCustomAttribute3 : {}
ExtensionCustomAttribute4 : {}
ExtensionCustomAttribute5 : {}
DisplayName : David
ExternalDirectoryObjectId :
LastExchangeChangedTime :
RecipientType : UserMailbox
RecipientTypeDetails : UserMailbox
Identity : myDomain.local/MyBusiness/Users/SBSUsers/David
IsValid : True
ExchangeVersion : 0.20 (15.0.0.0)
Name : David
DistinguishedName : CN=David,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=dbGmbH,DC=local
Guid : 6906efd4-70fa-4392-9d17-bc27b15dc8a1
OrganizationId :
Id : myDomain.local/MyBusiness/Users/SBSUsers/David
OriginatingServer : Server01-DC.myDomain.local
ObjectState : Changed
Get-MoveRequest | Get-MoveReqestStatistics
RunspaceId : f020deb9-e30e-405a-aca9-e8c82923a7eb
MailboxIdentity : myDomain.local/MyBusiness/Users/SBSUsers/David
DistinguishedName : CN=David,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=dbGmbH,DC=local
DisplayName : David
Alias : David
ExchangeGuid : 05f66854-323a-4e3c-9de3-435ac4eb56b8
ArchiveGuid :
Status : Completed
StatusDetail : None
SyncStage : SyncFinished
Flags : IntraOrg, Pull
RequestStyle : IntraOrg
Direction : Pull
IsOffline : False
Protect : False
DoNotPreserveMailboxSignature : True
Priority : Normal
WorkloadType : Local
Suspend : False
SuspendWhenReadyToComplete : False
IgnoreRuleLimitErrors : False
RecipientTypeDetails : UserMailbox
SourceVersion : Version 8.3 (Build 516.0)
SourceDatabase : W2K8\First Storage Group\Mailbox Database
SourceServer : W2K8.myDomain.local
TargetVersion : Version 15.0 (Build 1263.0)
TargetDatabase : db
TargetServer : SRVEX2K13.myDomain.local
SourceArchiveDatabase :
SourceArchiveVersion :
SourceArchiveServer :
TargetArchiveDatabase :
TargetArchiveVersion :
TargetArchiveServer :
RemoteHostName :
RemoteGlobalCatalog :
BatchName : MigrationService:Migration2
StartAfter :
CompleteAfter :
EffectiveIncrementalSyncInterval : 00:15:00
ConfiguredIncrementalSyncInterval :
RemoteCredentialUsername :
RemoteDatabaseName :
RemoteDatabaseGuid :
RemoteArchiveDatabaseName :
RemoteArchiveDatabaseGuid :
TargetDeliveryDomain :
ArchiveDomain :
BadItemLimit : 10
BadItemsEncountered : 1
LargeItemLimit : 0
LargeItemsEncountered : 0
AllowLargeItems : True
QueuedTimestamp :
StartTimestamp :
LastUpdateTimestamp :
LastSuccessfulSyncTimestamp :
InitialSeedingCompletedTimestamp :
FinalSyncTimestamp :
CompletionTimestamp :
SuspendedTimestamp :
OverallDuration : 00:00:00
TotalSuspendedDuration : 00:00:00
TotalFailedDuration : 00:00:00
TotalQueuedDuration : 00:00:00
TotalInProgressDuration : 00:00:00
TotalStalledDueToContentIndexingDuration : 00:00:00
TotalStalledDueToMdbReplicationDuration : 00:00:00
TotalStalledDueToMailboxLockedDuration : 00:00:00
TotalStalledDueToReadThrottle : 00:00:00
TotalStalledDueToWriteThrottle : 00:00:00
TotalStalledDueToReadCpu : 00:00:00
TotalStalledDueToWriteCpu : 00:00:00
TotalStalledDueToReadUnknown : 00:00:00
TotalStalledDueToWriteUnknown : 00:00:00
TotalTransientFailureDuration : 00:00:00
TotalIdleDuration : 00:00:00
MRSServerName : SRVEX2K13.myDomain.local
TotalMailboxSize : 17.84 GB (19,158,568,745 bytes)
TotalMailboxItemCount : 43182
TotalArchiveSize :
TotalArchiveItemCount :
BytesTransferred : 18.05 GB (19,379,583,969 bytes)
BytesTransferredPerMinute : 0 B (0 bytes)
ItemsTransferred : 43102
PercentComplete : 100
CompletedRequestAgeLimit : 7.00:00:00
PositionInQueue :
InternalFlags : SkipFolderPromotedProperties
FailureCode :
FailureType :
FailureSide :
Message :
FailureTimestamp :
IsValid : True
ValidationMessage :
RequestGuid : 8999ac7d-c6da-4688-8ab0-a2bc8b8cada6
RequestQueue : db
MigrationMailboxGuid :
SourceEndpointGuid :
Identity : myDomain.local/MyBusiness/Users/SBSUsers/David
DiagnosticInfo :
Report :
LastFailure :
RequestExpiryTimestamp : 31.12.9999 23:59:59
ObjectState : New
Gruß Ernst
Hallo Frank,
danke für die tollen Anleitungen. Ich habe bei der Migration von 2013 auf 2016 folgendes Problem:
Es wurde zuerst eine Migration auf von 2007 auf 2013 (Postfächer und öffentliche Ordner) gemacht, hat ohne Probleme funktioniert. Nach Prüfung ob alles rund läuft, wurde der Exchange 2007 entfernt. Der Exchange 2013 läuft immer noch ohne Probleme.Nun habe ich am Wochenende eine Migration von 2013 auf 207 gemacht. Die öffentlichen Ordner wurden problemlos migriert. Wenn ich aber Postfächer migriere passiert nichts Bei der Ersten Übername wurden alle finalisiert. Wenn ich aber ein Systemkonto migriere, welches bei der Installation von 2013 angelegt wird, wird dieses migriert. Bei den Konten, die nicht gehen ist bei Gesamt zuerst eine Zahl, nach kurzer Zeit ist hier aber wieder eine 0.
Wo könnte hier der Fehler liegen?
Gruß Ernst
Hallo Ernst,
so aus dem Stehgreif kann ich das nicht beantworten, der Moverequest müsste aber Aufschluss geben:
get-moverequest | fl
get-moverequest | Get-MoveRequestStatistics | fl
Gruß, Frank
Hallo!
Der Link zum Teil 3 fehlt hier noch. https://www.frankysweb.de/howto-migration-von-exchange-2013-zu-exchange-2016-teil-3/
LG
Hi,
vielen Dank für den Hinweis. Habe den Link im Artikel ergänzt.
Gruß, Frnak