Dela via


Migrera PostgreSQL-databas till Azure Arc-aktiverad PostgreSQL-server

Det här dokumentet beskriver stegen för att hämta din befintliga PostgreSQL-databas (en databas som inte finns i Azure Arc-aktiverade datatjänster) till din Azure Arc-aktiverade PostgreSQL-server.

Kommentar

Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

De senaste uppdateringarna är tillgängliga i viktig information.

Att tänka på

Azure Arc-aktiverad PostgreSQL-server är communityversionen av PostgreSQL. Alla verktyg som fungerar på PostgreSQL utanför Azure Arc bör därför fungera med Azure Arc-aktiverad PostgreSQL-server.

Med den uppsättning verktyg som du använder idag för Postgres bör du därför kunna:

  1. Säkerhetskopiera Postgres-databasen från din instans utanför Azure Arc
  2. Återställa den på din Azure Arc-aktiverade PostgreSQL-server

Vad som återstår för dig att göra är:

  • återställa serverparametrarna
  • återställ säkerhetskontexterna: återskapa användare, roller och återställningsbehörigheter...

Om du vill göra den här säkerhetskopierings-/återställningsåtgärden kan du använda alla verktyg som kan göra säkerhetskopiering/återställning för Postgres. Till exempel:

  • Azure Data Studio och dess Postgres-tillägg
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Exempel

Nu ska vi illustrera de stegen med hjälp av pgAdmin verktyget. Överväg följande konfiguration:

  • Källa:
    En Postgres-server som körs lokalt på en bare metal-server med namnet JEANYDSRV. Den är av version 14 och är värd för en databas med namnet MyOnPremPostgresDB som har en tabell T1 som har 1 rad Migrera källa

  • Destination:
    En Postgres-server som körs i en Azure Arc-miljö med namnet postgres01. Det är av version 14. Den har ingen databas förutom postgres-standarddatabasen.
    Migrera mål

Gör en säkerhetskopia av källdatabasen lokalt

Migrera källsäkerhetskopiering

Konfigurera den:

  1. Ge den ett filnamn: MySourceBackup
  2. Ange formatet till AnpassadMigrera källsäkerhetskopieringskonfigurering

Säkerhetskopieringen har slutförts:
Migrera källsäkerhetskopiering har slutförts

Skapa en tom databas i målsystemet på din Azure Arc-aktiverade PostgreSQL-server

Kommentar

Om du vill registrera en Postgres-instans i pgAdmin verktyget måste du använda en offentlig IP-adress för din instans i Kubernetes-klustret och ange port- och säkerhetskontexten på rätt sätt. Du hittar den här informationen på slutpunktsraden psql när du har kört följande kommando:

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

Det returnerar utdata som:

{
  "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"
}

Vi namnger måldatabasen RESTORED_MyOnPremPostgresDB.

Migrera-destination-db-create

Återställa databasen i arc-installationen

Migrera-db-restore

Konfigurera återställningen:

  1. Peka på filen som innehåller den säkerhetskopia som ska återställas: MySourceBackup

  2. Behåll formatet inställt på Anpassad eller tjäraMigrera-db-restore-configure

  3. Klicka på Återställ.

    Återställningen har slutförts.
    Migrera-db-restore-completed

Kontrollera att databasen har återställts på din Azure Arc-aktiverade PostgreSQL-server

Använd någon av följande metoder:

Från pgAdmin:

Expandera Postgres-instansen som finns i din Azure Arc-konfiguration. Du ser tabellen i databasen som du har återställt och när du väljer data visas samma rad som den har i den lokala instansen:

Migrera-db-restore-verification

Inifrån psql din Azure Arc-konfiguration:

I Arc-konfigurationen kan du använda psql för att ansluta till postgres-instansen, ange databaskontexten till RESTORED_MyOnPremPostgresDB och fråga efter data:

  1. Visa en lista över slutpunkter som hjälper dig att skapa din psql anslutningssträng:

    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. Från din psql anslutningssträng använda parametern -d för att ange databasnamnet. Med kommandot nedan uppmanas du att ange lösenordet:

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

    psql Ansluter.

    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. Välj tabellen så ser du de data som du återställde från den lokala Postgres-instansen:

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

Kommentar

  • I dag går det inte att "publicera i Azure Arc" en befintlig Postgres-instans som körs lokalt eller i något annat moln. Med andra ord går det inte att installera någon form av "Azure Arc-agent" på din befintliga Postgres-instans för att göra den till en Postgres-installation som aktiveras av Azure Arc. I stället måste du skapa en ny Postgres-instans och överföra data till den. Du kan använda den teknik som visas ovan för att göra detta eller så kan du använda valfritt ETL-verktyg.

*I de här dokumenten hoppar du över avsnitten Logga in på Azure Portal och Skapa en Azure Database for PostgreSQL. Implementera de återstående stegen i Azure Arc-distributionen. Dessa avsnitt är specifika för Azure Database for PostgreSQL-servern som erbjuds som en PaaS-tjänst i Azure-molnet, men de andra delarna av dokumenten är direkt tillämpliga på din Azure Arc-aktiverade PostgreSQL-server.