Симптомы
Недавно столкнулся с одним неприятным багом в SharePoint Server 2013 (версия 15.0.4693.1000). В SharePoint Central Administration в разделе Site Collection Quotas and Locks для одной из выведенных из эксплуатации коллекции сайтов был присвоен статус блокировки “No access».
Позже была сделана резервная копия коллекции сайтов с помощью командлета PowerShell Backup-SPSite. Спустя какое-то время, пользователям понадобилось срочно восстановить некоторые файлы из одной библиотеки данной коллекции сайтов. При восстановлении с помощью команды Restore-SPSite возникла ошибка – «Доступ к этому веб-сайту запрещен».
В логах ULS SharePoint были следующие сообщения:
Причем ошибка возникала уже в конце процедуры восстановления по истечение продолжительного времени. Во время восстановления сайта было видно, что данные активно пишутся в базу данных SQL и в конце процедуры размер базы данных был адекватен размеру архива.
Так как у меня были в наличие архивы SQL баз контента, то я попробовал также восстановить данные с помощью использования варианта с Unattached Content Database, но безрезультатно. К сожалению, как оказалось, у меня остались в наличие только базы данных, в которых эта коллекция сайтов уже везде была заблокирована. При просмотре контента из неприсоединенной базы данных можно было выбрать из списка нужную коллекцию сайтов, но сам контент – списки и библиотеки, не выводился, возникала неопознанная ошибка.
Решение
Поддержка MSFT предложила следующее решение.
- Установить обновление May 2017 CU. Крайне рекомендуется обновить всю ферму, но если нет возможности обновить боевую ферму, рекомендуется развернуть или обновить тестовую. В моем случае мне было быстрее и проще развернуть тестовый SharePoint в варианте stand-alone.
- Создать новую базу данных контента.
- Далее нужно изменить версию схемы базы данных в файле бэкапа на версию обновленного SharePoint. В моем случае нужно было поменять 15.0.4693.1000 на 15.0.4927.1000. Номер версии находится в самом начале архивного файла. Отредактировать файл можно, например, с помощью Notepad++.
- Развернуть стандартным способом бэкап сайта в новую базу данных, используя ключ ContentDatabase.
- После этого зайти в раздел Site Collection Quotas and Locks и снять блокировку, то есть установить статус блокировки сайта «Not locked».
После этого коллекция сайтов должна быть доступна через браузер и вы сможете извлечь нужные данные.
Ложка дегтя. Правка версии схемы в архивном файле – неподдерживаемое решение, поэтому дальнейшее использование этого сайта в работе официально не поддерживается производителем! Только для восстановления важных данных. После этого данную коллекцию сайтов нужно удалить.
PS: Если у вас критическая ситуация и нет другого варианта – вам позарез нужно восстановить всю коллекцию сайтов, вы можете попробовать это сделать на свой страх и риск. У меня не было такой необходимости, но я провел эксперимент – сделал backup этой коллекции сайтов в тестовой среде, снова подредактировал номер версии, развернул в новую базу в производственной среде, и не заметил каких либо сбоев в работе сайта.