Share via


Reubicación de una instancia de Azure Database for PostgreSQL a otra región

En este artículo se ofrece una guía de reubicación para Azure Database for PostgreSQL, tanto con servidor único como con servidores flexibles, entre zonas geográficas en las que los pares de regiones no están disponibles para la replicación y la restauración geográfica.

Para obtener información sobre cómo cambiar la ubicación de una instancia de Azure Cosmos DB for PostgreSQL (anteriormente denominado Azure Database for PostgreSQL: Hiperescala [Citus]), consulte Réplicas de lectura en Azure Cosmos DB for PostgreSQL.

Para obtener información general sobre los pares de regiones admitidos por la replicación nativa, consulte Replicación entre regiones.

Requisitos previos

Los requisitos previos solo se aplican a la reimplementación con datos. Para mover la base de datos sin datos, puede ir directamente a Preparar.

  • Para cambiar la ubicación de PostgreSQL con datos de una región a otra, debe tener un recurso de proceso adicional para ejecutar las herramientas de copia de seguridad y restauración. En los ejemplos de esta guía se usa una máquina virtual de Azure que ejecuta Ubuntu 20.04 LTS. Los recursos de proceso deben:
    • Tener acceso de red tanto al servidor de origen como al servidor de destino, ya sea en una red privada o mediante la inclusión en las reglas de firewall.
    • Estar ubicados en la región de origen o en la de destino.
    • Usar redes aceleradas (si están disponibles).
    • El contenido de la base de datos no se guarda en ningún almacenamiento intermedio; la salida de la herramienta de copia de seguridad lógica se envía directamente al servidor de destino.
  • En función del diseño de la instancia de Azure DB for PostgreSQL, es posible que sea necesario implementar y configurar los siguientes recursos dependientes en la región de destino antes del cambio de ubicación:

Tiempo de inactividad

Para comprender los posibles tiempos de inactividad, consulte Cloud Adoption Framework para Azure: Seleccione un método de reubicación.

Preparación

Para empezar, exporte una plantilla de Resource Manager. Esta plantilla contiene la configuración que describe el espacio de nombres de Automation.

  1. Inicie sesión en Azure Portal.

  2. Seleccione Todos los recursos y, después, seleccione el recurso de Automation.

  3. Seleccione Exportar plantilla.

  4. Elija Descargar en la página Exportar plantilla.

  5. Busque el archivo .zip que descargó desde el portal y descomprímalo en la carpeta que prefiera.

    Este archivo ZIP contiene los archivos .json que incluyen la plantilla y los scripts para implementar la plantilla.

Reimplementación sin datos

  1. Ajuste los parámetros para que coincidan con la región de destino.

Importante

El nombre del servidor de destino debe ser diferente del nombre del servidor de origen. Debe volver a configurar los clientes para que apunten al nuevo servidor.

  1. Vuelva a implementar la plantilla en la nueva región. Para ver un ejemplo de cómo usar una plantilla de ARM para crear una instancia de Azure Database for PostgreSQL, consulte Inicio rápido: uso de una plantilla de ARM para crear una instancia de Azure Database for PostgreSQL: servidor flexible.

Reimplementación con datos

La reimplementación con la migración de datos para Azure Database for PostgreSQL se basa en la copia de seguridad y la restauración lógicas y requiere herramientas nativas. Como consecuencia, es de esperar un tiempo de inactividad considerable durante la restauración.

Sugerencia

Puede usar Azure Portal para cambiar la ubicación de una instancia de Azure Database for PostgreSQL con servidor flexible. Para obtener información sobre cómo realizar la replicación para un solo servidor, consulte Traslado de una base de datos de Azure a Azure Database for PostgreSQL: servidor flexible a otra región mediante Azure Portal.

  1. Ajuste los parámetros para que coincidan con la región de destino.

Importante

El nombre del servidor de destino debe ser diferente del nombre del servidor de origen. Debe volver a configurar los clientes para que apunten al nuevo servidor.

  1. Vuelva a implementar la plantilla en la nueva región. Para ver un ejemplo de cómo usar una plantilla de ARM para crear una instancia de Azure Database for PostgreSQL, consulte Inicio rápido: uso de una plantilla de ARM para crear una instancia de Azure Database for PostgreSQL: servidor flexible.

  2. En el recurso de proceso aprovisionado para la migración, instale las herramientas de cliente de PostgreSQL para la versión de PostgreSQL que se va a migrar. En el ejemplo siguiente se usa la versión 13 de PostgreSQL en una máquina virtual de Azure que ejecuta Ubuntu 20.04 LTS:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Para obtener más información sobre la instalación de componentes de PostgreSQL en Ubuntu, consulte Descargas de Linux (Ubuntu).

    Para otras plataformas, vaya a Descargas de PostgreSQL.

  3. (Opcional) Si creó roles adicionales en el servidor de origen, créelos en el servidor de destino. Para obtener una lista de los roles existentes, use la siguiente consulta:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Para migrar cada base de datos, siga estos pasos:

    1. Detenga toda la actividad de base de datos en el servidor de origen.
    2. Reemplace la información de credenciales, el servidor de origen, el servidor de destino y el nombre de la base de datos en el siguiente script:
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Para migrar la base de datos, ejecute el script.

    2. Configure los clientes para que apunten al servidor de destino.

    3. Realice pruebas funcionales en las aplicaciones.

      1. Asegúrese de que la marca ignoreMissingVnetServiceEndpoint está establecida en False, de modo que la IaC no pueda implementar la base de datos si el punto de conexión de servicio no está configurado en la región de destino.