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


Как создавать реплики чтения и управлять ими в Базе данных Azure для MySQL с помощью PowerShell

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

Внимание

База данных Azure для MySQL один сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для MySQL гибкого сервера. Дополнительные сведения о миграции на гибкий сервер База данных Azure для MySQL см. в статье "Что происходит с одним сервером База данных Azure для MySQL?"

В этой статье описано, как создавать реплики чтения и управлять ими в базе данных Azure для MySQL с помощью PowerShell. Дополнительные сведения о репликах чтения см. в этой статье.

Azure PowerShell

Вы можете создавать реплики чтения и управлять ими с помощью PowerShell.

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

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

Внимание

Так как модуль PowerShell Az.MySql предоставляется в режиме предварительной версии, его нужно установить отдельно от модуля Az с помощью команды Install-Module -Name Az.MySql -AllowPrerelease. Как только модуль PowerShell Az.MySql станет общедоступным, он будет включен в один из будущих выпусков Az PowerShell и встроен в Azure Cloud Shell.

Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

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

Внимание

Функция создания реплики чтения доступна только для серверов базы данных Azure для MySQL в ценовой категории "Общее назначение" или "Оптимизированная для операций в памяти". Убедитесь, что исходный сервер находится в одной из этих ценовых категорий.

Если GTID включен на главном сервере (gtid_mode = ON), для только что созданных реплик также будет включена функция GTID и будет применяться репликация на базе GTID. Дополнительные сведения см. в статье о глобальном идентификаторе транзакций (GTID).

Создание реплики чтения

Внимание

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

Чтобы создать сервер реплики чтения, выполните следующую команду:

Get-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

Для команды New-AzMySqlReplica обязательны указанные ниже параметры.

Параметр Пример значения Описание
ResourceGroupName  myresourcegroup  Группа ресурсов, в которой нужно создать сервер-реплику. 
Имя. mydemoreplicaserver Имя нового сервера реплики, который создается.

Чтобы создать реплику чтения между регионами, используйте параметр Расположение (Location). В примере ниже создается реплика в регионе Западная часть США.

Get-AzMySqlServer -Name mrdemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup -Location westus

Примечание.

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

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

Примечание.

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

Вывод списка реплик для исходного сервера

Чтобы просмотреть все реплики для данного исходного сервера, выполните следующую команду:

Get-AzMySqlReplica -ResourceGroupName myresourcegroup -ServerName mydemoserver

Для команды Get-AzMySqlReplica обязательны указанные ниже параметры.

Параметр Пример значения Описание
ResourceGroupName  myresourcegroup  Группа ресурсов, в которой будет создан сервер реплики. 
ServerName mydemoserver Имя или идентификатор исходного сервера.

Удаление сервера-реплики

Сервер реплики чтения можно удалить, выполнив командлет Remove-AzMySqlServer.

Remove-AzMySqlServer -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

Удаление исходного сервера

Внимание

Удаление исходного сервера приводит к остановке репликации на все серверы-реплики и удалению самого исходного сервера. Серверы-реплики становятся автономными серверами, которые начинают поддерживать операции чтения и записи.

Чтобы удалить исходный сервер, можно использовать командлет Remove-AzMySqlServer.

Remove-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup

Известная проблема

Существует два поколения хранилищ, которые используются серверами на уровнях общего назначения и с оптимизацией для операций в памяти: хранилище общего назначения версии 1 (поддерживает до 4 ТБ) и хранилище общего назначения версии 2 (до 16 ТБ). Исходный сервер и сервер-реплика должны использовать одинаковый тип хранилища. Так как хранилище общего назначения версии 2 доступно не во всех регионах, вы должны выбрать правильный регион реплики при использовании расположения с PowerShell для создания реплики чтения. Сведения о том, как определить тип хранилища исходного сервера, см. здесь.

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

Get-AzMySqlServer -Name <source-servername> -ResourceGroupName <RG-Name> | New-AzMySqlReplica -Name <replica-servername> -ResourceGroupName <RG-Name> -Location <region-name>

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