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:
- Säkerhetskopiera Postgres-databasen från din instans utanför Azure Arc
- Å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 radDestination:
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.
Gör en säkerhetskopia av källdatabasen lokalt
Konfigurera den:
- Ge den ett filnamn: MySourceBackup
- Ange formatet till Anpassad
Säkerhetskopieringen 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.
Återställa databasen i arc-installationen
Konfigurera återställningen:
Peka på filen som innehåller den säkerhetskopia som ska återställas: MySourceBackup
Behåll formatet inställt på Anpassad eller tjära
Klicka på Återställ.
Återställningen har slutförts.
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:
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:
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" }
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=#
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.