Tento článek patří do série, která vychází z mých poznámek při migraci Exchange organizace z verze 2010 na 2016. Nejde o kompletní postup, ale o popis hlavních bodů a oblastí. Příklady se týkají určitého daného designu, ale většinou se dají zobecnit. Stejně tak, i když jde o popis migrace, tak se informace hodí i pro novou instalaci či správu.
Oficiální dokumentace Exchange Server 2016.
Nastavení limitů
Před přesunem první schránky je dobré nastavit limity na velikost schránky v rámci databáze (pokud jsme to neprovedli již při vytvoření DB) a maximální velikost přenášených zpráv na Receive Connectors (pokud jsme nenastavili při vytváření konektoru), případně i organizaci a Send Connectors.
Limity na schránku
Dokumentace Manage mailbox databases in Exchange Server, Configure storage quotas for a mailbox.
Limity nastavujeme na Mailbox DB, případně můžeme upravit pro jednotlivou schránku.
Pomocí Exchange Management Shell si můžeme vypsat souhrnně nastavení všech databází.
[PS] C:\>Get-MailboxDatabase -IncludePreExchange2013 | FT Name, Server, IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota DBold MAILOLD 1 GB (1,073,741,824 bytes) 1.5 GB (1,610,612,736 bytes) 1.602 GB (1,719,664,640 bytes) DBnew MAIL1 1.5 GB (1,610,612,736 bytes) 2 GB (2,147,483,648 bytes) 2.2 GB (2,362,232,832 bytes)
A následně nastavit nové databáze dle požadavků.
Set-MailboxDatabase -Identity DBnew -IssueWarningQuota "1,5 GB" -ProhibitSendQuota "2 GB" -ProhibitSendReceiveQuota "2,2 GB"
Nastavení lze i pomocí Exchange Admin Center.
- EAC - Servers - Databases - zvolíme DB - Edit - Limits
Limity na odesílání a příjem pošty
Dokumentace Message size limits in Exchange Server.
Nastavit můžeme pro celou organizaci, na transportních konektorech, částečně na serveru nebo pro jednotlivou schránku. Nastavujeme maximální velikost odeslané nebo přijaté zprávy a maximální počet příjemců ve zprávě.
Zjištění nastavení organizace pomocí Exchange Management Shell.
[PS] C:\>Get-TransportConfig | FL MaxReceiveSize, MaxSendSize, MaxRecipientEnvelopeLimit MaxReceiveSize : 50 MB (52,428,800 bytes) MaxSendSize : 50 MB (52,428,800 bytes) MaxRecipientEnvelopeLimit : 1000
Konfigurace v Exchange Admin Center.
- EAC - Mail flow - Receive connectors - ikona tři tečky (More) - Organization transport settings - Limits
Zjištění nastavení na konektorech pomocí Exchange Management Shell.
Get-ReceiveConnector | FT Server, Name, MaxMessageSize, MaxRecipientsPerMessage Get-SendConnector | FT Name, MaxMessageSize
Příklad nastavení konektorů pomocí Exchange Management Shell.
Set-SendConnector Internet -MaxMessageSize "49 MB" Get-ReceiveConnector -Server mail1 | Set-ReceiveConnector -MaxMessageSize "49 MB" -MaxRecipientsPerMessage 1000 -MaxHeaderSize "256 kB"
Zjištění nastavení na schránce pomocí Exchange Management Shell.
[PS] C:\>Get-Mailbox bouska | FL MaxReceiveSize, MaxSendSize, RecipientLimits MaxReceiveSize : Unlimited MaxSendSize : Unlimited RecipientLimits : Unlimited
Přesun systémových schránek
Jako první se mají přesunout systémové schránky (Arbitration Mailboxes) ze starých serverů do nové databáze.
[PS] C:\>Get-Mailbox -Arbitration -Server mailold | New-MoveRequest -TargetDatabase DBnew DisplayName StatusDetail TotalMailboxSize TotalArchiveSize PercentComplete ----------- ------------ ---------------- ---------------- --------------- Microsoft Exchange Approval Assistant WaitingForJobPickup 75.64 KB (77,452 bytes) 0 Microsoft Exchange Federation Mailbox WaitingForJobPickup 73.12 KB (74,873 bytes) 0 Microsoft Exchange WaitingForJobPickup 2.253 MB (2,362,565 ... 0
Přesuny schránek - Mailbox Move
Dokumentace Manage on-premises mailbox moves in Exchange Server, Mailbox moves in Exchange Server.
Přesouvat můžeme jednu schránku pomocí Move Request nebo více pomocí dávky Migration Batch. Pomocí EAC se vždy vytváří dávka, i když přesouváme pouze jednu schránku (třeba označení mailboxu a vpravo Move Mailbox To another database).
Na Exchange 2010, když se provedla migrace schránky - Move Request, tak po jeho dokončení (Completed) se musel provést Clear or Remove Move Requests. Tím se odstranil příznak InTransit na schránce, do té doby nešlo provést jinou migraci.
Pro Exchange 2016 se v Remove-MoveRequest uvádí, že tento krok, nutný na Exchange 2010, již na novějších verzích není třeba provádět a tento příkaz slouží ke zrušení existujícího požadavku na přesun. Přesto v praxi, když proběhl jeden přesun schránky (je jedno zda Move Request nebo Migration Batch), tak nový přesun nemůžeme provést, dokud nesmažeme patřičný Move Request.
[PS] C:\>New-MoveRequest bouska -TargetDatabase DBnew Mailbox 'Bouška Petr' has a completed move request associated with it. Before you create a new move request for the mailbox, run the Remove-MoveRequest cmdlet to clear the completed move request.
Také se uvádí, že pro odstranění Exchange 2010 Move Requests musíme použít cmdlet Remove-MoveRequest
na Exchange 2010 a ne na novějším.
Příprava na přesun
Než začneme přesouvat schránky, tak si můžeme uložit určité základní informace (výstup příkazů můžeme přesměrovat do textového souboru nebo uložit do CSV), které využijeme pro plánování migrací a následné kontroly. Informace můžeme vypisovat pro vybrané schránky, databáze nebo pro všechny.
Příklady příkazů:
Get-Mailbox | FT Alias, Name, Database, ServerName -AutoSize Get-Mailbox bouska | FT Alias, Name, Database, ServerName Get-MailboxStatistics bouska | FT DisplayName, Database, TotalItemSize Get-MailboxStatistics -database DBold | FT DisplayName, Database, TotalItemSize -AutoSize Get-Mailbox -Database DBold | FT Alias, Name -AutoSize
Počet schránek v databázi a velikost DB
Před přesunem, i v jeho průběhu, se může hodit vypisovat si počet schránek, které se v jednotlivých databázích nachází. Podle toho můžeme plánovat přesuny a sledovat uvolnění DB.
[PS] C:\>Get-Mailbox -resultsize unlimited | Group-Object -Property:Database | Select-Object Name, Count | Sort-Object Name | Format-Table -Auto Name Count ---- ----- DBPFProxy 1 DBold 175 DBnew 19
Podobně nás může zajímat velikost jednotlivých databází.
[PS] C:\>Get-MailboxDatabase -Status -IncludePreExchange2013 | Select-Object Name, DatabaseSize, AvailableNewMailboxSpace | Sort-Object Name | FT -AutoSize Name DatabaseSize AvailableNewMailboxSpace ---- ------------ ------------------------ DBPF 247.9 MB (259,981,312 bytes) 87.97 MB (92,241,920 bytes) DBPFProxy 8.063 MB (8,454,144 bytes) 2.375 MB (2,490,368 bytes) DBold 115 GB (123,498,725,376 bytes) 595 MB (623,935,488 bytes) DBnew 13.38 GB (14,361,296,896 bytes) 879.2 MB (921,927,680 bytes)
Smazání Deleted Items
V některých případech se může hodit následující příkaz. Pokud ve schránce chceme před přesunem udělat pořádek a vymažeme velký obsah, tak se při přesunu bude stejně kopírovat, protože se standardně uchovávají smazané položky 14 dní. Můžeme si zobrazit, kolik položky zabírají, a smazat je.
[PS] C:\>Get-Mailbox bouska | Get-MailboxStatistics | FL *delete* DeletedItemCount : 514 TotalDeletedItemSize : 11.04 MB (11,581,031 bytes) [PS] C:\>Search-Mailbox bouska -SearchDumpsterOnly -DeleteContent
Přesun pomocí Exchange Management Shell
Můžeme využít cmdlet New-MigrationBatch
, kde je vstupem CSV soubor. Nebo cmdlet New-MoveRequest
pro přesun jedné schránky či vytvoření dávky pro více schránek. Detailní informace jsou v oficiální dokumentaci.
Přesun jedné schránky provedeme jednoduše.
New-MoveRequest bouska -TargetDatabase DBnew
EMS má oproti EAC výhodu, že můžeme použít přepínače jako CompleteAfter či StartAfter a tím řídit, kdy migrace proběhne.
Dále máme řadu cmdletů, které zobrazí informace. Můžeme si zobrazit existující Move Request pro všechny přesouvané schránky (ty se vytvoří i z dávky pro každou schránku), stejně tak Migration Batch a z nich vypsat uživatele, souhrnné statistiky (bere pouze existující (nesmazané) migrace) a statistiky pro jednotlivé schránky.
Get-MoveRequest Get-MigrationBatch Get-MigrationUser Get-MigrationStatistics Get-MigrationUserStatistics
Smazání starých požadavků na přesun
Jak jsme si uvedli, pokud chceme provádět nový přesun schránky, tak musíme smazat starý požadavek. Můžeme třeba smazat všechny dokončené.
Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest -Confirm:$false
Pozn.: Pokud smažeme Migration Batch, třeba v EAC, tak se smažou i všechny navázané Move Request.
Přesun pomocí Exchange Admin Center
EAC provádí vždy dávkový přesun Migration Batch, kde můžeme jednoduše definovat parametry, a buď ručně vybrat schránky, nebo použít CSV soubor.
- EAC - Exchange Admin Center
- Recipients - Migration
- klikneme na + (New) - Move to a different database
- přidáme schránky, které chceme přesunout
- v dalším kroku pojmenujeme dávku (batch) a zvolíme DB, kam chceme schránky přesunout
- v posledním kroku volíme, na jakou adresu se zašle report o dokončení, můžeme nechat automatické zahájení a ukončení dávky nebo nastavit ručně
Pozn.: Přesun schránky probíhá jako standardní transport, takže se k celému obsahu vytváří transakční logy. Proto je třeba při migraci myslet na to, aby se nám nezaplnil disk pro tyto logy.
Pokud celá dávka nedoběhne, například když je na nějaké schránce chyba, tak můžeme znovu spustit (Resume) pro nedokončené schránky. Statistiky pro jednotlivé schránky zobrazíme, když vybereme dávku a na pravé straně v sekci Mailbox status klikneme na View Details. Zde můžeme nějakou schránku odstranit z dávky, ale přidat novou bohužel nelze.
Přesun Discovery Search Mailbox
Po přesunu všech systémových i uživatelských schránek, zůstala v jedné staré databázi ještě schránka DiscoverySearchMailbox. O té se většina migračních návodů nezmiňuje. Jde o schránku pro ukládání výsledků hledání In-Place eDiscovery. Našel jsem různé informace, že pro Exchange 2016 není třeba či opačně je nutná, a buď se má migrovat nebo vytvořit znovu (Delete and re-create the default discovery mailbox in Exchange). Radši jsem provedl migraci. Nějaké další info Discovery Mailbox In Exchange 2010, Migrate Discovery Search Mailbox from Exchange 2010 to Exchange 2013?.
[PS] C:\>Get-Mailbox -RecipientTypeDetails DiscoveryMailbox | FT Name, Database Name Database ---- -------- DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852} DBold [PS] C:\>New-MoveRequest DiscoverySearchMailbox* -TargetDatabase DBnew DisplayName StatusDetail TotalMailboxSize TotalArchiveSize PercentComplete ----------- ------------ ---------------- ---------------- --------------- Discovery Search Mailbox WaitingForJobPickup 76.48 KB (78,319 bytes) 0
Průběh přesunu schránek - jak postupovat při migraci
Obecně může přesun schránky probíhat za provozu. Ve chvíli, kdy se dokončí, tak je uživatel upozorněn, že má restartovat Outlook. Pak je potřeba, aby se stáhnul Autodiscover s novými informacemi. V řadě případů to proběhlo bez problémů automaticky, ale ne vždy. Podle informací záleží na replikaci AD DS a kešování Autodiscover. Lepší je patrně dokončovat migraci schránky mimo pracovní dobu.
Pro problém, kdy Autodiscover nevrací správné údaje, jsem nalezl informaci v článku Troubleshooting connection issues from users migrated from Exchange 2010 to Exchange 2013/2016 , že je možno provést restart aplikačního poolu na IIS (na všech Exchange serverech). To okamžitě vyřešilo problém přístupu uživatele na přesunutou schránku.
Restart-WebAppPool MSExchangeAutodiscoverAppPool
Offline Address Books (OAB)
Dokumentace Email addresses and address books in Exchange Server, Offline address books in Exchange Server.
- Global Address List (GAL) - hlavní seznam všech příjemců v organizaci, standardně Default Global Address List
- Address List - dynamická podmnožina GALu, která obsahuje skupinu příjemců, třeba všechny distribuční skupiny
- Offline Address Book (OAB) - skupina Address Lists, kterou si mohou uživatelé stáhnout a použít, když jsou offline, standardně obsahuje Default Global Address List
OAB bylo v Exchange 2013 vylepšeno, takže je podporována pouze verze 4, distribuce pouze web-based, generování probíhá v určené Arbitration schránce a ne určeném serveru. Proto se generování OAB nemusí přesouvat na jiný server, jako při migraci na Exchange 2010. Přesune se pouze Organization Mailbox SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
.
Nastavení OAB
Při instalaci prvního Exchange 2016 se vytvoří nový OAB (má v názvu Ex2013, i když jde o verzi 2016) verze 4. Všechny OAB v organizaci si můžeme vypsat.
[PS] C:\>Get-OfflineAddressBook Name Versions AddressLists ---- -------- ------------ Default Offline Address List {Version4} {\Default Global Address List} Default Offline Address List (Ex2013) {Version4} {\Default Global Address List}
K jednotlivým databázím schránek můžeme přiřadit OAB, který schránky v ní použijí. Pokud OAB přiřazený nemáme, tak se použije nejnovější verze. Pokud máme velkou organizaci a vytvořené speciální OAB, které neobsahují vše, tak se před migrací schránek doporučuje nastavit na nové DB požadované OAB. Obecně se doporučuje mít OAB nastaveno, aby bylo jasné, jaký OAB se využije.
[PS] C:\>Get-MailboxDatabase -IncludePreExchange2013 | FT Name, OfflineAddressBook Name OfflineAddressBook ---- ------------------ DBold \Default Offline Address List DBnew
V běžné firmě může nový OAB obsahovat to samé jako starý a můžeme rovnou nastavit použití nového OAB. Buď na jednotlivé DB, nebo na všechny (v příkladu pouze DB na nových serverech).
Set-MailboxDatabase DBnew -OfflineAddressBook "Default Offline Address List (Ex2013)" Get-MailboxDatabase | Set-MailboxDatabase -OfflineAddressBook "Default Offline Address List (Ex2013)"
Vypsat si můžeme samozřejmě i existující GALy a Address Listy.
Get-GlobalAddressList Get-AddressList
Generování OAB
Generování OAB řídí Mailbox Assistant se jménem OABGeneratorAssistant, který běží pod službou Microsoft Exchange Mailbox Assistants. Probíhá v určeném Arbitration Mailbox, který má ve vlastnosti PersistedCapability hodnotu OrganizationCapabilityOABGen
. Standardně probíhá generování OAB každých 8 hodin. Outlook klient si defaultně stahuje OAB každých 24 hodin nebo můžeme vyvolat manuálně.
Změnit plánované generování OAB můžeme podle postupu Change the offline address book generation schedule in Exchange Server. Generování (aktualizaci) OAB můžeme vyvolat manuálně pomocí cmdletu Update-OfflineAddressBook, Use the Exchange Management Shell to update offline address books. Soubory OAB se ukládají na Exchange serveru do složky %ExchangeInstallPath%ClientAccess\OAB\<OAB GUID>
.
Komentáře
Zatím tento záznam nikdo nekomentoval.