Как создавать реплики чтения и управлять ими в Базе данных Azure для MySQL с помощью PowerShell
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — отдельный сервер
Внимание
База данных Azure для MySQL один сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для MySQL гибкого сервера. Дополнительные сведения о миграции на гибкий сервер База данных Azure для MySQL см. в статье "Что происходит с одним сервером База данных Azure для MySQL?"
В этой статье описано, как создавать реплики чтения и управлять ими в базе данных Azure для MySQL с помощью PowerShell. Дополнительные сведения о репликах чтения см. в этой статье.
Azure PowerShell
Вы можете создавать реплики чтения и управлять ими с помощью PowerShell.
Необходимые компоненты
Вот что вам нужно, чтобы выполнить инструкции, приведенные в этом руководстве:
- Модуль AZ PowerShell, установленный на локальном компьютере, или Azure Cloud Shell в браузере
- Сервер базы данных Azure для MySQL.
Внимание
Так как модуль 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 автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Внимание
Функция создания реплики чтения доступна только для серверов базы данных 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>