Копирование файлов exchange 16
Данная статья представляет из себя шпаргалку по работе с почтовой базой Exchange на примере версий 2010, 2013 и 2016.
Работа с почтовой базой несет в себе потенциальную опасность потери всей информации. Прежде, чем начать работу, стоит убедиться в наличии актуальной резервной копии.
Просмотр содержимого базы
1. Список элементов базы можно увидеть командой в Powershell:
Get-MailboxStatistics -Database "Base1"
* где Base1 — имя базы данных, содержимое которой необходимо посмотреть.
Важно отметить, что это могут быть уже перенесенные элементы.
2. Список действующих ящиков, находящихся в базе:
3. Размер почтовых ящиков в базе:
Get-Mailbox -Database Base1 | Get-MailboxStatistics | sort TotalItemSize -descending | ft DisplayName, TotalItemSize, ItemCount
4. Список всех элементов в базе и занимаемый ими размер:
Get-MailboxStatistics -Database Archive | Sort TotalItemSize -descending | ft DisplayName, TotalItemSize
5. Посмотреть системные почтовые ящики:
Get-Mailbox -Arbitration | FL Name, DisplayName, ServerName, Database, AdminDisplayVersion
6. Установленные квоты
На все базы данных:
Get-MailboxDatabase | fl Name, *Quota
На конкретную базу:
Get-MailboxDatabase Base1 | fl Name, *Quota
Дефрагментация
Необходима для освобождения пространства, занимаемого файлом базы. Это связано с тем, что при удалении элементов, сама база не уменьшается.
Посмотреть, какое количество пространства удастся высвободить можно командой:
Get-MailboxDatabase -Status | ft Name, DatabaseSize, AvailableNewMailboxSpace
Name DatabaseSize AvailableNewMailboxSpace
---- ------------ ------------------------
Base1 686.4 GB 286.4 MB
Base2 170 GB 69.42 GB
* где DatabaseSize — текущий размер базы; AvailableNewMailboxSpace — пространство, которое можно освободить при дефрагментации.
Саму оптимизацию можно выполнить двумя способами:
- Офлайн дефрагментация.
- Создание новой базы с последующим переносом в нее всех элементов; после, базу можно отключить и перенести или удалить. Это более надежный вариант, так как не приведет к большому простою и позволит выполнить работу постепенно.
В текущем подразделе мы рассмотрим первый способ.
Офлайн дефрагментация приведет к отключению почтовой базы и, как следствие, приостановку работы почтовых ящиков, которые в нем содержатся.
Если используется база на основе группы DAG, сначала необходимо удалить неактивную копию.
Операция дефрагментации выполняется из Exchange Management Shell с применением утилиты eseutil.
Сначала переходим в каталог хранения базы данных, например:
cd C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Base1
Выполняем команду для отмонтирования базы:
* напомним, что это приведет к отключению базы и приостановки обслуживания.
eseutil /d Base1.edb /t \\share\base1_tmp.edb
* где опция d — имя файла базы; t — путь до временного файла на момент дефрагментации, если его не указать, временный файл будет создан в каталоге с основным файлом и, в таком случае, нужно убедиться, что на диске достаточно свободного места (110% от размер дефрагментируемого файла).
После завершения операции, снова подключаем базу:
Перемещение файла базы в другую папку
Если используется база на основе группы DAG, сначала необходимо удалить неактивную копию.
Вытаскиваем GUID для нужной базы:
Get-MailboxDatabase Base1 | fl Name, Guid
Используя GUID, перемещаем базу:
На вопросы консоли отвечаем утвердительно — Y.
Перемещение почтовых ящиков между базами
Переместить все ящики
Для переноса почтовых ящиков из Base1 в Base2 выполняем следующую команду в Powershell:
Get-Mailbox -Database "Base1" | New-MoveRequest -TargetDatabase "Base2"
После не забываем перенести системные почтовые ящики, если они есть в базе:
Get-Mailbox -Database "Base1" -Arbitration | New-MoveRequest -TargetDatabase "Base2"
Посмотреть статус перемещения можно командой:
Переместить один ящик
Для перемещения одного единственного ящика в новую базу, вводим команду:
* в данном примере мы перенесем почтовые данные пользователя user в базу Base7.
Посмотреть статус перемещения можно командой:
Освобождение пространства базы после перемещения ящиков
Мы заметим, что после перемещения ящиков, размер базы не изменился. Дело в том, что его полное удаление из базы произойдет после того, как пройдет количество дней, выставленное в параметре MailboxRetention. Посмотреть значение для каждой базы можно командой:
Get-MailboxDatabase | Select Name, MailboxRetention
Если мы не хотим ждать, меняем данное значение:
После нужно сделать дефрагментацию базы. Несмотря на указание 0, нужно немного подождать применения настроек.
Удаление копии базы в DAG-группе
Данное действие не приведет к удалению самих файлов, имеющих отношение к базе. Если необходимо полностью очистить сервер от данных, после удаления копии базы, вручную удаляем ее файлы.
Сначала проверяем, что для базы отключено ведение циклического журнала. После можно переходить к удалению.
Графический интерфейс
Конфигурация организации - Почтовый ящик - вкладка Управление базой данных - выбрать базу и в нижней части окна удалить не подключенную копию:
и подтверждаем желаемое действие.
Powershell
Remove-MailboxDatabaseCopy -Identity Base1\Server1 -Confirm:$False
* где Base1 — имя базы; Server1 — имя сервера, на котором находится удаляемая копия.
Включение активной копии базы в DAG
В группе DAG только одна копия базы может быть активной. Таким образом, может возникнуть необходимость переключиться на другой сервер. Это делается в графическом интерфейсе или командной консоли Powershell.
Графический интерфейс
Конфигурация организации - Почтовый ящик - вкладка Управление базой данных - ставим указатель на нужную группу баз:
Ниже кликаем правой кнопкой по базе, которая находится на нужном нам сервере и выбираем Включить копию базы данных. :
В появившемся всплывающем окне выбираем параметр для автоматического переопределения активного сервера или оставляем в положении «Нет».
Powershell
Для смены активного сервера базы из группы DAG вводим:
Move-ActiveMailboxDatabase DB5 -ActivateOnServer SERVER15 -MountDialOverride:None -Confirm:$false
* где ActivateOnServer указываем на целевой сервер, на котором должна быть активирована копия базы; MountDialOverride — параметр для автоматического подключения базы (возможны варианты: None, Lossless, GoodAvailability, BestAvailability, BestEffort); Confirm — требование от администратора вводить подтверждение перемещения активной копии (необходимо отключать для скриптов). В данном примере мы перемещаем активную копию базы DB5 на сервер SERVER15 без переопределения автоматического переноса сервера; консоль не потребует подтвердить наши намерения.
Отключение или включение ведения циклического журнала
Графический интерфейс
Конфигурация организации - Почтовый ящик - вкладка Управление базой данных - кликаем правой кнопкой по нужной базе - Свойства:
На вкладке Обслуживание снимаем галочку Включить циклическое ведение журнала (или ставим, если нужно его включить):
Powershell
Ручное удаление файлов журанала
Данное действием может понадобиться для освобождения дискового пространства, которое занимается журналами.
Запускаем Exchange Management Shell. Переходим в каталог хранения базы данных, например:
cd C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Base1
* в данном примере подразумевается, что база находится в каталоге C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Base1.
Находим файл, в котором находится информация из контрольной точки фиксации журналов:
Результат будет, примерно, следующим:
Теперь узнаем последний файл журнала, действия из которого были занесены в базу Exchange:
Мы получим информацию о фиксации журналов — нас интересует Checkpoint
.
LastFullBackupCheckpoint: (0x0,0,0)
Checkpoint: (0x 561299 ,8,16)
FullBackup: (0x0,0,0)
.
* в данном примере для нас важно значение 561299.
. теперь, когда мы получили значение Checkpoint, мы знаем имя файла, который был последним зафиксирован (его информация уже в базе данных). Находим в проводнике файл, в названии которого есть наше значение Checkpoint:
Теперь можно удалять все файлы журналов (их название начинается с E<номер> и это txt-файлы), которые старше найденного нами файла.
Переиндексация базы (восстановление поиска или репликации)
Данную процедуру необходимо выполнять, если наблюдаются проблемы с поиском в почте или репликации DAG-копии. Выполняется в Exchange Management Shell.
Одна копия базы
Переходим в каталог Exchange:
cd "\program files\microsoft\exchange server\v14\scripts"
При использовании DAG
Смотрим, у какой копии базы произошел сбой индекса:
Get-MailboxDatabaseCopyStatus -Identity DAG01 | Format-List Name, ContentIndexState
Name : DAG01\Server1
ContentIndexState : Failed
Name : DAG01\Server2
ContentIndexState : Healthy
Активируем копию базы на сервере с исправным индексом:
Move-ActiveMailboxDatabase DAG01 -ActivateOnServer Server2 -MountDialOverride:None
Запускаем копирование каталога с исправного сервера:
Update-MailboxDatabaseCopy -Identity "DAG01\Server1" -SourceServer Server2 -CatalogOnly
Делаем активной копию базы на старом сервере:
Move-ActiveMailboxDatabase DAG01 -ActivateOnServer Server1 -MountDialOverride:None
Перенос отключенных почтовых ящиков между базами
В данном примере мы рассмотрим ситуацию, когда у нас есть база от старого или другого сервера exchange, и мы должны перенести из нее все почтовые ящики в новую базу. Предположим, что база DAG01 — старая база, а DAG02 — новая.
Получаем список отключенных почтовых ящиков:
Get-MailboxDatabase -Identity "DAG01" | Get-MailboxStatistics | where | ft DisplayName,Identity,DisconnectReason
Необходимо подключить почтовый ящик к существующему пользователю Active Directory без почтового ящика. Имя пользователя должно совпадать с именем почтового ящика, иначе почтовый ящик будет переименован:
Connect-Mailbox -Identity "ca97f561-9b0b-4a83-a177-6f6261bdaa8c" -Database "DAG01" -User "Иванов Иван Иванович"
* где identity — Identity или DisplayName почтового ящика; user — аккаунт или DisplayName пользователя домена.
Для подключения почтового ящика к пользователю имеющему почтовый ящик, необходимо сначала отключить его текущий почтовый ящик:
Disable-Mailbox -Identity "Иванов Иван Иванович"
Теперь можно перенести почтовый ящик в другую базу:
New-MoveRequest -Identity [email protected] -TargetDatabase "DAG02" -ArchiveTargetDatabase "DAG02" -BadItemLimit 10
Для перемещения нескольких пользователей сразу необходимо создать задание на перемещение с указанием CVS файла содержащего имена пользователей:
В предпочитаемой архитектуре Майкрософт для Exchange Server используется концепция, известная как Exchange защита данных. Защиту собственных данных Exchange обеспечивают нативные функции Exchange, которые служат для защиты данных почтового ящика и заменяют традиционные функции резервного копирования. Чтобы создать резервные копии, можно воспользоваться подключаемым модулем Exchange для системы архивации данных Windows Server (WSB). Этот модуль позволяет создавать резервные копии данных Exchange с помощью службы теневого копирования томов (VSS), но требует установки WSB.
Подключаемый модуль WSBExchange.exe запускается в качестве службы, которую можно определить как серверное расширение Microsoft Exchange для системы архивации данных Windows Server. (Краткое название службы WSBExchange.) Эта служба автоматически устанавливается и настраивается на ручной запуск на всех серверах почтовых ящиков. Этот модуль позволяет системе архивации данных Windows Server создавать резервные копии Exchange с помощью службы теневого копирования томов.
Прежде чем приступить к резервному копированию данных Exchange с помощью системы архивации данных Windows Server, рекомендуется ознакомиться с приведенной ниже информацией о функциях и параметрах этого подключаемого модуля.
Резервное копирование, которое выполняется с помощью WSB, выполняется на уровне громкости, и единственный способ выполнить резервное копирование или восстановление на уровне приложений — это выбрать весь том. Чтобы сделать базу данных и ее поток журналов, необходимо сделать личные записи всего тома, содержащего базу данных и журналы, а не только отдельные папки. Вы не сможете сделать личные данные без хранения всего тома, содержащего данные.
Необходимо запустить систему архивации данных локально на сервере, для которого выполняется архивация. Невозможно создавать удаленные архивы службы теневого копирования томов с помощью подключаемого модуля. В системе архивации данных Windows Server и подключаемом модуле отсутствует функция удаленного администрирования. Однако удаленно управлять архивацией можно с помощью служб удаленных рабочих столов (или служб терминалов).
Архив можно создать на локальном диске или в удаленном общем сетевом ресурсе.
Можно создавать только полные резервные копии. Усечение журналов выполняется только после успешного создания с помощью VSS полного архива тома или папок, содержащих базу данных Exchange.
При восстановлении данных можно восстанавливать только данные Exchange. Данные можно восстанавливать как в исходное местоположение, так и в другое место. При восстановлении данных в исходное расположение система архивации данных Windows Server и подключаемый модуль автоматически выполняют процесс восстановления, в том числе отключают существующую базу данных и воспроизводят журналы в восстановленной базе данных.
Базы данных восстановления Exchange (RDB) не подлежат восстановлению. Чтобы воспользоваться RDB, необходимо восстановить данные в другое расположение, а затем вручную скопировать или переместить восстановленные данные из этого расположения в структуру папки RDB.
При восстановлении Exchange данных необходимо восстановить все базы данных. Невозможно восстановить отдельную базы данных.
Восстановление голого металла поддерживается при использовании WSB. Однако рекомендуемый метод восстановления для Exchange серверов заключается в восстановлении Exchange сервера и восстановлении данных. Если вы используете сторонное приложение резервного копирования (например, не microsoft), поддержка восстановления голого металла Exchange может быть доступна у поставщика резервных приложений.
В следующей таблице описывается поддержка вариантов резервного копирования и восстановления, доступных для Exchange Server с WSB.
Если. | Затем. |
---|---|
Back up the full server. | Резервное копирование с помощью службы VSS будет выполнено без усечения журналов транзакций для баз данных на сервере. |
Выполните настраиваемую резервную копию и выберите один или несколько томов для резервного копирования. | Резервное копирование с помощью службы VSS будет выполнено с усечением журналов транзакций для баз данных в выбранных томах после завершения процесса. |
Выполните настраиваемую резервную копию и выберите одну или несколько папок для резервного копирования. | Резервное копирование с помощью службы VSS будет выполнено с усечением журналов транзакций для баз данных. Однако восстановление резервных копий сведется к восстановлению отдельных файлов, так как параметр восстановления на уровне приложения будет недоступен. |
Дополнительные сведения о резервном копировании данных Exchange с помощью системы архивации данных Windows Server см. в разделе Использование системы архивации данных Windows Server для резервного копирования в Exchange.
Дополнительные сведения о восстановлении данных из резервной копии, созданной с помощью системы архивации данных Windows Server, см. в разделе Восстановление резервной копии данных Exchange с помощью системы архивации данных Windows Server.
По истечении срока хранения отключенного почтового ящика такой ящик удаляется безвозвратно.
Подключение отключенного ящика:
Открывшаяся страница показывает отключенные почтовые ящики по конкретному серверу.
Отключенного почтового ящика может не быть в списке в двух случаях:
Базы данных.
Восстановление базы данных
Восстановление БД из резервной копии довольно тривиальная операция.
В WSB выбрать пункт Recovery, выбрать в открывшемся календаре дату, на которую хотим восстановить БД (при условии, что в эту дату была резервная копия. Доступные даты выделены полужирным шрифтом).
Далее выбираем куда восстанавливаем и жмём восстановить.
Dial Tone Recovery
К примеру: в 9 утра упала БД объёмом 1 ТБ. Понятно, что БД в 1 терабайт быстро не восстановить, надо подготовить диски, надо вспомнить как это делается и само восстановление 1 ТБ информации быстро не выполняется. Dial Tone Recovery позволяет нам восстановить работу сервиса без восстановления информации.
Один из вариантов: создать новую БД и перекинуть туда пользователей. Пока восстанавливаем БД. У пользователей будут пустые ящики, но они смогут работать.
После восстановления потерянной БД мы перекидываем пользователей обратно и выполняем слияние баз данных.
Как это делается:
Создаём новую БД:
Ждём пока БД создастся и примонтируется.
Но у пользователей в конфигурации прописано что их почтовые ящики находятся в БД, которая сейчас недоступна. Переместить почтовые ящики из одной БД в другую мы не можем, т.к. исходная БД с ящиками не доступна.
Как прописать в конфигурации пользователей что их ящики находятся в другой БД:
Выбираем все почтовые ящики, находящиеся в исходной БД, которая потеряна и для каждого почтового ящика правим параметр Database, указав новую базу данных.
В этом случае, с точки зрения конфигурации, Exchange пройдётся по всем почтовым ящикам из потерянной БД (MailboxDB) и заменит в них информацию о местонахождении почтового ящика на новую базу данных (TempDB).
Клиенты смогут подключиться к ящикам. Да, там будет пусто, но они смогут работать.
После того, как перепрописали в конфигурации местонахождение почтовых ящиков на сервере необходимо перезапустить службу Microsoft Exchange Information Store. Иначе пользователи будут по-прежнему пытаться подключиться к старой БД:
Теперь восстанавливаем упавшую базу данных.
Не забываем перезапустить службу Mailbox Information Store.
Слияние баз данных
Перенос писем, которые пользователи создали за время восстановления основной БД начинается с того, что необходимо удалить временную базу данных.
Необходимо помнить, что удаление базы данных через шелл, либо через web не удаляет файлы базы данных, БД удаляется только в конфигурации.
Для переноса новых писем в основную БД нам необходим только сам файл с базой данных (DBName.edb).
Далее необходимо создать специальную служебную базу данных Recovery. Такая БД нужна исключительно для того, чтобы из неё что-то достать:
Восстанавливаем с помощью специального командлета:
Отслеживание информации по восстановлению:
Иногда случается так. Что процесс восстановления зависает. В таком случае достаточно перезапустить процесс Microsoft Exchange Mailbox Replication.
После восстановления всех писем БД Recovery можно отмонтировать и удалить, она больше не нужна.
Этот метод бывает полезен когда необходимо восстановить определённые письма месячной давности (при условии, что есть бэкап) без восстановления всей БД и прозрачно для пользователей.
Восстановление сервера
- Сертификат
- Логи (транспортные и системные, прочие)
Процедуру восстановления сервера можно проводить на любом оборудовании, не обязательно чтобы сервер был идентичен старому. Но версия операционной системы должна быть та же самая, что и на старом сервере!
Порядок восстановления сервера Exchange
Ещё раз: необходимо обязательно сбросить УЗ компьютера в AD перед вводом нового сервера в домен! Иначе придётся строить сервер Exchange с нуля.
Для установки сервера Exchange в режиме восстановления нам необходимо в PowerShell попасть на диск с дистрибутивом и запустить установку:
Теперь установщик инсталлирует нам сервер Exchange ровно в той конфигурации, которая была на старом сервере. Это возможно за счёт того, что мы подготовили сервер с тем же именем и сбросили УЗ компьютера в AD.
Процедура Recovery, при условии, что всё сделано правильно, достаточно безопасна и не ведёт к потере данных.
Первое подключение к ecp достаточно долгое, т.к. в iis идёт инициализация пулов…
Компонент Windows Server Backup необходимо устанавливать отдельно (по умолчанию он не проинсталлирован). Установить его возможно через "Диспетчер серверов". Вызываем мастер добавления ролей и компонентов, пункт меню "Добавить роли и компоненты". Далее следуя подсказкам мастера производим установку.
В английской редакции, компонент называется "Windows Server Backup"
Когда компонент установится его можно вызвать через меню "Средства" диспетчера серверов либо меню "Пуск", так-же компонент будет доступен через панель управления в разделе "Администрирование".
Запускаем "Однократную архивацию" (так-же можно настроить архивацию по расписанию)
У меня база Exchange размещена на отдельном диске. Я буду архивировать ТОЛЬКО базу поэтому выбираю "настраиваемую" конфигурацию архивирования. Так-же можно выполнить Backup всего сервера.
Выбираю полный Бекап базы Exchange сервера (для автоматического усечения транзакционных логов)!
Задаем путь где будут хранится наши бекапы базы Excheng-а
Backup Exchange Server-а прошел успешно. Если посмотреть папку в которой хранились транзакционные логи мы увидим что она значительно уменьшилась в размерах, файлов с логами стало меньше.
Архив базы данных Exchange Server-а рекомендуется размещать на специально выделенном, отдельном ресурсе. Не храните Backap-ы на том же сервере на котором у вас работает Exchange!
Если заглянуть в консоль Exchange PowerShell Get-MailboxDatabase -Status мы увидем информацию относительно произведенных бекапов (параметр Last Backup и другие).
Читайте также: