Собственная ошибка стека при восстановлении семейства сайтов SharePoint 2013
У меня есть резервная копия семейства сайтов SharePoint 2013, и я пытаюсь восстановить эту резервную копию на другом семействе сайтов SharePoint 2013. Оба сайта SharePoint находятся в одном домене. Но когда я пытаюсь восстановить семейство сайтов из резервной копии, я получаю сообщение об ошибке как -
Restore-SPSite : <nativehr>0x80070003</nativehr><nativestack></nativestack>
At line:1 char:1
+ Restore-SPSite-Identity http://ksptestinst2:9999 -Path
"E:\SiteBackup\BackupSPS ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...dletRestoreSite:
SPCmdletRestoreSite) [Restore-SPSite], DirectoryNotFoundException
+ FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletRestoreS
ite
Команда, которую я использую для восстановления резервной копии семейства сайтов:
Restore-SPSite -Identity http://ksptestinst2:9999 -Path "E:\SiteBackup\BackupSPSite.bak" -Force
я пытался использовать
Restore-SPSite -Identity "http://ksptestinst2:9999/" -Path "E:\SiteBackup\BackupSPSite.bak" -Force -DatabaseServer KSQL2012SP\SQL
TESTDB -DatabaseName WSS_Content_KSPTESTINST2_9999
но обе команды дают одинаковую ошибку.
Кто-нибудь может подсказать, как нам действовать?
1 ответ
Пара подходов, которые вы можете попробовать:
1. Запустите мастер настройки SharePoint на обоих серверах
Могут быть установлены исправления сервера, установлены службы SharePoint, установлены исправления SQL, ожидаются перезапуски или любой другой фактор, который вы можете изначально исключить. Затем выполните операцию резервного копирования и восстановления. Это легко вычеркнуть из списка (довольно часто упускается из виду).
2: Соответствие уровням патчей среды
Лучшее и рекомендуемое исправление состоит в том, чтобы обеспечить соответствие версий базы данных конфигурации SharePoint и / или накопительных уровней обновлений / исправлений для соответствия обеим средам - среда, в которой вы сделали резервную копию, может находиться на другом уровне исправлений, чем среда, в которой вы находитесь собираюсь восстановить патч до. (Перейдите в Центр администрирования -> Параметры системы -> Управление серверами в этой ферме и проверьте, есть ли какое-либо ожидающее действие. Не используйте версию, чтобы проверить любые несоответствия версий между средами)
На той же странице дважды проверьте, что вы не видите упоминания "Требуется обновление" ни на одном из этих серверов. Если это упомянуто там, пожалуйста, убедитесь, что вы запустили мастер настройки SP, прежде чем продолжить.
Как только все выглядит хорошо, и вы сравнили версии, загрузите последние КБ от Microsoft и установите их в соответствии с версиями схемы базы данных конфигурации SharePoint. Выполните все установки исправления сервера и CU (накопительные обновления). Не забудьте запустить мастера настройки для каждого CU.
3: Использование STSADM
Это довольно интересный обходной путь. Но иногда я чувствую, что "старое есть золото". Включите консоль управления SP и попробуйте выполнить операцию восстановления с помощью старой доброй командной строки STSADM. Иногда, когда новые командлеты powershell терпят неудачу, stsadm работал для меня.
stsadm –o restore –url "site url" -filename "backup filename"
4: Восстановление БД контента
Попробуйте резервное копирование и восстановление базы данных контента. Прежде чем делать это, вы можете проверить в Central Admin (" Просмотреть все семейства сайтов" -> "Выбрать семейство сайтов" и "БД содержимого", на котором оно установлено), в отношении которого будут затронуты все семейства сайтов, если вы восстановите определенную "БД содержимого". Вы не хотите потерять любые другие семейства сайтов, которые совместно используют одну и ту же базу данных контента.
5: Редактирование файла резервной копии
(Не рекомендуется - но работает как шарм)
Это одно из тех быстрых и неопрятных исправлений, которые вы могли бы попробовать. Для начала откройте файл резервной копии (файл, полученный с помощью команды Backup-SPSite) в Notepad++. (или любой другой текстовый редактор; избегайте Блокнота, хотя). Это может выглядеть смешно со специальными персонажами, но пока игнорируйте все.
Если размер файла слишком велик для открытия в Notepad++ (>100 МБ), вы можете использовать любую стандартную программу File Splitter для разделения файла на несколько более мелких файлов, скажем, 10 МБ. Я имел успех с FFSJ
Когда вы редактируете файл (если вы разбили файлы, откройте первый файл разбивки) в Notepad ++ и найдите номер версии, который выглядит примерно как 15.0.XXXX.XXXX. Это должно появиться где-то в начале строки.
НЕ ИЗМЕНЯЙТЕ НИЧЕГО. Интересно, что это номер версии, который изначально проверяет командлет Restore-SPSite. И если он видит версию сервера, отличную от версии резервной копии, он просто выдает ошибку
Теперь, чтобы узнать номер версии, которую нужно поместить туда, все, что вам нужно сделать, это открыть ваши журналы ULS (15\Logs{latestlogfile}) и найти текст " версия схемы ". Вы должны увидеть сообщение, похожее на это:
Не удалось десериализовать сайт из E:\SiteCollection1.bak . Microsoft.SharePoint.SPException: версия схемы резервной копии 15.0.YYYY.YYYY не соответствует текущей версии схемы 15.0.XXXX.XXXX в Microsoft.SharePoint.SPSite.Restore(строковое имя файла, логический isADMode, логический и readOnlyMode, логический и hadWriteLock)
Если вы не можете найти вышеупомянутое сообщение в журналах, возможно, проблема заключается в чем-то другом, и у вас мало или нет шансов заставить эту опцию работать
Если вам удастся найти сообщение об ошибке, выберите номер версии, который он ожидал из вышеприведенного сообщения об ошибке ULS, и обновите ТОЛЬКО ВЕРСИЯ в файле резервной копии, который вы редактировали в Notepad ++. Сохрани это. Если вы разбили файлы, используя инструмент для разделения файлов, объедините файлы обратно в один резервный файл.
Теперь запустите команду восстановления с новым файлом резервной копии и посмотрите, работает ли он.
Restore-SPSite -Identity {{SiteCollectionURL}} -Path "E:\SiteCollection1-New.bak" -Force
Это лишь некоторые из вариантов (не исчерпывающий список, но, надеюсь, хорошее начало), которые вы можете попробовать.
У меня была большая вероятность успеха с вариантами № 1 и № 5. Вариант № 2 - это то, что должно быть сделано в долгосрочной перспективе.
Вы можете прочитать об этом немного больше из моего поста здесь.