В данной статье поговорим об использовании PowerShell для управления базами данных Exchange. Рассмотрим как можно их создать, переместить, отключить и подключить. В данной статье будет идти речь о Exchange 2013, хотя многое из этого можно будет применить и к 2007 и к 2010 Exchange. Следует заметить, что в Exchange 2013 отсутствует понятие базы данных публичных папок.
Просмотр информации о существующих базах данных Exchange
Для начала можно посмотреть список всех командлетов, которые позволяют управлять базами данных в Exchange.
1 |
Get-Command *database* |
Для просмотра информации о существующих базах данных используем командлет Get-MailboxDatabase
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[PS] C:\Windows\system32>Get-MailboxDatabase Name Server Recovery ReplicationType ---- ------ -------- --------------- Mailbox Database 1 LON-MBX1 False None Mailbox Database 2 LON-MBX2 False None Research LON-MBX1 False None [PS] C:\Windows\system32>Get-MailboxDatabase Research Name Server Recovery ReplicationType ---- ------ -------- --------------- Research LON-MBX1 False None [PS] C:\Windows\system32>Get-MailboxDatabase Research -Status | fl RunspaceId : 6143502d-69e4-4380-b23d-c183f4ef6617 JournalRecipient : MailboxRetention : 30.00:00:00 <...> <Вывод пропущен всего около 110 свойств базы данных> <...> OriginatingServer : LON-DC1.Adatum.com IsValid : True ObjectState : Changed |
Параметр Status служит для просмотра более полной информации, включая размер базы данных, атрибуты BackupInProgress, Mounted, OnlineMaintenanceInProgress. Если у вас есть сервера баз данных более старых версий чем 2013, то для просмотра баз данных на них используем параметр IncludePreExchange2013.
1 2 3 4 5 6 7 |
[PS] C:\Windows\system32>Get-MailboxDatabase -status | Select Identity,DatabaseSize Identity DatabaseSize -------- ------------ Mailbox Database 1 264.1 MB (276,889,600 bytes) Research 264.1 MB (276,889,600 bytes) Mailbox Database 2 264.1 MB (276,889,600 bytes) |
Для просмотра почтовых ящиков находящихся в базе данных Exchange используем следующую команду
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[PS] C:\Windows\system32>get-mailbox -Database Research Name Alias ServerName ProhibitSendQuota ---- ----- ---------- ----------------- Josh Bailey Josh lon-mbx1 Unlimited Allie Bellew Allie lon-mbx1 Unlimited Raffaella Bonaldi Raffaella lon-mbx1 Unlimited Chloe Brussard Chloe lon-mbx1 Unlimited Dita Burianova Dita lon-mbx1 Unlimited Mathew Charles Mathew lon-mbx1 Unlimited Jeroen Cool Jeroen lon-mbx1 Unlimited Patricia Doyle Patricia lon-mbx1 Unlimited Anil Elson Anil lon-mbx1 Unlimited Viggo Forde Viggo lon-mbx1 Unlimited Cesar Garcia Cesar lon-mbx1 Unlimited Maxim Goldin Maxim lon-mbx1 Unlimited |
Создание базы данных
Для создания базы данных используется команда New-MailboxDatabase
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[PS] C:\Windows\system32>New-MailboxDatabase -Name CompanyAdministration -Server LON-MBX2 -EdbFilePath 'C:\Program Files \Microsoft\Exchange Server\V15\Mailbox\CompanyAdministration\CompanyAdministration.edb' -LogFolderPath 'C:\Program Files \Microsoft\Exchange Server\V15\Mailbox\CompanyAdministration\' WARNING: Active Directory couldn't be updated in Swindon site(s) affected by the change to 'CompanyAdministration'. It won't be completely usable until after Active Directory replication occurs. WARNING: Active Directory couldn't be updated in Swindon site(s) affected by the change to 'CompanyAdministration'. It won't be completely usable until after Active Directory replication occurs. Name Server Recovery ReplicationType ---- ------ -------- --------------- CompanyAdministration LON-MBX2 False None WARNING: Please restart the Microsoft Exchange Information Store service on server LON-MBX2 after adding new mailbox databases. |
При создании обычной базы данных обязательны два параметра Name и Server, однако рекомендую так же задать местоположение файла Edb и логов.
Однако при создании базы данных восстановления применяется обязательный параметр Recovery.
Изменение параметров баз данных
Для изменения параметров базы данных используется командлет Set-MailboxDatabase. Его можно использовать отдельно для установки параметров конкретных баз данных. Пример ниже устанавливает циклическое ведение журнала.
1 2 3 |
[PS] C:\Windows\system32>Set-MailboxDatabase -Identity Research -CircularLoggingEnabled $true WARNING: Circular logging parameter change will not be applied on this database before it is remounted. Dismount and remount database "Research" in order to apply this parameter change. |
Обратите некоторые изменения параметров базы данных требуют, например, отключения и подключения базы данных. Об этом чуть ниже.
А можно использовать Set-MailboxDatabase совместно с Get-MailboxDatabase и тогда можно легко изменять параметры множества баз данных. Пример ниже устанавливает для всех БД параметры очистки удаленных сообщений и удаленных почтовых ящиков из базы данных.
1 |
[PS] C:\Windows\system32>Get-MailboxDatabase | Set-MailboxDatabase -MailboxRetention 40.00:00:00 -DeletedItemRetention 40.00:00:00 |
Отключение и подключение базы данных Exchange
В некоторых ситуациях, таких как операции обслуживания, необходимо временно отключать базу данных. А после выполнения данных операций заново подключать базу данных.
Для этих операций используются два командлета Dismount-Database и Mount-Database. Первый отключает, а второй подключает ранее отключенную базу данных.
1 2 3 4 5 6 7 |
[PS] C:\Windows\system32>Dismount-Database Research Confirm Are you sure you want to perform this action? Dismounting database "Research". This may result in reduced availability for mailboxes in the database. [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): y [PS] C:\Windows\system32>Mount-Database Research |
Обратите внимение Dismount-Database требует подтверждения.
Перенос файлов базы данных
Увы перенос файлов базы данных возможен только в пределах одного сервера, для этого используется командлет Move-DatabasePath
1 2 3 4 5 6 7 8 9 10 11 12 |
[PS] C:\Windows\system32>Move-DatabasePath -Identity CompanyAdministration -EdbFilePath c:\companyadministration\company Administration.edb -LogFolderPath c:\CompanyAdministration\ Confirm Are you sure you want to perform this action? Moving database path "CompanyAdministration". [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): y Confirm To perform the move operation, database "CompanyAdministration" 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 |
При выполнении данной команды будет запрощено два подтверждение, одно на выполнение операции, второе на временное отключение базы данных.
Хотя у этого командлета есть несколько ограничений. Вот вырезка из справки:
- Выполнение этого командлета завершается ошибкой, если в данный момент выполняется резервное копирование базы данных.
- Если указанная база данных включена во время выполнения этого командлета, она отключается автоматически и затем подключается заново, оказываясь недоступной для пользователей во время отключения.
- Этот командлет можно выполнить только на сервере почтовых ящиков. В редких случаях этот командлет можно выполнить на рабочей станции администратора при использовании параметра ConfigurationOnly со значением $true.
- Этот командлет не может быть запущен на реплицированных базах данных почтовых ящиков. Чтобы удалить путь реплицированной базы данных, сначала необходимо удалить все реплицированные копии и затем выполнить операцию удаления. После завершения операции удаления можно добавить копии в базу данных почтовых ящиков.