В первой статье об обновлении Microsoft SQL Server 2016 мы рассмотрели причины обновления, а также некоторые предварительные задачи, о которых необходимо помнить. Теперь мы остановимся на задачах, выполняемых в ходе обновления.

В процессе обновления

Как отмечалось в предыдущей статье, существует два основных типа обновления: на месте и параллельное. При обновлении на месте нет необходимости беспокоиться о передаче данных, тогда как для параллельного обновления требуется перемещать данные с одного сервера на другой. Существует четыре основных варианта миграции данных.

  • Резервное копирование и восстановление: удачный вариант для небольших систем и поэтапных миграций; также можно использовать метод отсоединения и присоединения.
  • Предварительное размещение: подготовка данных с использованием полного, разностного резервного копирования или резервного копирования журналов транзакций для уменьшения объема перемещаемых данных; еще заслуживает внимания метод доставки журналов.
  • Зеркальное отображение базы данных: обеспечивает простой перенос данных со старой системы на новую.
  • Группы доступности: более сложный метод, чем зеркальное отображение базы данных, так как может охватывать несколько баз данных.

В первой статье была еще представлена концепция последовательного обновления. В этом случае используются функции высокой доступности, такие как зеркальное отображение, кластеризация или группы доступности. Идея состоит в том, что вы можете обновить вторичный узел, перейти на другой ресурс и продолжать обновление всех узлов до тех пор, пока не будет обновлен первичный узел, а затем при необходимости выполнить переход на другой ресурс. Рассмотрим шаги, необходимые для реализации каждого подхода.

Обновление на месте

Выполнить обновление на месте проще всего, но сложно вернуться назад в случае возникновения неполадок. Обновление на месте предполагает следующие действия:

  1. Убедитесь, что существуют резервные копии всех баз данных (пользовательских и системных). Если имеется база данных, для которой не используется модель восстановления SIMPLE, проверьте, существует ли резервная копия журнала транзакций. Убедитесь, что эти резервные копии могут быть восстановлены.
  2. Просмотрите список необходимых компонентов для SQL Server 2016 (https://msdn.microsoft.com/en-us/library/ms143712.aspx) и установите нужные.
  3. Запустите программу установки из дистрибутива SQL Server 2016.
  4. Выполните задачи, которые нужно завершить после обновления.
  5. Проведите тщательное тестирование и убедитесь в корректной работе всех функций.

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

Шаги параллельного обновления похожи как для текущего, так и для нового сервера базы данных. Единственное различие в том, что для нового сервера необходимо установить SQL Server.

1. Убедитесь, что существуют резервные копии для всех баз данных (пользовательских и системных). Если имеется база данных, для которой не используется модель восстановления SIMPLE, проверьте, существует ли резервная копия журнала транзакций. Убедитесь, что эти резервные копии могут быть восстановлены.

2. С помощью сценариев определите все необходимые системные объекты.

3. С помощью сценариев определите необходимые пакеты SSIS (из MSDB или как неструктурированные файлы).

4. Для нового экземпляра на новом сервере:

  • просмотрите список необходимых компонентов для SQL Server 2016 (https://msdn.microsoft.com/en-us/library/ms143712.aspx) и установите нужные;
  • установите нужную версию и редакцию SQL Server 2016.

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

6. Перенесите пакеты SSIS в MSDB (или неструктурированные файлы, если применимо).

7. Выберите базы данных для переноса, переведите в автономный режим.

8. Перенесите базу данных на новый экземпляр. Повторите это действие для каждой базы данных.

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

10. Проведите тщательное тестирование и убедитесь в корректной работе всех функций.

Последовательное обновление

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

Последовательное обновление состоит из следующих шагов:

1. Выберите метод высокой доступности (доставка журналов, зеркальное отображение базы данных, группы доступности).

2. Выберите один из вариантов:

  • обновите один из вторичных узлов, следуя приведенным выше инструкциям по обновлению на месте;
  • установите SQL Server 2016 на новом сервере (и добавьте его в качестве узла, если это возможно).

3. Выполните переключение на данный вторичный узел.

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

5. Проведите тщательное тестирование и убедитесь в корректной работе всех функций.

6. Повторите обновление для всех оставшихся вторичных узлов.

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

8. Проведите тщательное тестирование и убедитесь в корректной работе всех функций на каждом узле.

9. Повторите обновление для первичного узла.

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

11. Проведите тщательное тестирование и убедитесь в корректной работе всех функций на первичном узле.

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

Имейте в виду, что перемещение данных при последовательном обновлении происходит лишь в одном направлении. Вы можете перейти со старой версии SQL Server на новую, но не наоборот. Поэтому если вы выполняете последовательное обновление и перемещаете данные на обновленный узел, то не сможете вернуться назад без восстановления из резервных копий на исходном сервере. Вы получите соответствующие сообщения об ошибках, будьте к этому готовы. Просто помните, что SQL Server предупреждает вас о невозможности вернуться к предыдущей версии.

Процесс обновления SQL Server несложен сам по себе, если составить правильный план, но остаются дополнительные задачи, которые необходимо завершить после обновления и прежде чем система будет передана конечным пользователям для тестирования. О задачах, которые необходимо выполнить после обновления, речь пойдет в следующей статье серии.