Резервное копирование почтовой базы данных MS Exchange Server 2010 SP3 в Windows Server 2012 R2. Автоматизация процесса с помощью скрипта для PowerShell.

Рассмотрим как делать резервную копию баз данных MS Exchange Server 2010, используя оснастку Windows Server Backup в Windows Server 2012 R2.

 

Резервное копирование выполняется с помощью VSS (Volume Shadow Copy Service), с условием полной архивацией указанного тома. Только с этими условиями, сделанная резервная копия будет считаться корректной, в базы данных будет записана информация о времени выполнении резервной копии, а так же удалятся логи транзакций журналов Exchange.

 

Если оснастка Windows Server Backup не добавлена в систему, добавляем ее с помощью мастера добавления ролей и компонентов:

 

Резервирование с помощью GUI

Рассмотрим как сделать резервную копию баз данных Exchange посредством GUI оснастки Windows Server Backup.

 

У меня имеется две почтовые базы данных (USER, BOSS) на Exchange сервере, находятся они на локальном диске (D:\), сохранять резервные копию я буду на сетевой диск (\\192.168.7.1\backup\MailDatabases).

Самое главное в Дополнительные параметры, во вкладке Параметры VSS, необходимо указать — Полная архивация VSS

 

Задание создается элементарно, поэтому полностью расписывать его нет смысла, но размещу ниже скриншоты шагов добавления задания:

 

После завершения выполнения резервного копирования, информация об этом будет записана в свойства баз данных:

 

Так же эту информацию можно посмотреть из консоли Exchange, выполним команду:

Get-MailboxDatabase -Status | Sort -Property LastFullBackup | ft Identity,LastFullBackup


Identity           LastFullBackup
--------           --------------
USER               29.11.2018 12:10:51
BOSS               29.11.2018 12:10:51

 

Резервирование с помощью скрипта Powershell

Для автоматизации процесса создания резервных копий баз данных, я написал скрипт на powershell, который создает структурированную иерархию резервных копий, со сроком их хранения (старые резервные копии удаляются). Скрипт с комментариями, поэтому разобраться в нем не составит труда.

 

По-умолчанию в PowerShell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет в той же командной строке выполнить скрипт с командами PowerShell.

 

Разрешить выполнение скриптов в Powershell:
powershell -Command Set-ExecutionPolicy RemoteSigned

# Получаем текущую дату
$CurrentDate = get-date -format dd.MM.yyyy

# Указываем целевую папку расположения резервных копий
$Source_Net_Drive = "\\192.168.1.2\backup\MailDatabases"
# Указываем сколько резервных копий хранить
$StoreBackup_Period = 7

# Задается путь к каталогу создаваемой резервной копии, с текущей датой
$Target_Net_Drive = "\\192.168.1.2\backup\MailDatabases\" + "$CurrentDate"

# Функция проверки существование всех необходимых каталогов, если какого либо
# каталога не будет существовать, он будет создан
Function CheckPath ($Path) {
$Path_Exists = Test-Path -Path $Path
If ($Path_Exists -eq $False) {New-Item $Path -type directory}
}

# Функция удаления старых резервных копий
Function RemoveOldBackup ($Path, $CountDays) {
$LastWrite = (Get-Date).AddDays(-$CountDays)
Get-ChildItem $Path | ForEach { 
If (( $_.Attributes -eq "Directory") -and ($_.LastWriteTime -le $LastWrite))
{ 
$RemoveDir = "$Path\"+$_.Name
Remove-Item -Recurse -Force $RemoveDir
}
}
}

# Создание задания резервного копирования
Add-PSSnapin Windows.Serverbackup -ErrorAction SilentlyContinue
$policy = New-WBPolicy
$source = New-WBFileSpec -FileSpec "D:\"
Add-WBFileSpec -Policy $policy -FileSpec $source
$target = New-WBBackupTarget -NetworkPath $Target_Net_Drive
Add-WBBackupTarget -Policy $policy -Target $target
Set-WBVssBackupOptions -policy $policy -VssFullBackup

# Проверяем пути
CheckPath $Target_Net_Drive | Out-Null

# Запуск создание резервной копии
Start-WBBackup -Policy $policy -Force

# Выполняем очистку целевого каталога, от старых резервных копий
RemoveOldBackup $Source_Net_Drive $StoreBackup_Period

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

15 − 10 =