Блог did5.ru

Про АйТи и около айтишные темы

[SharePoint2010] Резервное копирование

Комментариев нет

SP2010 Foundation logo1 [SharePoint2010] Резервное копированиеПро то, что резервное копирование любого сервиса должно работать как швейцарские часы, я даже говорить не буду, т.к. это должно быть понятно любому человеку непосредственно связанному с IT. SharePoint 2010 не исключение, поэтому сегодня я расскажу — как настроить автоматическое резервное копирование SharePoint 2010.

С помощью графического интерфейса SharePoint 2010 резервное копирование можно выполнять только в ручном режиме, т.е. автоматизировать этот процесс никак нельзя. Чтобы этот процесс автоматизировать нужно использовать PowerShell, написать скрипт и запускать его через планировщик заданий.

Скрипт резервного копирования SharePoint 2010 на PowerShell

Резервное копирование я делаю сразу всей фермы, раз в неделю делаю полный backup, и каждый день -разностный. Такой подход помогает сэкономить дисковое пространств на сервере и уменьшить трафик при копировании резервной копии в хранилище.

Первый скрипт делает полное резервное копирование фермы SharePoint 2010 — backup_spfarm_full.ps1:

Add-PSSnapin Microsoft.SharePoint.PowerShell
Backup-SPFarm -Directory c:\backup -BackupMethod Full

Второй — разностное — backup_spfarm_differential.ps1:

Add-PSSnapin Microsoft.SharePoint.PowerShell
Backup-SPFarm -Directory c:\backup -BackupMethod Differential

Скрипт удаления старых резервных копий SharePoint 2010

Хранить резервные копии за последний год смысла нет, поэтому нужно определиться, за какой период нужно держать backup’ы, а остальные удалять. У меня такой период 14 дней, т.е. два полных бэкапа и разностные за эти дни.

Структура резервных копий такая, есть xml файл — spbrtoc.xml, в котором содержится информация обо всех копиях, а сами данные хранятся в каталогах на том же уровне файлового дерева. Скрипт парсит файл spbrtoc.xml, находит резервные копии старше 14 дней, и удаляет каталоги и записи о них из файла spbrtoc.xml. Вот сам скрипт:

CleanBackups.ps1

# Location of spbrtoc.xml
$spbrtoc = "C:\backup\spbrtoc.xml"

# Days of backup that will be remaining after backup cleanup.
$days = 14

# Import the Sharepoint backup report xml file
1$sp = gc $spbrtoc

# Find the old backups in spbrtoc.xml
$old = $sp.SPBackupRestoreHistory.SPHistoryObject | ? { $_.SPStartTime -lt ((get-date).adddays(-$days)) }
if ($old -eq $Null) { write-host "No reports of backups older than $days days found in spbrtoc.xml.`nspbrtoc.xml isn't changed and no files are removed.`n" ; break}

# Delete the old backups from the Sharepoint backup report xml file
$old | % { $sp.SPBackupRestoreHistory.RemoveChild($_) }

# Delete the physical folders in which the old backups were located
$old | % { Remove-Item $_.SPBackupDirectory -Recurse }
# Save the new Sharepoint backup report xml file
$sp.Save($spbrtoc)
Write-host "Backup(s) entries older than $days days are removed from spbrtoc.xml and harddisc."

Планировщик заданий

Скрипты написаны, осталось настроить автоматизацию процесса резервного копирования SharePoint 2010. Для этого запускаем Планировщик заданий (Task Scheduler) и создаем новую задачу. У меня уже есть задачи для резервного копирования, поэтому я покажу на примере создания задачи планировщика для скрипта удаления старых бэкапов.

sharepoint backup powershell 4 thumb [SharePoint2010] Резервное копирование

Указываем название, описание и от имени какой учетной записи будет запускаться задание планировщика. Для подобных целей я использую учетную запись администратора фермы SharePoint 2010 — domen\SPFarm, которая входит в группу администраторов на сервере. Еще нужно обязательно указать параметр — «Run whether user is logged on», чтобы скрипт запускался без входа в систему этим пользователем.

sharepoint backup powershell 1 thumb [SharePoint2010] Резервное копирование

Переходим на вкладку Actions, здесь указываем, что нужно запускать. В строке Program/script вводим «Powershell.exe», а в строке «Add arguments» задаем путь к скрипту в таком виде:

&'C:\scripts\CleanBackups.ps1'

sharepoint backup powershell 2 thumb [SharePoint2010] Резервное копирование

На вкладке Triggers указываем, в какое время будет запускаться скрипт. Я выставил — один раз в неделю, по понедельникам, в 3 часа ночи.

sharepoint backup powershell 3 thumb [SharePoint2010] Резервное копирование

Проверку этого скрипта, лучше проводить на тестовой площадке, т.к. если запустить его сразу, то скрипт может затереть полную резервную копию, и останутся только разностные. А восстановить ферму из разностной копии без полной не получится.

Полезные ссылки

Более подробно про виды резервного копирования SharePoint 2010 на сайте Microsoft — Резервное копирование и восстановление (SharePoint Server 2010)

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!


Хотите поблагодарить автора за эту заметку? Вы можете это сделать!


Автор: did5

30 мая 2013 в 11:48

Рубрика: PowerShell,Sharepoint

Метки: , ,

Ваш отзыв