В первой статье об обновлении Microsoft SQL Server 2016 мы рассмотрели причины обновления, а также некоторые предварительные задачи, о которых необходимо помнить. Теперь мы остановимся на задачах, выполняемых в ходе обновления.
В процессе обновления
Как отмечалось в предыдущей статье, существует два основных типа обновления: на месте и параллельное. При обновлении на месте нет необходимости беспокоиться о передаче данных, тогда как для параллельного обновления требуется перемещать данные с одного сервера на другой. Существует четыре основных варианта миграции данных.
- Резервное копирование и восстановление: удачный вариант для небольших систем и поэтапных миграций; также можно использовать метод отсоединения и присоединения.
- Предварительное размещение: подготовка данных с использованием полного, разностного резервного копирования или резервного копирования журналов транзакций для уменьшения объема перемещаемых данных; еще заслуживает внимания метод доставки журналов.
- Зеркальное отображение базы данных: обеспечивает простой перенос данных со старой системы на новую.
- Группы доступности: более сложный метод, чем зеркальное отображение базы данных, так как может охватывать несколько баз данных.
В первой статье была еще представлена концепция последовательного обновления. В этом случае используются функции высокой доступности, такие как зеркальное отображение, кластеризация или группы доступности. Идея состоит в том, что вы можете обновить вторичный узел, перейти на другой ресурс и продолжать обновление всех узлов до тех пор, пока не будет обновлен первичный узел, а затем при необходимости выполнить переход на другой ресурс. Рассмотрим шаги, необходимые для реализации каждого подхода.
Обновление на месте
Выполнить обновление на месте проще всего, но сложно вернуться назад в случае возникновения неполадок. Обновление на месте предполагает следующие действия:
- Убедитесь, что существуют резервные копии всех баз данных (пользовательских и системных). Если имеется база данных, для которой не используется модель восстановления SIMPLE, проверьте, существует ли резервная копия журнала транзакций. Убедитесь, что эти резервные копии могут быть восстановлены.
- Просмотрите список необходимых компонентов для SQL Server 2016 (https://msdn.microsoft.com/en-us/library/ms143712.aspx) и установите нужные.
- Запустите программу установки из дистрибутива SQL Server 2016.
- Выполните задачи, которые нужно завершить после обновления.
- Проведите тщательное тестирование и убедитесь в корректной работе всех функций.
Необходимых действий при параллельном обновлении больше, и они считаются более сложными, но при этом обеспечивается более гибкий возврат к предыдущему состоянию, поскольку вы не вступаете в контакт с исходной системой, пока она еще эксплуатируется.
Шаги параллельного обновления похожи как для текущего, так и для нового сервера базы данных. Единственное различие в том, что для нового сервера необходимо установить 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 несложен сам по себе, если составить правильный план, но остаются дополнительные задачи, которые необходимо завершить после обновления и прежде чем система будет передана конечным пользователям для тестирования. О задачах, которые необходимо выполнить после обновления, речь пойдет в следующей статье серии.