Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Эта статья содержит упоминания термина 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, выполните следующие действия.
На портале Azure выберите существующий гибкий сервер Базы данных Azure для MySQL 5.7.
Внимание
Рекомендуется сначала выполнить обновление для восстановленной копии сервера, а не напрямую обновить рабочую среду. См. статью Как выполнить восстановление до точки во времени.
На странице "Обзор" на панели инструментов выберите "Обновить".
Внимание
Перед обновлением ссылки на просмотр списка функций, удаленных в 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.
Проверка совместимости схемы
Прежде чем продолжить обновление, запустите официальное средство проверки обновления MySQL Oracle, чтобы убедиться, что текущая схема базы данных совместима с MySQL 8.0. Этот шаг имеет решающее значение для обеспечения плавного процесса обновления.
Решение о предварительном обновлении
Прежде чем продолжить обновление, необходимо выбрать уровень вычислений, на который необходимо выполнить обновление основной версии. По умолчанию система будет обновляться с номера SKU с ускорением до наиболее базового номера SKU общего назначения, но при необходимости можно выбрать обновление до более высокого уровня вычислений.
Примечание.
Хотя сервер работает на уровне "Общего назначения" во время обновления, вы будете взиматься только за фактические ресурсы общего назначения, используемые в течение этого периода.
Решение после обновления
Решите, следует ли сохранить номер SKU общего назначения или вернуться к номеру SKU с возможностью ускорения после обновления. Этот выбор запрашивается во время начальных шагов обновления.
Система автоматически обновит ваш уровень вычислений с SKU для прорывных вычислений до выбранного SKU универсального назначения, который поддерживает обновление основной версии.
Обновление основной версии
После обновления уровня вычислений система инициирует процесс обновления основной версии. Отслеживайте ход обновления с помощью портал Azure. Процесс обновления может занять некоторое время в зависимости от размера и действия базы данных.
Примечание.
Если обновление основной версии завершается сбоем, вычислительный уровень не будет автоматически возвращаться к предыдущей резервируемой SKU. Это позволит клиентам продолжить обновление основной версии, не требуя повторного обновления уровня вычислений.
Автоматическая реверсия
В зависимости от вашего решения перед обновлением, система будет сохранять SKU общего назначения или автоматически вернется к SKU с функцией ускорения после завершения обновления.
Примечание.
Если вы выбрали автоматический возврат к Burstable SKU, система по умолчанию возвращается к SKU B2S.
Выполните запланированное обновление основной версии с MySQL 5.7 до MySQL 8.0 с помощью портал Azure для серверов SKU общего назначения и критически важный для бизнеса
Чтобы выполнить обновление основной версии сервера Гибкого сервера Базы данных Azure для MySQL 5.7 с помощью портала Azure, выполните следующие действия.
На портале Azure выберите существующий гибкий сервер Базы данных Azure для MySQL 5.7.
Внимание
Рекомендуется сначала выполнить обновление для восстановленной копии сервера, а не напрямую обновить рабочую среду. См. статью Как выполнить восстановление до точки во времени.
На странице "Обзор" на панели инструментов выберите "Обновить".
Внимание
Перед обновлением ссылки на просмотр списка функций, удаленных в 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.
Выполнение предварительной проверки
Прежде чем продолжить обновление, нажмите кнопку "Проверить ", чтобы проверить совместимость сервера с MySQL 8.0.
Примечание.
При использовании функции "Проверить" для оценки схемы базы данных для совместимости с MySQL 8.0 обратите внимание на следующие аспекты:
- Блокировка таблиц во время проверки: процесс проверки включает блокировку таблиц, чтобы точно проверить всю схему. Это может привести к истечении времени ожидания запроса, если база данных находится под тяжелой нагрузкой.
Рекомендация. Избегайте выполнения проверки во время пиковых рабочих часов или когда база данных обрабатывает высокий трафик. Вместо этого запланируйте проверку в периоды низкой активности, чтобы снизить влияние на операции.
- Потенциал для зависания из-за больших результирующих наборов: в некоторых случаях, особенно с сложными базами данных, содержащими большое количество объектов, результат проверки может стать слишком большим, чтобы обрабатываться или отображаться в рабочем процессе в сети. Это может привести к тому, что операция "Проверка" может зависать или оставаться на неопределенный срок.
Рекомендация. Если вы столкнулись с этой проблемой, мы рекомендуем выполнить проверку локально с помощью официального средства проверки обновления на стороне клиента Oracle, например в оболочке MySQL. Этот подход позволяет избежать ограничений размера результатов на стороне платформы и обеспечивает более подробные и надежные выходные данные проверки.
- Рекомендуемые варианты использования для онлайн-проверки: функция "Проверка" в Сети предназначена для простых или умеренно сложных схем. Для крупномасштабных рабочих сред, таких как те, в которых содержатся тысячи таблиц, представлений, подпрограмм или других объектов схемы, настоятельно рекомендуется использовать средство проверки обновления на стороне клиента Oracle, чтобы выполнить проверку совместимости. Это гарантирует, что полная схема анализируется комплексно и избегает потенциальных проблем, связанных с размером результатов или временем ожидания проверки.
На боковой панели Обновление, в текстовом поле Версия MySQL для обновления, проверьте основную версию MySQL, до которой вы хотите выполнить обновление, то есть 8.0.
Прежде чем обновить основной сервер, сначала необходимо обновить все связанные серверы реплик чтения. Пока это не будет завершено, обновление будет отключено.
На основном сервере выберите сообщение подтверждения, чтобы убедиться, что все серверы реплики были обновлены, а затем нажмите кнопку "Обновить".
На реплике чтения и автономных серверах обновление включается по умолчанию.
Выполнение запланированного обновления основной версии с MySQL 5.7 до MySQL 8.0 с помощью Azure CLI
Чтобы выполнить обновление основной версии гибкого сервера Базы данных Azure для MySQL 5.7 с помощью Azure CLI, выполните следующие действия.
Установите Azure CLI для Windows или используйте Azure CLI в Azure Cloud Shell для выполнения команд обновления.
Для этого обновления требуется версия 2.40.0 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена. Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
После входа выполните команду 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
В командной строке подтверждения введите y , чтобы подтвердить или n , чтобы остановить процесс обновления, а затем нажмите клавишу ВВОД.
Обновление основной версии с MySQL 5.7 до MySQL 8.0 на сервере реплики чтения с помощью портал Azure
Чтобы выполнить обновление основной версии гибкого сервера Базы данных Azure для MySQL 5.7 до MySQL 8.0 на реплике чтения с помощью портала Azure, выполните следующие действия.
На портале Azure выберите существующий сервер гибкой реплики Базы данных Azure для MySQL 5.7.
На странице "Обзор" на панели инструментов выберите "Обновить".
Внимание
Перед обновлением ссылки на просмотр списка функций, удаленных в MySQL 8.0. Проверьте устаревшие значения sql_mode и удалите их из текущего гибкого сервера Базы данных Azure для MySQL 5.7 с помощью страницы параметров сервера на портале Azure, чтобы избежать сбоев развертывания.
В разделе "Обновление" выберите "Обновить ", чтобы обновить гибкий сервер реплики Базы данных Azure для MySQL 5.7 до MySQL 8.0.
Появится уведомление о том, что обновление выполнено успешно.
На странице "Обзор" убедитесь, что ваш сервер реплики чтения гибкого сервера базы данных Azure для MySQL работает с версией 8.0.
Теперь перейдите на основной сервер и выполните обновление основной версии.
Выполнение минимального обновления основной версии простоя с MySQL 5.7 до MySQL 8.0 с помощью реплик чтения
Чтобы выполнить обновление основной версии гибкого сервера Базы данных Azure для MySQL 5.7 до MySQL 8.0 с минимальным временем простоя с помощью серверов реплик чтения, выполните следующие действия.
На портале Azure выберите существующий гибкий сервер Базы данных Azure для MySQL 5.7.
Создайте реплику чтения сервера-источника.
Обновите реплику чтения до версии 8.0.
Убедившись, что сервер-реплика работает с версией 8.0, остановите подключение приложения к основному серверу.
Проверьте состояние репликации, чтобы убедиться, что реплика поймала основную, чтобы все данные были синхронизированы, и что новые операции не выполняются на первичной.
Подтвердите команду состояния реплики на сервере реплики, чтобы просмотреть состояние репликации.
SHOW SLAVE STATUS\G
Если состояние Slave_IO_Running и Slave_SQL_Running да , а значение Seconds_Behind_Master равно 0, репликация работает хорошо. Seconds_Behind_Master указывает время запаздывания реплики. Если значение не равно 0, то реплика по-прежнему обрабатывает обновления. Убедившись, что значение Seconds_Behind_Master равно 0, безопасно остановить репликацию.
Повысьте уровень реплики чтения до сервера источника, остановив репликацию.
Задайте параметру сервера read_only значение 0 (OFF), чтобы начать запись на повышенных первичных.
Наведите приложение на новую первичную (бывшая реплика), на которой выполняется сервер 8.0. У каждого сервера уникальная строка подключения. Обновите приложение так, чтобы оно указывало на реплику (бывшую), а не на источник.
Примечание.
Этот сценарий вызывает простой только во время шагов 4–7.
Часто задаваемые вопросы
Это приведет к простою сервера и если да, сколько времени?
Чтобы обеспечить минимальное время простоя во время обновления, выполните действия, описанные в разделе "Выполнение минимального простоя основного обновления версий с MySQL 5.7 до MySQL 8.0 с помощью реплик чтения". Сервер недоступен во время процесса обновления, поэтому мы рекомендуем выполнить эту операцию во время запланированного периода обслуживания. Предполагаемое время простоя зависит от размера базы данных, подготовленного объема хранилища (количества операций ввода-вывода в секунду) и количества таблиц в базе данных. Время обновления напрямую пропорционально количеству таблиц на сервере. Чтобы оценить время простоя для серверной среды, рекомендуется сначала выполнить обновление восстановленной копии сервера.
Что происходит с резервными копиями после обновления?
Все резервные копии (автоматические или по запросу), сделанные до обновления основной версии, при использовании для восстановления всегда будут восстанавливаться на сервере с более старой версией (5.7). Все резервные копии (автоматические или по запросу), выполненные после восстановления основной версии на сервер с обновленной версией (8.0). Настоятельно рекомендуется выполнить резервное копирование по запросу, прежде чем выполнять обновление основной версии для простого отката.
В настоящее время я использую SKU с возможностью ускорения, планирует ли Корпорация Майкрософт поддерживать обновление основных версий для этого номера SKU в будущем?
SKU с динамической производительностью не поддерживает обновление основной версии из-за ограничения производительности.
Если необходимо выполнить обновление основной версии в экземпляре гибкого сервера базы данных Azure для MySQL и в настоящее время используется пакет SKU с поддержкой увеличения, временным решением будет перейти на пакет SKU "Общего назначения" или "Критически важный для бизнеса", выполнить обновление, а затем вернуться к пакету SKU с поддержкой увеличения.
Обновление до более высокого номера SKU может привести к изменению цен и может привести к увеличению затрат на развертывание. Однако, так как процесс обновления не займет много времени, добавленные затраты не должны быть значительными.