Creación y administración de réplicas de lectura en Azure Database for MySQL mediante PowerShell
SE APLICA A: Azure Database for MySQL: Servidor único
Importante
El servidor único de Azure Database for MySQL está en proceso de retirada. Es muy recomendable actualizar al servidor flexible de Azure Database for MySQL. Para obtener más información sobre la migración al servidor flexible de Azure Database for MySQL, consulte ¿Qué sucede con el servidor único de Azure Database for MySQL?
En este artículo aprenderá a crear y administrar réplicas de lectura en el servicio Azure Database for MySQL mediante PowerShell. Para más información acerca de las réplicas de lectura, consulte la introducción.
Azure PowerShell
Puede crear y administrar réplicas de lectura mediante PowerShell.
Requisitos previos
Para completar esta guía, necesita:
- El módulo Az PowerShell instalado localmente o Azure Cloud Shell en el explorador
- Un servidor de Azure Database for MySQL
Importante
Mientras el módulo Az.MySql PowerShell se encuentra en versión preliminar, debe instalarlo por separado desde el módulo Az PowerShell con el siguiente comando: Install-Module -Name Az.MySql -AllowPrerelease
.
Una vez que el módulo Az.MySql PowerShell esté disponible con carácter general, formará parte de las futuras versiones del módulo Az PowerShell y estará disponible de forma nativa en Azure Cloud Shell.
Si decide usar PowerShell de forma local, conéctese a su cuenta de Azure con el cmdlet Connect-AzAccount.
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción | Ejemplo o vínculo |
---|---|
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Importante
La característica de réplica de lectura solo está disponible para servidores de Azure Database for MySQL en los planes de tarifa De uso general u Optimizada para memoria. Asegúrese de que el servidor de origen esté en uno de estos planes de tarifa.
Si GTID está habilitado en un servidor principal (gtid_mode
= ON), las réplicas recién creadas también tendrán GTID habilitado y usarán la replicación basada en GTID. Para más información, consulte Identificador de transacción global (GTID).
Creación de una réplica de lectura
Importante
Si el servidor de origen no tiene servidores de réplica existentes, es posible que el servidor de origen necesite reiniciarse para prepararse para la replicación en función del almacenamiento usado (v1/v2). Considere la posibilidad de reiniciar el servidor y realizar esta operación durante las horas de menos actividad. Consulte Reinicio del servidor de origen para obtener más detalles.
Un servidor de réplica de lectura se puede crear mediante el comando siguiente:
Get-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup |
New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup
El comando New-AzMySqlReplica
requiere los siguientes parámetros:
Configuración | Valor de ejemplo | Descripción |
---|---|---|
ResourceGroupName | myresourcegroup | Grupo de recursos donde se crea el servidor de réplica. |
Nombre | mydemoreplicaserver | Nombre del nuevo servidor de réplica que se crea. |
Para crear una réplica de lectura entre regiones, use el parámetro Location. En el siguiente ejemplo, se crea una réplica en la región Oeste de EE. UU. .
Get-AzMySqlServer -Name mrdemoserver -ResourceGroupName myresourcegroup |
New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup -Location westus
Nota
Para más información sobre las regiones en las que puede crear una réplica, consulte el artículo sobre los conceptos de la réplica de lectura.
De forma predeterminada, las réplicas de lectura se crean con la misma configuración de servidor que el origen, a menos que se especifique el parámetro Sku.
Nota
Se recomienda mantener la configuración del servidor de réplica con valores iguales o mayores que el de origen para asegurarse de que la réplica funciona al mismo nivel que el servidor maestro.
Enumeración de las réplicas de un servidor de origen
Para ver todas las réplicas de un determinado servidor de origen, ejecute el siguiente comando:
Get-AzMySqlReplica -ResourceGroupName myresourcegroup -ServerName mydemoserver
El comando Get-AzMySqlReplica
requiere los siguientes parámetros:
Configuración | Valor de ejemplo | Descripción |
---|---|---|
ResourceGroupName | myresourcegroup | Grupo de recursos donde se creará el servidor de réplica. |
nombreDeServidor | mydemoserver | El nombre o el identificador del servidor de origen. |
Eliminación de un servidor de réplica
La eliminación de un servidor de réplica de lectura se puede realizar mediante la ejecución del cmdlet Remove-AzMySqlServer
.
Remove-AzMySqlServer -Name mydemoreplicaserver -ResourceGroupName myresourcegroup
Eliminación de un servidor de origen
Importante
Al eliminar un servidor de origen, se detiene la replicación en todos los servidores de réplica y se elimina el propio servidor de origen. Los servidores de réplica se convierten en servidores independientes que ahora admiten tanto lectura como escritura.
Para eliminar un servidor de origen, puede ejecutar el cmdlet Remove-AzMySqlServer
.
Remove-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup
Problema conocido
Hay dos generaciones de almacenamiento que usan los servidores de los niveles De uso general y Optimizado para memoria, Almacenamiento de uso general v1 (admite hasta 4 TB) y Almacenamiento de uso general v2 (admite almacenamiento de hasta 16 TB). El servidor de origen y el servidor de réplica deben tener el mismo tipo de almacenamiento. Como el Almacenamiento de uso general v2 no está disponible en todas las regiones, asegúrese de elegir la región de réplica correcta mientras usa la ubicación con PowerShell para la creación de réplicas de lectura. Para saber cómo identificar el tipo de almacenamiento del servidor de origen, consulte el vínculo ¿Cómo puedo determinar en qué tipo de almacenamiento se ejecuta mi servidor?.
Si elige una región en la que no puede crear una réplica de lectura para el servidor de origen, se producirá el problema por el que la implementación seguirá ejecutándose como se muestra en la ilustración siguiente y, a continuación, se agotará el tiempo de espera con el error "La operación de aprovisionamiento de recursos no se ha completado dentro del período de tiempo de espera permitido" .
Get-AzMySqlServer -Name <source-servername> -ResourceGroupName <RG-Name> | New-AzMySqlReplica -Name <replica-servername> -ResourceGroupName <RG-Name> -Location <region-name>