Share via


Migración de una base de datos de PostgreSQL a un servidor PostgreSQL habilitado para Azure Arc

En este documento se describen los pasos para trasladar la base de datos de PostgreSQL existente (una que no se hospede en Data Services habilitado para Azure Arc) al servidor PostgreSQL habilitado para Azure Arc.

Nota:

Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Las actualizaciones más recientes están disponibles en las notas de la versión.

Consideraciones

El servidor PostgreSQL habilitado para Azure Arc es la versión de la comunidad de PostgreSQL. Por lo tanto, cualquier herramienta que funcione con PostgreSQL fuera de Azure Arc debería funcionar con el servidor PostgreSQL habilitado para Azure Arc.

Por ese motivo, con el conjunto de herramientas que usa actualmente para postgres, debe ser capaz de:

  1. Realizar una copia de seguridad de la base de datos de Postgres desde la instancia hospedada fuera de Azure Arc
  2. Restaurarla en el servidor PostgreSQL habilitado para Azure Arc

Lo que queda por hacer es lo siguiente:

  • restablecer los parámetros del servidor
  • restablecer los contextos de seguridad: volver a crear usuarios, roles y restablecer permisos...

Para realizar esta operación de copia de seguridad y restauración, puede usar cualquier herramienta capaz de realizar la copia de seguridad o restauración para Postgres. Por ejemplo:

  • Azure Data Studio y su extensión Postgres
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql

Ejemplo

Ahora se ilustrarán estos pasos con la herramienta pgAdmin. Fíjese en la configuración siguiente:

  • Origen:
    un servidor Postgres que se ejecuta de forma local en un servidor sin sistema operativo y con el nombre JEANYDSRV. Es de la versión 14 y aloja una base de datos llamada MyOnPremPostgresDB que tiene una tabla T1 que tiene 1 fila Migrate-source

  • Destino:
    un servidor Postgres que se ejecuta en un entorno de Azure Arc con el nombre postgres01. Es de la versión 14. No tiene ninguna base de datos excepto la estándar de Postgres.
    Migrate-destination

Realice una copia de seguridad de la base de datos de origen en el entorno local.

Migrate-source-backup

Configúrela:

  1. Dale un nombre de archivo: MySourceBackup
  2. Establecer el formato en PersonalizadoMigrate-source-backup-configure

La copia de seguridad se completa correctamente:
Migrate-source-backup-completed

Creación de una base de datos vacía en el sistema de destino en el servidor PostgreSQL habilitado para Azure Arc

Nota:

Para registrar una instancia de Postgres en la herramienta pgAdmin, debe usar la dirección IP pública de la instancia en el clúster de Kubernetes y establecer el puerto y el contexto de seguridad correctamente. Encontrará estos detalles en la línea del punto de conexión psql después de ejecutar el comando siguiente:

az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

Devuelve un resultado como el siguiente:

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

Vamos a llamar RESTORED_MyOnPremPostgresDB a la base de datos de destino.

Migrate-destination-db-create

Restaure la base de datos en la instalación de Arc.

Migratre-db-restore

Configure la restauración:

  1. Seleccione el archivo que contiene la copia de seguridad que desea restaurar: MySourceBackup

  2. Mantenga el formato Personalizado o tarMigrate-db-restore-configure

  3. Haga clic en Restaurar.

    La restauración se realiza correctamente.
    Migrate-db-restore-completed

Comprobación de que la base de datos se ha restaurado correctamente en el servidor PostgreSQL habilitado para Azure Arc

Use uno de los métodos siguientes:

Desde pgAdmin:

expanda la instancia de Postgres hospedada en la instalación de Azure Arc. Verá la tabla en la base de datos que ha restaurado y, al seleccionar los datos, se muestra la misma fila que tiene en la instancia local:

Migrate-db-restore-verification

Desde psqldentro de la instalación de Azure Arc:

Dentro de la instalación de Arc puede usar psql para conectarse a la instancia de Postgres, establecer el contexto de base de datos en RESTORED_MyOnPremPostgresDB y consultar los datos:

  1. Enumere los puntos de conexión para ayudar a formar la cadena de conexión psql:

    az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. Desde la cadena de conexión psql, use el parámetro -d para indicar el nombre de la base de datos. Con el comando siguiente, se le pedirá la contraseña:

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    Se conecta psql.

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. Seleccione la tabla y verá los datos que ha restaurado desde la instancia de Postgres local:

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

Nota:

  • En la actualidad, no es posible "incorporar a Azure Arc" una instancia existente de Postgres que se ejecutaría de forma local o en cualquier otra nube. Es decir, no es posible instalar ningún tipo de "agente de Azure Arc" en la instancia de Postgres existente para que convertirla en habilitada por Azure Arc. En su lugar, debe crear una instancia nueva de Postgres y transferirle los datos. Para hacerlo, puede usar la técnica mostrada antes, o bien la herramienta ETL que prefiera.

*En estos documentos, omita las secciones Inicio de sesión en Azure Portal y Creación de una instancia de Azure Database for PostgreSQL. Aplique los pasos restantes en la implementación de Azure Arc. Esas secciones son específicas del servidor de Azure Database for PostgreSQL que se ofrece como un servicio PaaS en la nube de Azure, pero las demás partes de los documentos se aplican directamente a servidor PostgreSQL habilitado para Azure Arc.