Восстановление WebApplication из базы данных контента MS SQL

В данной небольшой статье мы рассмотрим вариант восстановления WebApplication в SharePoint 2013 на основе базы данных MS SQL (или бекапа данной БД) на новом сервере с абсолютно той же информацией, что и на старом сервере.  Microsoft, конечно, предлагает множество различных вариантов и подходов к созданию резервных копий данных и фермы SharePoint в целом. Однако иногда случаются ситуации, когда восстановить данные непосредственно через SQL получается быстрее и надежнее (а иногда и выхода другого нет).

Предположим, что наш старый сервер с SharePoint “упал”  и поднять его не представляется возможным. Мы не помним ни старого серверного окружения, ни настроек топологии фермы, ни настроек безопасности для приложения. Но мы можем установить новый сервер SharePoint и имеем под рукой MS SQL базу данных (или бекап базы данных, на основе которого не сложно поднять саму БД в MS SQL).  До “падения” сервера контент выглядит следующим образом:

В библиотеке документов несколько изображений. Также создано 2 дочерних веб-узла.

1. Если же у нас есть бекап базы данных, восстанавливаем данную БД из бекапа на нашем SQL Server через SQL Management Studio

Или же просто подключаем БД, если у нас есть mdf файл.

2. Зайдите в центр администрирования и создайте новое веб-приложение с одной сайт-коллекцией (Шаги создания веб-приложения продемонстрированы на скриншотах ниже, но без деталей. Об этом в других статьях).  Я создал новое веб-приложение на порту 89 с названием БД WSS_Content_New_App_89

3. Далее, перейдите в раздел “Управление приложениями” – “Управление базами данных контента”

4. В открывшемся окне Вы можете выбрать необходимое веб-приложение, к которому мы будем “подцеплять” базу данных контента и увидеть перечень текущих связанных баз данных с данный веб-приложением

5. Для перехода к управлению текущей базой данных, щелкните на ее название. В нашем случае “WSS_Content_New_App_89”. В появившемся окне нажмите на поле “Удалить базу данных контента”, после чего нажмите “ОК” в появившемся диалоговом окне. Таким образом текущая база данных, связанная с нашим веб-приложением будет удалена и наша задача будет указать другую базу данных для данного приложения

6. Как было сказано ранее, следующим шагом будет подключение другой базы данных контента к созданному нами веб-приложению. Данная операция выполняется командлетом PowerShell:

New-SPContentDatabase -Name ContentDbName -WebApplication WebApplicationName

Где ContentDbName – имя базы данных контента, которую мы развернули на первом шаге

WebApplicationName – Урл к созданному нами веб-приложению.

Таким образом, для нас данная команда будет иметь вид:

New-SPContentDatabase -Name WSS_Content_89 -WebApplication http://cib_dev3.cib.local:89/

Успешного выполнения данной команды свидетельствует следующее сообщение:

7. Наша база данных контента подключена к новому веб-приложению и мы имеем несколько изображений в библиотеке, как это было первоначально, и несколько дочерних веб-узлов. Мы добились нашей цели и теперь можем работать с документами и веб-узлом как это было 

Более детально об этом можно почитать тут

 

P.S.: Стоит обратить внимание, что при использовании данного подхода, необходимо учитывать возможность использования кастомных решений в данном веб-приложении. Установленные решения подобным образом развернуты на веб-приложении не будут и часть функционала может работать некорректно. Для этого, помимо проделанных операций из данной статьи, необходимо добавить и установить все решения (wsp-пакеты), предназначенные для данного веб-приложения. Если же у Вас нет единого хранилища данных решений с определением какое именно решение относится к какому веб-приложению, рекомендую предварительно (при первичной настройке серверов SharePoint) настроить задание по периодической выгрузке загруженных решений для веб-приложения. Более подробно о сценарии выгрузки решений можно почитать тут


Опубликовано: 10.01.2014
Автор: Сергей Снитко