Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Sichern Ihrer Postgres-Datenbank auf der Instanz, die außerhalb von Azure Arc gehostet wird
- 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: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.
Eine lokale Sicherung der Quelldatenbank erstellen
Diese konfigurieren:
- Geben Sie ihr einen Dateinamen: MySourceBackup.
- Legen Sie das Format auf Benutzerdefiniert
fest.
Die Sicherung wird erfolgreich abgeschlossen:
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.
Die Datenbank im Arc-Setup wiederherstellen
Die Wiederherstellung konfigurieren:
Zeigen Sie auf die Datei, die die wiederherzustellende Sicherung enthält: MySourceBackup.
Behalten Sie das Format als Benutzerdefiniert oder TAR
bei.
Klicken Sie auf Wiederherstellen.
Die Wiederherstellung ist erfolgreich.
Ü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:
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:
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" }
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
verbindenPassword 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=#
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.