Посмотреть как работает DPM в связке с Exchange 2010
Практическая заметка, как используя сервис Data Protect Manager on Server 2012 R2 Std
осуществлять резервное копирование почтовых баз данных почтового сервера Exchange 2010
. Как восстанавливать базу, почтовые ящики, письма из почтовых ящиков.
План:
1) Server 2012 R2 (AD,DNS,DHCP)
Hostname: srv-dc.polygon.com
2) Развернуть на Server 2008 R2 Exchange 2010
Hostname: srv-mail.polygon.com
3) Server 2012 R2 Std (DPM)
Hostname: srv-backup.polygon.com
4) Server 2012 R2 Std (SQL Server)
Тестовый стенд базируется на гипервизоре Debian 10 + Proxmox 6
Создана сеть vmbr1:
Адресация: 10.90.90.0/24
Выход в интернет осуществляется через шлюз pfsense 2.4.4
На заметку: Читающим данную заметку следует сперва почитать всю имеющуюся в свободном доступе информацию по сервису и не один раз, что у меня — а только потом приступать к реализации у себя. Это чтобы у Вас сложилось понимание, что и как и зачем. По возникающим вопросам обращаться ко мне в Telegram: aka_ekzorchik
или на почту support@ekzorchik.ru
чем смогу тем помогу.
Приступим:
Шаг №1:
Создана VM
внутри с операционной системой Windows Server 2012 R2 Std (Version 6.3.9600)
на которой развернут домен (polygon.com
) контроллер + роли DNS, DHCP.
RAM = 4Gb
HDD = 50Gb
CPU = 2 (1 sockets, 2 cores)
IP: 10.90.90.3
Hostname: srv-dc.polygon.com
Шаг №2:
Создана VM
внутри с операционной системой Windows Server 2008 R2 Std (Version 6.1.7601)
на которую устанавливаю почтовый сервер
RAM = 6Gb
HDD = 70Gb
CPU = 2 (1 sockets, 2 cores)
IP: = 10.90.90.10
Hostname: srv-mail.polygon.com
tips_server_2008_r2_exchange_2010_14_03_0123_003_v1.odt
Шаг №3:
Настроен Exchange 2010
на обслуживание домена polygon.com
Шаг №4:
На системе srv-backup
Шаг №5:
Добавляю к VM srv-backup
еще один диск размером в 100Gb
и по заметке «Как добавить Storage в DPM 2012 R2
»
добавляю его в DPM
Шаг №6:
На srv-mail
по заметке «Как устанавливается агент Data Protection Management» устанавливаю агент. Но при прохождении всех шагов на этапе установки агента получаю ошибку
Install protection agent on SRV-MAIL.polygon.com - Failed
если перейти на вкладку Tasks
то вижу что требуется:
Install protection agent on SRV-MAIL.polygon.com failed:
Error 33241: Microsoft .NET Framework 4 not installed on this computer.
Recommended action: Install Microsoft .NET Framework 4 and retry the operation.
Требуется на Windows Server 2008 R2 Std
установить пакет Microsoft .NET Framework 4
Проделываю необходимое, пакет именуется, как
dotNetFx40_Full_x86_64.exe
После перезагружаю систему.
Шаг №7:
Возвращаюсь к «Шаг №6
» по установке агента DPM
на систему srv-mail.polygon.com
и агент успешно устанавливается.
Шаг №8:
Настраиваю в srv-backup
оснастке System Center 2012 R2 DPM Administrator Console
резервное копирование Exchange
баз(ы).
Protection - New -
Select protection group type: Servers и нажимаю Next
Select group members: разворачиваю polygon.com - SRV-MAIL - Exchange 2010 Databases - и отмечаю почтовую базу DB01
см. скриншот для наглядного понимания
и нажимаю Next
Select data protection method:
Protection group name: ExchangeDatabase
I want short-term protection using: Disk
и нажимаю Next
Specify exchange protection options:
ничего не отмечаю — этой настройке будет посвящена отдельная заметка
и нажимаю Next
Specify Exchange DAG protection:
Т.к. у меня нет DAG
, то нажимаю Next
Select short-term goals:
Retention range: 5 days
Synhronization frequency: Every 15 minutes (В продуктиве уже по своему усмотрению)
Express Full Backup: 20:00 Everyday
и нажимаю Next
Review disk allocation:
Automatically grow the volumes: отмечаю галочкой
и нажимаю Next
Choose replica creation method:
Automatically over the network: отмечаю
Now: отмечаю
и нажимаю Next
Choose consistency check options:
Run a consistency check if a replica becomes inconsistent: отмечаю
и нажимаю Next
Summary:
Проверяю результирующие настройки сделанные выше и если все нормально, то нажимаем «Create Group
»
Status:
итог созданной группы должен быть Success
и нажимаю Close
и с учетом моих настроек сейчас происходит резервное копирование, ожидаю…
Создание резервное копии завершилось успешно:
если перейти в меню Recovery
то вижу, какие почтовые ящики есть в забекапируемой почтовой базе Exchange
моего почтового сервера:
Шаг №9:
Чтобы восстановить из резервной копии DPM
нужно на почтовом сервере srv-mail.polygon.com
создать специализированную базу данных Exchange (Recovery Mailbox Database (RDB)).
Создаю на логическом диске D:\
каталог RDB
и внутри него еще один с именем Logs
.
На заметку: Если есть возможность, то создаем отдельный LUN
и цепляем его на почтовый сервер где создаем каталог с данной базой данных. Важно чтобы место было больше чем размер каждой почтовой базы. Если это VM
то из пула дискового места добавляем еще один диск. Короче, просто нужен отдельный диск под это дело (операцию восстановления)
Шаг №10:
Создаем базу данных либо через GUI
консоль Exchange Management Console:
Microsoft Exchange - Microsoft Exchange On-Premisses (srv-mail.polygon.com) - Organization Configuration - Mailbox
— вкладка Database Management - New Mailbox Database
Mailbox database name: RDB
Server name: Browse - выбираю почтовый сервер srv-mail и нажимаю OK окна "Select Mailbox Server", потом Next мастера, теперь указываю месторасположение файла базы данных и его лог файла от дефолтного с учетом пункта 1:
Database file path: D:\RDB\RDB.edb
Log folder path: D:\RDB\Logs
Mount this database: не отмечаю галочкой
Нажимаю Next, New, Finish
Затем открываю свойства Properties
созданной почтовой базы и на вкладке Maintenance отмечаю галочкой:
This database can be overwritten by a restore: отмечаю галочкой
после нажимаю Apply, OK
окна «RDB Properties
»
либо через Exchange Management Shell
12345 | [PS] C:\Windows\system32> New-MailboxDatabase -Recovery -name RDB -Server SRV-MAIL -EdbFilePath ‘D:\RDB\RDB.edb’ -LogFolderPath ‘D:\RDB\Logs’ [PS] C:\Windows\system32> Set-MailboxDatabase -Identity ‘RDB’ -AllowFileRestore $true. WARNING: The command competed successfully but no settings of ‘RDB’ have been modified. |
База создана, но находится в режиме Dismounted
так и должно быть когда восстанавливаем из бекапа.
На заметку: от 09.07.2020
Нужно создавать базу через консоль тогда отрабатывает восстановление из DPM.
Шаг №11:
Переходим на сервер с сервисом DPM (srv-backup.polygon.com)
, авторизуюсь с административной учетной записью (Login: ekzorchik)
, запускаю консоль System Center 2012 R2 DPM Administrator Console - Recovery
, выбираю базу которая бекапируется, отмечаю дату и слепок на который хочу восстановить, затем указываю что восстанавливать, я хочу восстановить почтовый ящик alektest2
на 01.04.2020 20:23
Выделяю (Recoverable item) alektest2
и нажимаю Recover
, далее запускается мастер «Recovery Wizard
»
Review recovery selection:
нажимаю Next
Select recovery type: отмечаю Recover mailbox to an Exchange server database
На заметку: Но можно указать сетевой путь куда развернуть «Copy to a network folder
» базу Exchange
, а после ее уже средствами Exchange
смонтировать.
и нажимаю Next
Exchange Server: Browse - polygon.com отмечаю SRV-MAIL и нажимаю OK окна "Specify Alternate Recovery Destination"
Database name: RDB
и нажимаю Next
на шаге Specify recovery options
если есть возможно можно указать послать email уведомление о завершении операции
и нажимаю Next
на шаге Summary
ознакамливаюсь с результирующей по выбору выше
и нажимаю Recovery
На заметку:
Если галочка, что перезаписывать почтовую базу не стоит при восстановлении Вы получите ошибку: An unexpected error occurred while the job was running. (ID 104)
Вот только процесс восстановления завершается ошибкой:
Recovery failed for Exchange Mailbox Database DB01 on srv-mail.polygon.com as the specified database is not a recovery database. (ID 32624)
Решение ошибки: Это ошибка возникает тогда если при создании базы RDB
вы поставили галочку смонтировать ее.
На заметку: Если база восстановления RDB
уже использовалась для процедуры восстановления через DPM
с последующим извлечением из неё данных, в свойствах этой БД происходит сброс флага разрешающего её перезапись.
Если возникает ошибка:
Recovery failed for Exchange Mailbox Database DB01 because the overwrite flag is not set for RDB on srv-mail.polygon.com. (ID 30174)
Решение ошибки: Установить на базе RDB
галочку что можно перезаписывать и убедиться, что база не примонтирована.
Шаг №12:
Итак почтовый ящик восстановлен из резервной копии в базу RDB
. Теперь его нужно восстановить в созданную папку исходного почтового ящика где сейчас находится почтовый ящик, т.е. DB01
. Действия проделываю на почтовом сервере где нужно запустить Exchange Management Shell.
Проверяю содержимое в восстановленного в почтовую базу RDB
: (вот только база должна быть смонтирована)
1 | [PS] C:\Windows\system32> Get-MailboxStatistics -Database RDB |
А для восстановления база RDB
должна быть не смонтирована:
123456789 | [PS] C:\Windows\system32> Restore-Mailbox -Identity ‘alektest2’ -RecoveryDatabase “RDB” -RecoveryMailbox “alektest2” -TargetFolder “Recovery” Confirm Are you sure you want to perform this action? Recovering mailbox content from mailbox ‘alektest2’ in the recovery database ‘RDB’ to the mailbox for ‘alektest2 <alektest2@polygon.com>’. This operation may tak a long time to complete. [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is “Y”): A |
Шаг №13:
Чтобы проверить, а действительно ли было восстановление, можно на текущую систему srv-mail.polygon.com
установить браузер Google Chrome
, затем опираясь на заметку «Полный доступ к почтовому ящику на Exchange 2010«дать полные права на почтовый ящик alektest2
доменной учетной записи ekzorchik
и открыв URL
(https://srv-mail/owa/alektest2@polygon.com
) в строке браузера увидеть содержимое почтового ящика alektest2@polygon.com
Ниже наглядный скриншот того, что создана папка и в нее произведено полное восстановление из базы RDB
почтового ящика на 01/04/2020
Шаг №14:
Допустим нужно восстановить конкретное письмо где наименование письма содержит слово «test
«:
a) База RDB
должна быть создана, поставлена галочка что перезаписывать и не смонтирована
б) восстанавливаем на нужную дату и время бекап
в) производим
1 | [PS] C:\Windows\system32> Restore-Mailbox -Identity ‘alektest2’ -RecoveryDatabase “RDB” -RecoveryMailbox “alektest2” -TargetFolder “RecoveryMessage” -SubjectKeywords “test” |
Результат:
Шаг №15:
Допустим нужно восстановить конкретное письмо где наименование письма содержит слово «test
«, содержимое письма содержит слово test
и каталоги.
-SubjectKeywords "test" -ContentKeywords "test" -IncludeFolders \Inbox,\Calendar
Шаг №16:
Если есть почтовый ящик, к примеру alektest3
и в него нужно выполнить полное восстановление всего почтового ящика alektest2@polygon.com
RDB - Mounted: Mounted
1 | [PS] C:\Windows\system32> Restore-Mailbox “alektest3” -RecoveryDatabase “RDB” -RecoveryMailbox “alektest2” -TargetFolder “Full recovery” |
Шаг №17:
Массовое восстановление всех почтовых ящиков в базе данных почтовых ящиков DB01
1 | [PS] C:\Windows\system32> Get-Mailbox -Database DB01 | Restore-Mailbox -RecoveryDatabase RDB |
вот только у меня она что-то не отрабатывает в тестовых условиях пишет:
Шаг №18:
Если почтовый ящик был отключен от пользователя alektest2
, то как его восстановить из бекапа, т.е. выполнить полное слияние резервной копии всего почтового ящика с имеющимся. Нужно подключить к нему ящик из списка отключенных:
Exchange Management Console - Recipient Configuration - Disconnected Mailbox
— находим ящик alektest2
затем через правый клик мышью на нем выбираю Connect
и указываю доменную учетную запись и алиас (alektest2
) и все ящик подключен. Теперь заменяю содержимое подключенного ящика на тот что из бекапа:
RDB - Mounted: Mounted
1 | [PS] C:\Windows\system32> Restore-Mailbox -Identity alektest2 -RecoveryDatabase “RDB” |
Шаг №19:
В самом конце процедуры восстановления нужно: Размонтировать и удалить Database: RDB
123 | [PS] C:\Windows\system32> Dismount-Database “RDB” [PS] C:\Windows\system32> Remove-MailboxDatabase “RDB” |
Итого я задокумментировал для себя, как работает DPM
по бекапированию почтовых баз и как происходит процедура восстановления. Если у меня будут какие-либо нюансы от этой заметки я буду ее дополнять или же отдельной заметкой описывать их.
На этом у меня всё, с уважением, автор блога Олло Александр aka ekzorchik.