www.SAMURAJ-cz.com 

26.04.2024 Oto Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Exchange 2010 - změna umístění databáze nebo logů

Středa, 15.02.2012 21:03 | Samuraj - Petr Bouška |
Z nějakého důvodu, třeba protože nám došlo místo na disku s logy a tudíž se odpojila databáze, potřebujeme přesunout umístění databáze nebo logových souborů na Exchange serveru na jiný disk (nebo do nové složky). Řešení nemusí být příliš složité a je na mnoha místech popsané. Zde uvádím pouze pro moji referenci, protože jsem to v poslední době několikrát řešil.

Základní řešení je stejné i pro Exchange server 2007. Na Exchange serveru 2010 se přidává pouze komplikace s databázovými kopiemi u DAGu (ten popisuji v minulém článku).

Pozn.: Při změně umístění souborů pro databázi dojde k dočasnému odpojení DB, takže klienti ztratí spojení.

Hned na začátku zmíním, že buď můžeme provádět přesun databáze/logů, to znamená, že se aktuální soubory uloží do nové cesty. Nebo pouze změnit konfiguraci, takže se změní cesta, ale soubory zůstanou na starém místě (a můžeme je přesunout ručně), to řeší některé krizové situace, kdy přesun selže. Po dobu přesunu se musí DB odpojit, pak se automaticky připojí (pokud ji odpojíme ručně, tak by se neměla automaticky připojit, ale mě se tak někdy stalo). Přesun databáze/logů můžeme provádět pomocí Exchange Management Console (EMC), ale při tomto použití mi přesun trval i čtyřikrát déle a objevovaly se chyby. Takže jednoznačně doporučuji využít přímo PowerShell.

Standardní přesun

Nejprve si můžeme vypsat všechny mailbox databáze, a kde mají nastaveny cesty k souborům.

[PS] C:\>Get-MailboxDatabase  | FT Name, Server, EdbFilePath, LogFolderPath
Name          Server         EdbFilePath         LogFolderPath
----          ------         -----------         -------------
DB01          EXCH01         D:\DB01\DB01.edb    E:\DB01
DB02          EXCH02         D:\DB02\DB02.edb    E:\DB02

Stejným způsobem můžeme vypsat Public Folder databáze (někdy s nimi pracujeme stejně jako se schránkami, ale zde ne).

[PS] C:\>Get-PublicFolderDatabase  | FT Name, Server, EdbFilePath, LogFolderPath
Name          Server         EdbFilePath         LogFolderPath
----          ------         -----------         -------------
DBPF1         EXCH01         d:\DBPF1\DBPF1.edb  e:\DBPF1log
DBPF2         EXCH02         d:\DBPF2\DBPF2.edb  e:\DBPF2log

Přesun databáze provedeme jednoduchým příkazem.

Pozn.: Přesun nemůžeme dělat vzdáleně, to znamená, že PowerShell musíme spustit přímo na serveru, kde jsou přesouvané soubory.

[PS] C:\>Move-DatabasePath DBPF2 -EdbFilePath f:\DBPF2\DBPF2.edb

Confirm
Are you sure you want to perform this action?
Moving database path "DBPF2".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Confirm
To perform the move operation, database "DBPF2" must be temporarily dismounted, which will make it inaccessible to all
users. Do you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Přesun logů je podobný.

[PS] C:\>Move-DatabasePath DBPF2 -LogFolderPath g:\DBPF2

Confirm
Are you sure you want to perform this action?
Moving database path "DBPF2".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Confirm
To perform the move operation, database "DBPF2" must be temporarily dismounted, which will make it inaccessible to all
users. Do you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Pokud chceme změnit nastavení bez přesouvání souborů, tak můžeme doplnit přepínač.

[PS] C:\>Move-DatabasePath DBPF2 -LogFolderPath g:\DBPF2 –ConfigurationOnly

Pokud používáme DAG (máme databázové kopie)

Složitější situace je pro mailboxové databáze, kde používáme DAG. U DAGu je důležitá podmínka, že se databázové kopie na všech serverech musí nacházet ve stejné cestě. Pokud bychom zkusili normální přesun, tak dostaneme chybu.

[PS] C:\>Move-DatabasePath DB01 -LogFolderPath g:\DB01
Move-DatabasePath is not allowed for replicated databases. For detailed steps to change the location of a replicated da
tabase, see the Help file topic, Move the Mailbox Database Path for a Mailbox Database Copy.
+ CategoryInfo          : InvalidOperation: (DB01:ADObjectId) [Move-DatabasePath], InvalidOperationException
+ FullyQualifiedErrorId : 7889D1AB,Microsoft.Exchange.Management.SystemConfigurationTasks.MoveDatabasePath

Podrobný popis je v MS článku Move the Mailbox Database Path for a Mailbox Database Copy. Zde je stručná verze. Přesun je náročnější, musíme odstranit všechny pasivní kopie databází, provést přesun a znovu kopie vytvořit (ale s původními daty, takže se nemusí znovu replikovat).

Seznam databází a jejich kopií dostaneme příkazem.

[PS] C:\>Get-MailboxDatabase | FT Name, Server, DatabaseCopies -AutoSize

Name   Server  DatabaseCopies
----   ------  --------------
DB01   EXCH01  {DB01\EXCH01,  DB01\EXCH02}
DB02   EXCH02  {DB02\EXCH02,  DB02\EXCH01}

Nejprve tedy odstraníme kopie, aby zůstala pouze jedna aktivní. Zde tedy odstraníme jednu kopii.

[PS] C:\>Remove-MailboxDatabaseCopy DB01\Exch02

Confirm
Are you sure you want to perform this action?
Removing database copy for database "DB01" on server "Exch02".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"):
WARNING: The copy of mailbox database "DB01" on server "Exch02" has been removed. If necessary, manually delete
 the database copy's files located at "E:\DB01" and "D:\DB01\DB01.edb" on that server.

Potom provedeme klasický přesun, který nyní již projde.

[PS] C:\>Move-DatabasePath DB01 -LogFolderPath g:\DB01

Confirm
Are you sure you want to perform this action?
Moving database path "DB01".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"):y

Confirm
To perform the move operation, database "DB01" must be temporarily dismounted, which will make it inaccessible to all
 users. Do you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"):y

Na serveru, kde databáze existovala (Exch01) , se vytvořila nová složka a přesunul se obsah. Na ostatních serverech, kde jsme měli kopie (Exch02), provedeme přesun starých dat ručně. To je důležité, aby se po vytvoření kopie, nemusela data znovu přesunovat po síti.

POZOR. Nyní je důležité, pokud máme servery v různých Sites, aby proběhla replikace AD, protože do té doby jeden Exchange server neví o změně cest, které jsme nastavili na druhém.

Následně znovu vytvoříme databázové kopie.

[PS] C:\>Add-MailboxDatabaseCopy –Identity DB01 –MailboxServer Exch02 -ActivationPreference 2

Na závěr je potřeba restartovat službu Microsoft Exchange Search Indexer a Microsoft Search (Exchange). Ty jsou na sobě závislé, takže při zastavování první se zastaví i druhá a při startování naopak.

net stop msftesql-Exchange
net start MSExchangeSearch
zobrazeno: 10982krát | Komentáře [0]

Autor:

Související články:

Microsoft Exchange

Jednou částí mé práce je administrace poštovního serveru od firmy Microsoft, tedy Exchange Serveru. Články začínají u verze 2003 a jak jde čas, tak pokračují dále.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách