С каждым годом пользователей SharePoint 2013 становится все меньше в связи с появлением новых версий. Но многие компании не торопятся переходить на новые версии SharePoint из-за сложности перехода и больших накладных расходов.

Share Point 2019
Share Point 2019

Компания, в которой я работаю, после нескольких лет наконец-то сдвинулась с места и решилась на глобальные перемены, и началась работа.

Определение инфраструктуры

Для прода инфраструктура должна быть более сложная. Каждая организация сама определяет ее в зависимости от планируемого объема данных и дальнейшего развития. Если организация достаточно большая, как в нашем случае, тогда явно напрашивается архитектура из сервера переднего плана, нескольких WFE-серверов, серверов баз данных (контентных и кастомных), серверов для служб поиска, распределенного кэша и других. Сервера должны быть современные с большим объемом памяти, процессорами последних поколений и т.д.

Сразу в прод ставить неправильно, поэтому нужны тестовые стенды. Для них такая мощная инфраструктура не нужна, хотя по возможности можно и такую организовать.

Итак, были созданы тестовые стенды с усеченными контентными базами (без их усечения пришлось бы выделять гораздо большие ресурсы, с чем сейчас сложности). Скрипт усечения заключался в подмене больших файлов на шаблоны меньшего размера.

Так как прямой переход с SharePoint 2013 на SharePoint 2019 невозможен, нужен был стенд и для SharePoint 2016. В качестве стендов для SharePoint 2013 прекрасно подошли машины разработчиков, которые уже работали до этого.

Инфраструктура была создана, доменные имена присвоены, можно приступать к самому интересному.

Вот основные этапы, которые нам нужно выполнить:

  1. Создание бэкапов контентных и кастомных БД с сервера SharePoint 2013.

  2. Подготовка стендов согласно архитектуре серверов, включая сервера БД, WFE-сервера, сервера для служб поиска и других. Предусмотрена установка операционных систем, средств защиты, сетевые настройки и т. д. Для тестового стенда все проще, как я и писал ранее.

  3. Разворачивание промежуточного стенда для переноса данных в SharePoint 2016.

    1. Установка SQL Server 2016 на сервера SQL Server, разворачивание СУБД, восстановление кастомных и контентных БД.

    2. Установка IIS и пререквизитов для SharePoint 2016 для серверов.

    3. Установка SharePoint 2016 для промежуточных серверов (много их не требуется — можно попробовать даже 1 сервером обойтись).

    4. Разворачивание веб-приложения для SharePoint 2016 (создание веб-приложения, сайт-коллекций, настройка мастера, конфигурации, установка решений, развертывание контентных баз).

    5. Обновление контентных БД на новую версию SharePoint 2016 с помощью команд PowerShell.

    6. Тестирование работы основных компонентов промежуточного стенда, решение проблем.

    7. Бэкапирование контентных БД и с сервера SharePoint 2016.

  4. Разворачивание стенда SharePoint 2019 и перенос в него данных из SharePoint 2016.

    1. Установка SQL Server 2016 на сервера SQL Server, разворачивание СУБД, восстановление кастомных и контентных БД.

    2. Установка IIS и пререквизитов для SharePoint 2019 для серверов с SharePoint.

    3. Установка SharePoint 2019 для серверов WFE и других. Настройка определенной роли каждому из серверов согласно архитектуре (должна примерно соответствовать текущей архитектуре стендов, а лучше усовершенствованная).

    4. Разворачивание веб-приложения для SharePoint 2019 (создание веб-приложения, сайт-коллекций, настройка мастера, конфигурации, установка решений, развертывание контентных баз).

    5. Обновление контентных БД на новую версию SharePoint 2019 с помощью команд PowerShell.

  5. Проверка стендов, решение проблем. Куда же без этого.

Разворачивание SharePoint 2016 и миграция на него

Устанавливаем SQLServer 2016 или более новую версию. Установка стандартная - каких-то серьезных подводных камней там нет.

Установка SQL Server 2016
Установка SQL Server 2016

Лучше сразу задать права администратора для всех учетных записей, которым это нужно будет. Возможно, что права будут схожи с правами в проме.

При установке IIS через Server Manager в ролях также надо отметить ISAPI и .Net4.6.

Установка IIS
Установка IIS

При установке IIS через Server Manager в ролях также надо отметить ISAPI и .Net4.6.

Дополнения к IIS
Дополнения к IIS

Пререквизиты для стендов SharePoint 2016 и SharePoint 2019 устанавливаются с помощью утилиты установки prerequisiteinstaller.exe. Все неплохо, но не у всех организаций открыт доступ в сеть Интернет. Вот тут-то и приходится устанавливать пререквизиты вручную. У нас дистрибутивы их имелись, но подводных камней возникло огромное множество.

Установка пререквизитов вручную

Для установки SP 2016 нужны следующие пререквизиты:

  • Роль веб-сервера (IIS)

  • Собственный клиент Microsoft SQL Server 2012

  • Microsoft ODBC Driver 11 for SQL Server

  • Среда выполнения Microsoft Sync Framework 1.0 SP1 (x64)

  • Windows Server AppFabric

  • Расширения Microsoft Identity

  • Клиент Майкрософт для защиты и контроля информации версии 2.1

  • Microsoft WCF Data Services 5.6

  • Microsoft .NET Framework 4.6

  • Накопительный пакет обновления 1 для Microsoft AppFabric 1.1 для Windows Server (KB2671763)

  • Распространяемый пакет Visual C++ для Visual Studio 2012

  • Распространяемый пакет Visual C++ для Visual Studio 2015

После установки пререквизитов лучше перезапустить сервер.

Большинство из них устанавливается без проблем, но вот по некоторым во время установки они возникли.

.Net 3.5

Для установки install 3.5 нужно вызвать команду:

expand.exe -f:* C:\Temp\microsoft_windows_netfx3_ondemand_package.cab C:\Temp\unrar >nul

Можно попробовать распаковать и WinRar.

dism.exe /Online /Add-Package /PackagePath:"C:\Temp\unrar"

Если ранее при установке IIS не был отмечен .net3.5, то устанавливаем его.

AppFabric

Для установки AppFabric нужно открыть cmd с правами администратора, перейти в каталог с инсталлятором AppFabric, ввести команду:

.\WindowsServerAppFabricSetup_x64.exe /i CacheClient,CachingService,CacheAdmin /gac

Если возникнет ошибка "Command line syntax error.", то попробовать выполнить команду так:

.\WindowsServerAppFabricSetup_x64.exe /i "CacheClient","CachingService","CacheAdmin" /gac

Подождать, пока не сконфигурируется AppFabric (когда это будет сделано не видно). Можно в процессах следить за "Windows Installer". Также может быть уведомление в нижнем правом углу, что установлены некоторые функции.

Перегрузиться и посмотреть в программах, есть ли AppFabric.

Установить обновление под админом AppFabric-KB3092423-x64-ENU.exe.

Еще раз перегрузиться.

Если требуется переустановка AppFabric, нужно:

1) Зайти в Environment Variable.

2) Убедиться, что в PSModulePath есть указанные пути, если их нет, то добавить:

C:\Program Files\WindowsPowerShell\Modules

C:\Windows\system32\WindowsPowerShell\v1.0\Modules

C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules

C:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules

Другие пререквизиты

Следующие пререквизиты устанавливаются в порядке:

msodbcsql-11.msi

Среда выполнения Microsoft Sync Framework 1.0 SP1 (x64)

Расширения Microsoft Identity

Клиент Майкрософт для защиты и контроля информации версии 2.1

Microsoft WCF Data Services 5.6 (лучше использовать сразу команду, предварительно указав нужные пути, как в примере ниже)

Распространяемый пакет Visual C++ для Visual Studio 2012

Проблемы при установке Microsoft WCF Data Services 5.6

Иногда пререквизиты все установились, но при установке шарика возникает ошибка:

"Не удалось создать базу данных конфигурации. Создано исключение типа Microsoft.SharePoint.Upgrade.SPUpgradeException. Дополнительные сведения об исключении: Не удалось загрузить один или несколько типов".

Тогда нужно удалить "Microsoft WCF Data Services" через установку и удаления программ.

Далее нужно примаунтить образ с шариком.

Затем открыть cmd/powershell под администратором и выполнить запуск пререквизитов командой:

D:\prerequisiteinstaller.exe /wcfdataservices56:"C:\Temp\WcfDataServices.exe"

, где "D:\prerequisiteinstaller.exe" - полный путь до запуска пререквизитов

, "C:\Temp\WcfDataServices.exe" - полный путь до установочного файла "Microsoft WCF Data Services".

Затем через "Далее" дождаться окончания работы пререквизитов, он сам установит правильно "Microsoft WCF Data Services".

Установка SharePoint 2016

Сначала запускается setup из образа установщика.

Вводится ключ, затем устанавливается чек-бокс с лицензионным соглашением. Далее рассказывать не буду, т.к. особых секретов в установке нет.

Необходимо дождаться окончания установки:

Установка SharePoint
Установка SharePoint

Далее надо продолжить настройку и выбрать создание новой фермы серверов. Нужно указать СУБД и администратора, парольную фразу.

В зависимости от типа разворачиваемого сервера нужно указать подходящую роль согласно архитектуре. У нас на тестовом стенде был выбран пункт "Ферма обособленных серверов".

Выбор роли сервера
Выбор роли сервера

Далее нужно указать порт центра администрирования и тип проверки подлинности, дать согласие после проверки всех настроек.

Нужно дождаться окончания установки фермы
Нужно дождаться окончания установки фермы

После окончания установки будет переход в центр администрирования для создания веб-приложения.

Создание веб-приложения

После установки SharePoint и настройки фермы нужно создать веб-приложение (делать это лучше под администратором фермы).

Нужно отказаться от участия в программе улучшения качества ПО.

Лучше отказаться от запуска мастера пошаговой настройки фермы (лучше это делать вручную).

Перейти в раздел Управление веб-приложениями.

Создать веб-приложение.

На сервере SQL Server должны быть полные права администратора у УЗ.

Нужно согласиться с созданием, дождаться окончания. Лучше ничего не менять в полях ввода.

После установки фермы вернуться на главную страницу ЦА.

В меню Управление приложениями надо выбрать «Создание семейства веб-сайтов» (можно создать временное семейство):

  • Указать Название сайта (например, Банк России);

  • Добавить главного администратора сайта (текущего локального администратора);Исправить документацию по администрированию приложений.

  • Дождаться окончания установки.

Затем пустой портал будет открываться.

Настройка и конфигурирование веб-приложения

Порядок выполнения одинаковый для перехода с SharePoint 2013 на SharePoint 2016 и с SharePoint 2016 на SharePoint 2019.

Нужно выполнить следующие действия на стендах (для SharePoint 2016 и SharePoint 2019 аналогично):

  1. Импортировать кастомные мастер-страницы (если такие имеются) с прода на новый сервер с помощью SharePoint Designer 2013, сделать их по умолчанию по аналогии с продом.

  2. Надо экспортировать с прода все решения wsp любым способом, например, с помощью команд Get-SPSolution ... и $solution.SolutionFile.SaveAs . Потом эти решения нужно установить в новое веб-приложение.

  3. Скопировать с конфигурационного файла SharePoint 2013 разделы appSettings и connectionStrings в конфигурационный файл SharePoint 2016 ( для SharePoint 2019 аналогично будет).

    Если размер конфигурационного файла больше 255 Кб, тогда его нужно уменьшать (можно сделать форматирование с помощью VisualStudio, а если не поможет, тогда есть вариант с разделением конфигурационного файла на части). Примеры реализации такого варианта можно легко найти в сети Интернет (у нас оба варианта были использованы из-за большого объема настроек). Отдельные параметры (строки подключения, адреса) в конфиге можно поменять на актуальные.

  4. Развернуть контентные и кастомные БД (если ранее забыли развернуть) на новых серверах Sql Server для SharePoint (через бэкап, либо через Detach\Attach БД). 2 вариант более удобный, но более надежен 1 вариант по документации. Для SharePoint 2019 базы должны быть импортированы со стенда SharePoint 2016.

  5. Проверить портал. Шапка при открытии портала уже должна быть новая. Хотя возможны ошибки в отображении.

  6. Сделать Mount-SPContentDatabase для всех перенесенных контентных БД в SharePoint. Предварительно лучше запустить Test-SPContentDatabase (после проверки желательно исправить проблемы).

    Test-SPContentDatabase -Name 'name' -WebApplication 'url'

    Команда проверяет базу данных в веб-приложении, чтобы убедиться что все настройки на которые ссылается база установлены на ферме. После получения ошибок по возможности лучше их исправить.

    Mount-SPContentDatabase -Name 'name' -DataBaseServer '<content_db_name><bdalias>'-WebApplication 'url'

    Команда присоединяет существующую базу данных к веб-приложению.

  7. Сделать Upgrade контентных БД, при этом могут возникать ошибки, которые обычно не являются критичными. Требуется последовательно выполнить команды: Upgrade-SPContentDatabase, Test-SPSite, Repair-SPSite, Upgrade-SPSite.

    Upgrade-SPContentDatabase 'name' - для обновления базы данных контента до версии SharePoint 2016.

    Test-SPSite 'url' - выполняет ряд проверок работоспособности семейства веб-сайтов и его содержимого.

    Repair-SPSite -identity 'url' — делает то же самое, что и предыдущая команда, но устраняет все обнаруженные проблемы.

    Upgrade-SPSite 'url' -VersionUpgrade - обновляет семейства веб-сайтов, связанные с веб-приложением до режима SharePoint 2016 или SharePoint 2019. До выполнения этой команды семейство веб-сайтов все еще находится в режиме SharePoint 2013 или SharePoint 2016.

    Эти действия нужно выполнить для всех имеющихся контентных БД и сайт-коллекций

  8. Портал на SharePoint должен отображаться в том же виде, что и исходный. Для корректного отображения некоторых страниц могут потребоваться изменения в определенных настройках. В любом случае после данного этапа потребуется полноценное тестирование.

  9. Возможно, что потребуется перенести конфиги из папки c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\CONFIG\ (у нас такие были).

Установка и разворачивание SharePoint 2019

Установка и разворачивание SharePoint 2019 происходит по аналогии с SharePoint 2016 с небольшими различиями.

Для установки SP 2019 нужны следующие пререквизиты:

  • Роль веб-сервера (IIS)

  • Собственный клиент Microsoft SQL Server 2012 с пакетом обновления 4 (SP4)

  • Среда выполнения Microsoft Sync Framework 1.0 SP1 (x64)

  • Windows Server AppFabric

  • Расширения Microsoft Identity (Возможно, нужно будет установить фичу Windows Identity Foundation 3.5 через Server manager или PowerShell).

  • Клиент Майкрософт для защиты и контроля информации версии 2.1

  • Microsoft WCF Data Services 5.6

  • Microsoft .NET Framework 4.7.2

  • Накопительный пакет обновления 7 для Microsoft AppFabric 1.1 для Windows Server (KB3092423)

  • Распространяемый пакет Visual C++ для Visual Studio 2012

  • Распространяемый пакет Visual C++ для Visual Studio 2017

Контентные БД нужно использовать с бэкапов SharePoint 2016.

Выбор ролей сервера больше:

Выбор ролей сервера SharePoint 2019
Выбор ролей сервера SharePoint 2019

Стенд для временного решения SharePoint 2016 может не являться большим, а для SharePoint 2019 потребует максимальных ресурсов, которые в конечном итоге станут составляющей прода.

Upgrade контентных БД обязателен.

Для корректной работы портала требуется обновление решений, собранных под SharePoint 2019. Старые версии решений могут не работать на новой платформе. У нас примерно треть решений пришлось обновлять (менять пути к ресурсам в зависимости от версии и другие мелкие доработки). В целом с помощью UlsViewer получилось довольно быстро выявить главные проблемы в решениях.

Для SharePoint 2019 нужно развертывать все необходимые службы (на SharePoint 2016 это делать необязательно, у нас во всяком случае).

О службах в SharePoint 2019

Идеально было бы их развернуть с нуля, но не всегда это возможно.

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

По службе метаданных может потребоваться использование предыдущих настроек и БД.

Каждый случай индивидуален, и нужно принимать решение в зависимости от ситуации.

Итоги

Тестовый стенд был развернут, тестирование по миграции данных были выполнены, хотя в процессе и столкнулись с проблемами.

Сейчас происходит развертывание на проме. О результатах сообщу позже.

Если бы такая инструкция была бы в начале работ, это сильно бы помогло нам в работе. Надеюсь, что другим людям она поможет.

Комментарии (0)