Поделиться через


Обновление основной версии в База данных Azure для MySQL — гибкий сервер

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — гибкий сервер

Примечание.

Эта статья содержит упоминания термина slave (ведомый) . Корпорация Майкрософт больше не использует его. Когда этот термин будет удален из программного обеспечения, мы удалим его из статьи.

В этой статье описывается, как обновить основную версию MySQL на месте на База данных Azure для MySQL гибком сервере. Эта функция позволяет клиентам выполнять обновление на месте своих серверов MySQL 5.7 до MySQL 8.0 без перемещения данных или необходимости вносить изменения в любое приложение строка подключения.

Внимание

  • Длительность простоя зависит от размера экземпляра базы данных и количества таблиц, содержащихся в ней.
  • При инициировании обновления основной версии для База данных Azure для MySQL гибкого сервера с помощью REST API или пакета SDK не изменяйте другие свойства службы в том же запросе. Одновременные изменения не допускаются и могут привести к непреднамеренные результаты или сбой запроса. Выполните изменения свойств в отдельных операциях после обновления.
  • Некоторые рабочие нагрузки могут не проявлять повышенную производительность после обновления с версии 5.7 до 8.0. Мы рекомендуем оценить производительность рабочей нагрузки, сначала создав сервер реплики (в качестве тестового сервера), а затем продвигая его на автономный сервер, а затем выполняя рабочую нагрузку на тестовом сервере перед реализацией обновления в рабочей среде.
  • Обновление основной версии MySQL является необратимой. Развертывание может завершиться ошибкой, если при проверке будет установлено, что на сервере настроены удаленные или нерекомендуемые функции. Вы можете внести необходимые изменения конфигурации на сервере и повторить обновление.

Необходимые компоненты

  • Реплики чтения с mySQL версии 5.7 следует обновить до того, как основной сервер должен быть совместим между различными версиями MySQL, см. дополнительные сведения о совместимости репликации между версиями MySQL.
  • Перед обновлением рабочих серверов теперь проще и эффективнее использовать встроенную функцию проверки в портал Azure. Это средство предварительно проверяет совместимость схемы базы данных с MySQL 8.0, чтобы выделить потенциальные проблемы. Хотя мы предлагаем этот удобный вариант, мы настоятельно рекомендуем использовать официальное средство проверки обновления Oracle MySQL для проверки совместимости схемы базы данных и выполнения необходимого теста регрессии для проверки совместимости приложений с функциями, удаленными/ в новой версии MySQL.

    Примечание.

    При использовании официального средства Oracle для проверки совместимости схем могут возникнуть некоторые предупреждения, указывающие на непредвиденные маркеры в хранимых процедурах, например: mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode Эти предупреждения можно безопасно игнорировать. Они ссылаются на встроенные хранимые процедуры, префиксированные с помощью mysql., которые используются для поддержки функций Azure MySQL. Эти предупреждения не влияют на функциональные возможности базы данных.

  • Активируйте резервное копирование по запросу перед выполнением основного обновления версий на рабочем сервере, который можно использовать для отката до версии 5.7 из полной резервной копии по запросу.
  • Прежде чем продолжить обновление основной версии, убедитесь, что в базе данных нет активных или ожидающих транзакций XA, так как текущие транзакции XA могут привести к сбою процесса обновления. Чтобы избежать этой проблемы, сначала проверьте наличие любых транзакций XA в состоянии "подготовленный" путем выполнения XA RECOVER;. Для определенных транзакций используйте ; XA ROLLBACK '{xid}'для отката каждой транзакции, заменив {xid} идентификатором транзакции. Убедитесь, что все транзакции XA фиксируются или откатываются перед началом обновления для поддержания согласованности транзакций и снижения риска сбоев обновления.

Выполните запланированное обновление основной версии с MySQL 5.7 до MySQL 8.0 с помощью портал Azure для серверов SKU с возможностью ускорения

Для выполнения обновления основной версии для уровня вычислений SKU с возможностью База данных Azure для MySQL требуется специализированный рабочий процесс. Это связано с тем, что обновления основных версий являются ресурсоемкими, требуя значительных ресурсов ЦП и памяти. Экземпляры номера SKU с высокой производительностью могут бороться в соответствии с этими требованиями, что может привести к сбою процесса обновления. Поэтому при обновлении номера SKU с возможностью ускорения система сначала обновляет уровень вычислений до номера SKU общего назначения, чтобы обеспечить наличие достаточных ресурсов для обновления.

Чтобы выполнить обновление основной версии для уровня вычислительных ресурсов SKU База данных Azure для MySQL с помощью портал Azure, выполните следующие действия.

  1. В портал Azure выберите существующий База данных Azure для MySQL гибкий сервер 5.7.

    Внимание

    Рекомендуется сначала выполнить обновление для восстановленной копии сервера, а не напрямую обновить рабочую среду. См. статью Как выполнить восстановление до точки во времени.

  2. На странице "Обзор" на панели инструментов выберите "Обновить".

    Внимание

    Перед обновлением ссылки на просмотр списка функций, удаленных в MySQL 8.0. Проверьте устаревшие значения sql_mode и удалите их из текущего База данных Azure для MySQL гибкого сервера 5.7 с помощью колонки параметров сервера в портал Azure, чтобы избежать сбоя развертывания. sql_mode со значениями NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS и NO_TABLE_OPTIONS больше не поддерживаются в MySQL 8.0.

    Снимок экрана: База данных Azure для MySQL гибкое обновление сервера.

  3. Проверка совместимости схемы

    Прежде чем продолжить обновление, запустите официальное средство проверки обновления MySQL Oracle, чтобы убедиться, что текущая схема базы данных совместима с MySQL 8.0. Этот шаг имеет решающее значение для обеспечения плавного процесса обновления.

  4. Решение о предварительном обновлении

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

    Примечание.

    Хотя сервер работает на уровне "Общего назначения" во время обновления, вы будете взиматься только за фактические ресурсы общего назначения, используемые в течение этого периода.

  5. Решение после обновления

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

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

  6. Обновление основной версии

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

    Примечание.

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

  7. Автоматическая реверсия

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

    Примечание.

    Если вы решили автоматически вернуться к номеру SKU с возможностью ускорения, система вернется к номеру SKU B2S по умолчанию.

Выполните запланированное обновление основной версии с MySQL 5.7 до MySQL 8.0 с помощью портал Azure для серверов SKU общего назначения и критически важный для бизнеса

Чтобы выполнить обновление основной версии гибкого сервера База данных Azure для MySQL 5.7 с помощью портал Azure, выполните следующие действия.

  1. В портал Azure выберите существующий База данных Azure для MySQL гибкий сервер 5.7.

    Внимание

    Рекомендуется сначала выполнить обновление для восстановленной копии сервера, а не напрямую обновить рабочую среду. См. статью Как выполнить восстановление до точки во времени.

  2. На странице "Обзор" на панели инструментов выберите "Обновить".

    Внимание

    Перед обновлением ссылки на просмотр списка функций, удаленных в MySQL 8.0. Проверьте устаревшие значения sql_mode и удалите их из текущего База данных Azure для MySQL гибкого сервера 5.7 с помощью колонки параметров сервера в портал Azure, чтобы избежать сбоя развертывания. sql_mode со значениями NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS и NO_TABLE_OPTIONS больше не поддерживаются в MySQL 8.0.

    Снимок экрана: База данных Azure для MySQL гибкое обновление сервера.

  3. Выполнение предварительной проверки

    Прежде чем продолжить обновление, нажмите кнопку "Проверить ", чтобы проверить совместимость сервера с MySQL 8.0.

    Снимок экрана: проверка.

    Внимание

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

  4. На боковой панели обновления в текстовом поле MySQL проверьте основную версию MySQL, до которой требуется выполнить обновление, т. е. 8.0.

    Снимок экрана: обновление.

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

  5. На основном сервере выберите сообщение подтверждения, чтобы убедиться, что все серверы реплики были обновлены, а затем нажмите кнопку "Обновить".

    Снимок экрана: обновление.

    На реплике чтения и автономных серверах обновление включается по умолчанию.

Выполнение запланированного обновления основной версии с MySQL 5.7 до MySQL 8.0 с помощью Azure CLI

Чтобы выполнить обновление основной версии База данных Azure для MySQL гибкого сервера 5.7 с помощью Azure CLI, выполните следующие действия.

  1. Установите Azure CLI для Windows или используйте Azure CLI в Azure Cloud Shell для выполнения команд обновления.

    Для этого обновления требуется версия 2.40.0 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена. Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  2. После входа выполните команду az mysql server upgrade .

    az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
    
  3. В командной строке подтверждения введите y , чтобы подтвердить или n , чтобы остановить процесс обновления, а затем нажмите клавишу ВВОД.

Обновление основной версии с MySQL 5.7 до MySQL 8.0 на сервере реплики чтения с помощью портал Azure

Чтобы выполнить обновление основной версии гибкого сервера База данных Azure для MySQL 5.7 до MySQL 8.0 на реплике чтения с помощью портал Azure, выполните следующие действия.

  1. В портал Azure выберите существующий База данных Azure для MySQL гибкий сервер 5.7 реплики чтения.

  2. На странице "Обзор" на панели инструментов выберите "Обновить".

Внимание

Перед обновлением ссылки на просмотр списка функций, удаленных в MySQL 8.0. Проверьте устаревшие значения sql_mode и удалите их из текущего База данных Azure для MySQL гибкого сервера 5.7 с помощью колонки параметров сервера на портале Azure, чтобы избежать сбоя развертывания.

  1. В разделе "Обновление" выберите "Обновить", чтобы обновить сервер гибкой реплики чтения База данных Azure для MySQL версии 5.7 до MySQL 8.0.

    Появится уведомление о том, что обновление выполнено успешно.

  2. На странице обзора убедитесь, что на сервере реплики чтения База данных Azure для MySQL База данных Azure для MySQL работает версия 8.0.

  3. Теперь перейдите на основной сервер и выполните обновление основной версии.

Выполнение минимального обновления основной версии простоя с MySQL 5.7 до MySQL 8.0 с помощью реплик чтения

Чтобы выполнить обновление основной версии База данных Azure для MySQL гибкого сервера 5.7 до MySQL 8.0 с минимальным временем простоя с помощью серверов реплик чтения, выполните следующие действия.

  1. В портал Azure выберите существующий База данных Azure для MySQL гибкий сервер 5.7.

  2. Создайте реплику чтения сервера-источника.

  3. Обновите реплику чтения до версии 8.0.

  4. Убедившись, что сервер-реплика работает с версией 8.0, остановите подключение приложения к основному серверу.

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

  6. Подтвердите команду состояния реплики на сервере реплики, чтобы просмотреть состояние репликации.

     SHOW SLAVE STATUS\G
    

    Если состояние Slave_IO_Running и Slave_SQL_Running да , а значение Seconds_Behind_Master равно 0, репликация работает хорошо. Seconds_Behind_Master указывает время запаздывания реплики. Если значение не равно 0, то реплика по-прежнему обрабатывает обновления. После подтверждения того, что значение Seconds_Behind_Master равно ****, безопасно остановить репликацию.

  7. Повысьте уровень реплики чтения до сервера источника, остановив репликацию.

  8. Задайте параметру сервера read_only значение 0 (OFF), чтобы начать запись на повышенных первичных.

  9. Наведите приложение на новую первичную (бывшая реплика), на которой выполняется сервер 8.0. У каждого сервера уникальная строка подключения. Обновите приложение так, чтобы оно указывало на реплику (бывшую), а не на источник.

Примечание.

Этот сценарий вызывает простой только во время шагов 4–7.

Часто задаваемые вопросы

  • Это приведет к простою сервера и если да, сколько времени?

    Чтобы обеспечить минимальное время простоя во время обновления, выполните действия, описанные в разделе "Выполнение минимального простоя основного обновления версий с MySQL 5.7 до MySQL 8.0 с помощью реплик чтения". Сервер будет недоступен во время процесса обновления, поэтому рекомендуется выполнить эту операцию во время запланированного периода обслуживания. Предполагаемое время простоя зависит от размера базы данных, подготовленного объема хранилища (количества операций ввода-вывода в секунду) и количества таблиц в базе данных. Время обновления напрямую пропорционально количеству таблиц на сервере. Чтобы оценить время простоя для серверной среды, рекомендуется сначала выполнить обновление восстановленной копии сервера.

  • Что происходит с резервными копиями после обновления?

    Все резервные копии (автоматические или по запросу), сделанные до обновления основной версии, при использовании для восстановления всегда будут восстанавливаться на сервере с более старой версией (5.7). Все резервные копии (автоматические или по запросу), выполненные после обновления основной версии, будут восстановлены на сервер с обновленной версией (8.0). Настоятельно рекомендуется выполнить резервное копирование по запросу, прежде чем выполнять обновление основной версии для простого отката.

  • В настоящее время я использую SKU с возможностью ускорения, планирует ли Корпорация Майкрософт поддерживать обновление основных версий для этого номера SKU в будущем?

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

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

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

Следующие шаги