PostgreSQL-database migreren naar PostgreSQL-server met Azure Arc
In dit document worden de stappen beschreven voor het ophalen van uw bestaande PostgreSQL-database (een database die niet wordt gehost in Azure Arc-gegevensservices) op uw PostgreSQL-server met Azure Arc.
Notitie
Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.
De meest recente updates zijn beschikbaar in de releaseopmerkingen.
Overwegingen
PostgreSQL-server met Azure Arc is de communityversie van PostgreSQL. Elk hulpprogramma dat werkt op PostgreSQL buiten Azure Arc, moet dus werken met een PostgreSQL-server met Azure Arc.
Als zodanig, met de set hulpprogramma's die u vandaag gebruikt voor Postgres, moet u het volgende kunnen doen:
- Een back-up maken van uw Postgres-database vanuit uw exemplaar dat buiten Azure Arc wordt gehost
- Deze herstellen op uw PostgreSQL-server met Azure Arc
Wat u nog moet doen, is:
- de serverparameters opnieuw instellen
- de beveiligingscontexten opnieuw instellen: gebruikers, rollen en machtigingen opnieuw instellen...
Als u deze back-up-/herstelbewerking wilt uitvoeren, kunt u elk hulpprogramma gebruiken dat back-up/herstel voor Postgres kan uitvoeren. Voorbeeld:
- Azure Data Studio en de Postgres-extensie
pgcli
pgAdmin
pg_dump
pg_restore
psql
- ...
Opmerking
Laten we deze stappen illustreren met behulp van het pgAdmin
hulpprogramma.
Houd rekening met de volgende installatie:
Bron:
Een Postgres-server die on-premises wordt uitgevoerd op een bare-metalserver en de naam JEANYDSRV. Het is van versie 14 en host een database met de naam MyOnPremPostgresDB met één tabel T1 met 1 rijBestemming:
Een Postgres-server die wordt uitgevoerd in een Azure Arc-omgeving en postgres01 heet. Het is van versie 14. Er is geen database behalve de standaard Postgres-database.
Een back-up maken van de brondatabase on-premises
Configureer deze:
- Geef het een bestandsnaam: MySourceBackup
- De notatie instellen op Aangepast
De back-up is voltooid:
Een lege database maken op het doelsysteem op uw PostgreSQL-server met Azure Arc
Notitie
Als u een Postgres-exemplaar in het pgAdmin
hulpprogramma wilt registreren, moet u het openbare IP-adres van uw exemplaar in uw Kubernetes-cluster gebruiken en de poort- en beveiligingscontext op de juiste manier instellen. U vindt deze details op de psql
eindpuntregel nadat u de volgende opdracht hebt uitgevoerd:
az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
Hiermee wordt een uitvoer geretourneerd zoals:
{
"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"
}
Laten we de doeldatabase een naam RESTORED_MyOnPremPostgresDB.
De database herstellen in uw Arc-installatie
De herstelbewerking configureren:
Wijs het bestand aan dat de back-up bevat die u wilt herstellen: MySourceBackup
De opmaak ingesteld houden op Aangepast of tar
Klik op Herstellen.
De herstelbewerking is voltooid.
Controleer of de database is hersteld op uw PostgreSQL-server met Azure Arc
Gebruik een van de volgende methoden:
Van pgAdmin
:
Vouw het Postgres-exemplaar uit dat wordt gehost in uw Azure Arc-installatie. U ziet de tabel in de database die u hebt hersteld en wanneer u de gegevens selecteert, wordt dezelfde rij weergegeven als die in het on-premises exemplaar:
Vanuit psql
uw Azure Arc-installatie:
Binnen uw Arc-installatie kunt psql
u verbinding maken met uw Postgres-exemplaar, de databasecontext RESTORED_MyOnPremPostgresDB
instellen op de gegevens en er query's op uitvoeren:
Geef de eindpunten weer om uw
psql
verbindingsreeks vorm te geven: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" }
Gebruik in uw
psql
verbindingsreeks de-d
parameter om de naam van de database aan te geven. Met de onderstaande opdracht wordt u gevraagd om het wachtwoord:psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
psql
Verbindt.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=#
Selecteer de tabel en u ziet de gegevens die u hebt hersteld vanuit het on-premises Postgres-exemplaar:
RESTORED_MyOnPremPostgresDB=# select * from t1;
col1 | col2 ------+------------- 1 | BobbyIsADog (1 row)
Notitie
- Het is momenteel niet mogelijk om een bestaand Postgres-exemplaar te onboarden in Azure Arc dat on-premises of in een andere cloud wordt uitgevoerd. Met andere woorden, het is niet mogelijk om een soort 'Azure Arc-agent' te installeren op uw bestaande Postgres-exemplaar om ervoor te zorgen dat het een Postgres-installatie is ingeschakeld door Azure Arc. In plaats daarvan moet u een nieuw Postgres-exemplaar maken en er gegevens naar overdragen. U kunt de hierboven weergegeven techniek gebruiken om dit te doen of u kunt elk ETL-hulpprogramma van uw keuze gebruiken.
*In deze documenten slaat u de secties Aanmelden bij Azure Portal over en maakt u een Azure Database for PostgreSQL. Implementeer de resterende stappen in uw Azure Arc-implementatie. Deze secties zijn specifiek voor de Azure Database for PostgreSQL-server die wordt aangeboden als een PaaS-service in de Azure-cloud, maar de andere delen van de documenten zijn rechtstreeks van toepassing op uw PostgreSQL-server met Azure Arc.