Freigeben über


Migrieren einer PostgreSQL-Datenbank zu einem PostgreSQL-Server mit Azure Arc-Unterstützung

In diesem Dokument wird beschrieben, wie Sie Ihre vorhandene PostgreSQL-Datenbank (die nicht in Datendiensten mit Azure Arc-Unterstützung gehostet wird) auf Ihren PostgreSQL-Server mit Azure Arc-Unterstützung verlagern.

Hinweis

Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.

Die neuesten Updates sind in den Versionshinweisenverfügbar.

Überlegungen

PostgreSQL-Server mit Azure Arc-Unterstützung ist die Communityversion von PostgreSQL. Daher sollte jedes Tool, das mit PostgreSQL außerhalb von Azure Arc funktioniert, auch mit einem PostgreSQL-Server mit Azure Arc-Unterstützung funktionieren.

Folglich sollten Sie mit den Tools, die Sie aktuell für Postgres einsetzen, in der Lage sein, die folgenden Aktionen durchzuführen:

  1. Sichern Ihrer Postgres-Datenbank auf der Instanz, die außerhalb von Azure Arc gehostet wird
  2. Wiederherstellen der Datenbank auf dem PostgreSQL-Server mit Azure Arc-Unterstützung

Sie müssen nur noch die folgenden Schritte ausführen:

  • Zurücksetzen der Serverparameter
  • Zurücksetzen der Sicherheitskontexte: Benutzer und Rollen neu erstellen, Berechtigungen zurücksetzen usw.

Um diesen Sicherungs-/Wiederherstellungsvorgang auszuführen, können Sie ein beliebiges Tool verwenden, das Sicherungen/Wiederherstellungen für Postgres ausführen kann. Beispiel:

  • Azure Data Studio und die zugehörige Postgres-Erweiterung
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Beispiel

Veranschaulichen wir die Schritte anhand des Tools pgAdmin. Betrachten Sie folgendes Setup:

  • Quelle:
    Ein Postgres-Server, der lokal auf einem Bare-Metal-Server mit dem Namen JEANYDSRV ausgeführt wird. Er verfügt über Version 14 und hostet eine Datenbank mit dem Namen „MyOnPremPostgresDB“, die eine Tabelle „T1“ mit einer Zeile enthält: Migrate-source

  • Ziel:
    Ein Postgres-Server namens postgres01, der in einer Azure Arc-Umgebung ausgeführt wird. Der Server verfügt über Version 14. Er enthält keine Datenbank mit Ausnahme der standardmäßigen Postgres-Datenbank.
    Migrate-destination

Eine lokale Sicherung der Quelldatenbank erstellen

Migrate-source-backup

Diese konfigurieren:

  1. Geben Sie ihr einen Dateinamen: MySourceBackup.
  2. Legen Sie das Format auf BenutzerdefiniertMigrate-source-backup-configure fest.

Die Sicherung wird erfolgreich abgeschlossen:
Migrate-source-backup-completed

Erstellen einer leeren Datenbank im Zielsystem in Ihrem PostgreSQL-Server mit Azure Arc-Unterstützung

Hinweis

Um eine Postgres-Instanz im Tool pgAdmin zu registrieren, müssen Sie die öffentliche IP-Adresse Ihrer Instanz in Ihrem Kubernetes-Cluster verwenden und den Port und den Sicherheitskontext entsprechend festlegen. Sie finden diese Informationen in der Zeile des psql-Endpunkts, nachdem Sie folgenden Befehl ausgeführt haben:

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

Es wird eine ähnliche Ausgabe wie die folgende zurückgegeben:

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

Wir nennen die Zieldatenbank RESTORED_MyOnPremPostgresDB.

Migrate-destination-db-create

Die Datenbank im Arc-Setup wiederherstellen

Migratre-db-restore

Die Wiederherstellung konfigurieren:

  1. Zeigen Sie auf die Datei, die die wiederherzustellende Sicherung enthält: MySourceBackup.

  2. Behalten Sie das Format als Benutzerdefiniert oder TARMigrate-db-restore-configure bei.

  3. Klicken Sie auf Wiederherstellen.

    Die Wiederherstellung ist erfolgreich.
    Migrate-db-restore-completed

Überprüfen, ob die Datenbank erfolgreich in Ihrem PostgreSQL-Server mit Azure Arc-Unterstützung wiederhergestellt wurde

Verwenden Sie eine der folgenden beiden Methoden:

Von pgAdmin:

Erweitern Sie die Postgres-Instanz, die im Azure Arc-Setup gehostet wird. Die Tabelle wird in der wiederhergestellten Datenbank angezeigt. Wenn Sie die Daten auswählen, wird dieselbe Zeile wie in der lokalen Instanz angezeigt:

Migrate-db-restore-verification

Von psql innerhalb Ihres Azure Arc-Setups:

In Ihrem Arc-Setup können Sie psql verwenden, um eine Verbindung mit der Postgres-Instanz herzustellen, den Datenbankkontext auf RESTORED_MyOnPremPostgresDB festzulegen und die Daten abzufragen:

  1. Listen Sie die Endpunkte auf, um Ihre psql Verbindungszeichenfolge zu bilden:

    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. Verwenden Sie aus der psql-Verbindungszeichenfolge den Parameter -d, um den Datenbanknamen anzugeben. Mit dem folgenden Befehl werden Sie zur Eingabe des Kennworts aufgefordert:

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

    psql verbinden

    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. Wenn Sie die Tabelle auswählen, werden die Daten angezeigt, die Sie von der lokalen Postgres-Instanz wiederhergestellt haben:

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

Hinweis

  • Es ist derzeit nicht möglich, für eine vorhandene Postgres-Instanz, die lokal oder in einer anderen Cloud ausgeführt wird, ein „Onboarding in Azure Arc“ durchzuführen. Anders ausgedrückt: Es ist nicht möglich, einen „Azure Arc-Agent“ auf Ihrer vorhandenen Postgres-Instanz zu installieren, um diese in ein Postgres-Setup mit Azure Arc-Unterstützung zu verwandeln. Stattdessen müssen Sie eine neue Postgres-Instanz erstellen und Daten auf die Instanz übertragen. Sie können dazu das oben aufgeführte Verfahren oder ein ETL-Tool Ihrer Wahl verwenden.

* Überspringen Sie in diesen Dokumenten die Abschnitte Anmelden am Azure-Portal und Erstellen einer Azure Database for PostgreSQL-Instanz. Implementieren Sie die restlichen Schritte in Ihrer Azure Arc-Bereitstellung. Diese Abschnitte gelten nur für den Azure Database for PostgreSQL-Server, der in der Azure-Cloud als PaaS-Dienst angeboten wird. Die restlichen Abschnitte der Dokumente sind direkt auf Ihren PostgreSQL-Server mit Azure Arc-Unterstützung übertragbar.