Creación y administración de réplicas de lectura desde la CLI de Azure con API REST

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Es muy recomendable actualizar al servidor flexible de Azure Database for PostgreSQL: servidor flexible. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucederá con el servicio de servidor único de Azure Database for PostgreSQL?

En este artículo aprenderá a crear y administrar réplicas de lectura en Azure Database for PostgreSQL desde la CLI de Azure con API REST. Para más información acerca de las réplicas de lectura, consulte la introducción.

Soporte de replicación de Azure

Tantolas réplicas de lectura como la descodificación lógica dependen del registro de escritura previa (WAL) Postgres para obtener información. Estas dos características necesitan diferentes niveles de registro de Postgres. La descodificación lógica requiere un mayor nivel de registro que las réplicas de lectura.

Para configurar el nivel de registro adecuado, use el parámetro de soporte de replicación de Azure. El soporte de la replicación de Azure tiene tres opciones de valor:

  • Desactivado: coloca la más mínima información en el WAL. Este valor no está disponible en la mayoría de los servidores Azure Database for PostgreSQL.
  • Réplica: más detallado que Off. Este es el nivel mínimo de registro necesario para que las réplicas de lectura funcionen. Esta es la configuración predeterminada en la mayoría de los servidores.
  • Lógico: más detallado que Réplica. Este es el nivel mínimo de registro para que funcione la descodificación lógica. Las réplicas de lectura también funcionan con este valor.

Nota

Cuando se implementan réplicas de lectura para cargas de trabajo principales continuas con numerosas operaciones de escritura, el retraso en la replicación puede seguir creciendo y no alcanzar nunca al servidor principal. Como consecuencia, también puede aumentar el uso de almacenamiento en el servidor principal, ya que los archivos WAL no se eliminan hasta que se reciben en la réplica.

Azure CLI

Puede crear y administrar réplicas de lectura mediante la CLI de Azure.

Prerrequisitos

Preparación del servidor principal

  1. Compruebe el valor de azure.replication_support del servidor principal. Debe ser al menos una réplica para que las réplicas de lectura funcionen.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Si azure.replication_support no es al menos una réplica, establézcala.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Reinicie el servidor para aplicar el cambio.

    az postgres server restart --name mydemoserver --resource-group myresourcegroup
    

Creación de una réplica de lectura

El comando az postgres server replica create requiere los siguientes parámetros:

Configuración Valor de ejemplo Descripción
resource-group myresourcegroup Grupo de recursos donde se creará el servidor de réplica.
name mydemoserver-replica Nombre del nuevo servidor de réplica que se crea.
source-server mydemoserver Nombre o identificador de recurso del servidor principal existente desde el que replicar. Use el identificador de recurso si quiere que los grupos de recursos de la réplica y del servidor principal sean diferentes.

En el siguiente ejemplo de la CLI, la réplica se crea en la misma región que la del servidor principal.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup

Para crear una réplica de lectura entre regiones, use el parámetro --location. El siguiente ejemplo de la CLI crea la réplica en Oeste de EE. UU.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group 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.

Si no ha establecido el parámetro azure.replication_support en REPLICA en un servidor principal de uso general u optimizado para memoria y ha reiniciado el servidor, aparece un error. Complete estos dos pasos antes de crear una réplica.

Importante

Revise la sección sobre las consideraciones de la información general de Réplicas de lectura.

Antes de actualizar la configuración de un servidor principal a un nuevo valor, actualice la configuración de réplica a un valor igual o superior. Esta acción ayuda a que la réplica haga frente a los cambios realizados en el servidor principal.

Lista de réplicas

Puede ver la lista de réplicas de un servidor principal con el comando az postgres server replica list.

az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup 

Detención de la replicación en un servidor de réplica

Puede detener la replicación entre un servidor principal y una réplica de lectura mediante el uso del comando az postgres server replica stop.

Después de detener la replicación en un servidor principal y en una réplica de lectura, este proceso no se puede deshacer. La réplica de lectura se convierte en un servidor independiente que admite operaciones de lectura y escritura. Este servidor independiente no puede volver a convertirse en una réplica.

az postgres server replica stop --name mydemoserver-replica --resource-group myresourcegroup 

Eliminación de un servidor principal o de réplica

Para eliminar un servidor principal o de réplica, use el comando az postgres server delete.

Cuando se elimina un servidor principal, la replicación se detiene en todas las réplicas de lectura. Las réplicas de lectura se convierten en servidores independientes que ahora admiten tanto lectura como escritura.

az postgres server delete --name myserver --resource-group myresourcegroup

API DE REST

Puede crear y administrar réplicas de lectura mediante API REST de Azure.

Preparación del servidor principal

  1. Compruebe el valor de azure.replication_support del servidor principal. Debe ser al menos una réplica para que las réplicas de lectura funcionen.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Si azure.replication_support no es al menos una réplica, establézcala.

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
    {
     "properties": {
     "value": "replica"
     }
    }
    
  3. Reinicie el servidor para aplicar el cambio.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/restart?api-version=2017-12-01
    

Creación de una réplica de lectura

Puede crear una réplica de lectura mediante la API de creación:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaName}?api-version=2017-12-01
{
  "location": "southeastasia",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}"
  }
}

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.

Si no ha establecido el parámetro azure.replication_support en REPLICA en un servidor principal de uso general u optimizado para memoria y ha reiniciado el servidor, aparece un error. Complete estos dos pasos antes de crear una réplica.

Una réplica se crea con la misma configuración de proceso y almacenamiento que el servidor principal. Después de crear una réplica, se pueden cambiar varios valores independientemente del servidor principal: generación de proceso, núcleos virtuales, almacenamiento y período de retención de copias de seguridad. El plan de tarifa también se puede cambiar de forma independiente, excepto si es con origen o destino en el nivel Básico.

Importante

Antes de actualizar la configuración de un servidor principal a un nuevo valor, actualice la configuración de réplica a un valor igual o superior. Esta acción ayuda a que la réplica haga frente a los cambios realizados en el servidor principal.

Lista de réplicas

Puede ver la lista de réplicas de un servidor principal mediante la API de lista de réplicas:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/Replicas?api-version=2017-12-01

Detención de la replicación en un servidor de réplica

Puede detener la replicación entre un servidor principal y una réplica de lectura mediante la API de actualización.

Después de detener la replicación en un servidor principal y en una réplica de lectura, este proceso no se puede deshacer. La réplica de lectura se convierte en un servidor independiente que admite operaciones de lectura y escritura. Este servidor independiente no puede volver a convertirse en una réplica.

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

Eliminación de un servidor principal o de réplica

Para eliminar un servidor principal o de réplica, use la API de eliminación:

Cuando se elimina un servidor principal, la replicación se detiene en todas las réplicas de lectura. Las réplicas de lectura se convierten en servidores independientes que ahora admiten tanto lectura como escritura.

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}?api-version=2017-12-01

Pasos siguientes