[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 2010 — domen\SPFarm, которая входит в группу администраторов на сервере. Еще нужно обязательно указать параметр — «Run whether user is logged on», чтобы скрипт запускался без входа в систему этим пользователем.
Переходим на вкладку Actions, здесь указываем, что нужно запускать. В строке Program/script вводим «Powershell.exe», а в строке «Add arguments» задаем путь к скрипту в таком виде:
&'C:\scripts\CleanBackups.ps1'
На вкладке Triggers указываем, в какое время будет запускаться скрипт. Я выставил — один раз в неделю, по понедельникам, в 3 часа ночи.
Проверку этого скрипта, лучше проводить на тестовой площадке, т.к. если запустить его сразу, то скрипт может затереть полную резервную копию, и останутся только разностные. А восстановить ферму из разностной копии без полной не получится.
Полезные ссылки
Более подробно про виды резервного копирования SharePoint 2010 на сайте Microsoft — Резервное копирование и восстановление (SharePoint Server 2010)
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Хотите поблагодарить автора за эту заметку? Вы можете это сделать!