Opties voor migratiehulpprogramma's identificeren
Er zijn veel opties beschikbaar voor het uitvoeren van een migratie van een PostgreSQL-server naar Azure Database for PostgreSQL Flexible Server. Er zijn systeemeigen PostgreSQL-hulpprogramma's zoals pg_dump, pgadmin en pg_restore. Er zijn Microsoft Azure-cloudservices zoals de Database Migration Service en de migratieoptie in Azure Database for PostgresSQL - Flexible Server, waarmee het algehele proces voor gegevensoverdracht van de bron naar het doel grotendeels kan worden geautomatiseerd.
Azure Database for PostgreSQL Flexibele Server - migratie
Binnen de Azure Database for PostgreSQL - Flexible Server-service is er een systeemeigen mogelijkheid om de migratie van databases van andere PostgreSQL-exemplaren naar de Azure-service te ondersteunen. Deze optie is gericht op de offlinemigratie van databases van bron naar doel. Als u deze optie wilt gebruiken, moeten we de pg_dumpall- en psql-hulpprogramma's gebruiken die eerder zijn besproken om de databases op serverniveau te migreren die naar de flexibele server worden gemigreerd.
Deze functie is ontworpen met externe PostgreSQL-exemplaren als de bron en de flexibele server waarop het migratieproject is gemaakt als doel. In wezen voor het ophalen van gegevens naar de flexibele server. De voordelen van het gebruik van deze service ten opzichte van het uitvoeren van een handmatig dump- en herstelproces is de beheerde aard van de migratie. Zodra deze is geconfigureerd, wordt het proces gecontroleerd voor alle tabellen die worden gemigreerd naar de flexibele server, zodat we gemakkelijk kunnen zien wanneer de cut-over op toepassingsniveau kan worden uitgevoerd.
Migratieprojecten
Zodra de connectiviteit is gesorteerd, moeten we alleen de database of databases selecteren die we naar de nieuwe server willen migreren. In de volgende schermopname ziet u dat als er meerdere databases zijn die meerdere services terugbrengen die deel uitmaken van een groter systeem, we ervoor kunnen kiezen om ze als groep te migreren in plaats van één voor één. Deze databasegroepering kan niet alleen helpen om migraties te versnellen, maar ook om logische consistentie tijdens migratieactiviteiten te behouden.
Wanneer we het validatie- en migratieproces starten, kunnen we de algehele voortgang van het proces bekijken met behulp van het projectdashboard. Dit dashboard toont ons als de databases worden gevalideerd en vervolgens wanneer ze worden gemigreerd naar de nieuwe server.
Deze informatie wordt bewaard na de migratie, zodat we de algehele voortgang kunnen bijhouden. De informatie bevat ook bewijsmateriaal dat nodig is om de controleprocessen te wijzigen over het succes en de duur van werkzaamheden die worden uitgevoerd.
PostgreSQL-hulpprogramma's
Hier verkennen we de belangrijkste hulpprogramma's die kunnen worden gebruikt voor het migreren van gegevens van een PostgreSQL-server naar Azure Database for PostgreSQL Flexible Server.
pgcopydb
Pgcopydb- is een opensource-project waarmee het proces van het kopiëren van een database tussen PostgreSQL-servers kan worden geautomatiseerd. Er zijn verschillende voordelen voor het gebruik van pgcopydb via de systeemeigen hulpprogramma's die worden geboden bij het installeren van PostgreSQL. Deze voordelen zijn onder andere.
- Het verwijderen van de noodzaak van tussenliggende bestanden met behulp van pg_backup en pg_restore.
- Creëer indexgelijktijdigheid om het aanmaken van indexen op tabellen te paralleliseren met behulp van de synchronize__seqscans functie in PostgreSQL.
- Tabel met meerdere threads kopiëren naar partitiegegevens en grotere tabellen parallel overdragen.
- Wijzig Data Capture voor gegevenssynchronisatie om de noodzaak van langdurige downtimevensters te minimaliseren.
Er zijn twee hoofdopties in pgcopydb die kunnen worden gebruikt voor database- en gegevensmigratie van een bronserver naar het doel. Deze opties zijn klonen en kopiëren.
pgcopydb-kloon
Klonen is de primaire optie voor het kopiëren van een hele database van een bronserver naar een doel. Deze opdracht heeft verschillende switches die beschikbaar zijn waarmee we een eenvoudige kloonbewerking kunnen configureren, door de configuratie van wijzigingsgegevensopname te automatiseren om gegevens te synchroniseren om de downtime van de migratie te minimaliseren. We kunnen ook de opties opgeven voor het parallelliseren van gegevensoverdracht per tabel en parallelle overdrachtsopties voor tabellen, indexen en grote objecten.
pgcopydb-kopie
Kopiëren is een optie die een grotere granulariteit van de controle mogelijk maakt wanneer het gaat om het migreren van de database of onderdelen ervan. We kunnen deze opdrachtoptie gebruiken om te kiezen welke schema's, tabellen, rollen enzovoort moeten worden overgedragen van een bronserverdatabase naar de doelserver en database. Deze opdracht is handig in de scenario's waarin één grote database wordt uitgevouwen in kleinere databases als onderdeel van een migratieactiviteit voor het moderniseren van toepassingen. U kunt ook met een migratieactiviteit voor samenvoeging de inhoud van de ene database migreren naar schema's binnen een andere database.
Deze opties zijn slechts enkele van de manieren waarop pgcopydb ons kan helpen het proces van het migreren van databases naar Azure Database for PostgreSQL Flexible Server te verbeteren. Dit proces biedt een migratiewijze waarmee risico's worden geminimaliseerd en de kans op succes wordt gemaximaliseerd.
pgAdmin
pgAdmin is een veelgebruikt beheerprogramma dat kan worden gebruikt om te communiceren met PostgreSQL-databases. Met dit hulpprogramma kunt u pgsql-scripts maken en uitvoeren. Het hulpprogramma bevat een matrix met nuttige GUI-hulpprogramma's die kunnen worden gebruikt voor het configureren, maken van back-ups en het herstellen van PostgreSQL-databases. Installeer pgAdmin doorgaans op beheerwerkstations. Dit hulpprogramma maakt het mogelijk om meerdere PostgreSQL-servers te registreren en er verbinding mee te maken, waardoor het een belangrijk onderdeel is van onze migratiehulpprogrammaset.
pg_dump, pg_restore en psql
pg_dump is een opdrachtregelprogramma dat naast een PostgreSQL-exemplaar is geïnstalleerd en indien nodig kan worden geïnstalleerd op een beheerwerkstation. Hiermee kunt u consistente databaseback-ups maken vanuit PostgreSQL, zelfs wanneer er een gelijktijdige workload plaatsvindt. Het werkt met afzonderlijke databases en stelt ons in staat een back-up te maken van een volledige database of onderdelen ervan.
Als u pg_dump gebruikt om schemaobjecten te exporteren, kunnen we psql gebruiken om het resulterende .sql bestand uit te voeren op de doeldatabase om de objecten te maken. Na deze stap kunnen we kijken naar manieren om de gegevens van de bron naar het doelsysteem te verplaatsen. De opdrachten die moeten worden gebruikt voor het exporteren van een databaseschema uit de ene database en het maken ervan in een andere, zijn te zien in het volgende voorbeeld.
pg_dump -O --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks --schema-only > adventureWorks.sql
psql --host=MyFlexibleServer --username=demo --dbname=AdventureWorks < adventureWorks.sql
Als we een volledige dump van de brondatabase maken, gebruiken we pg_restore om het resulterende bestand te lezen en de database te herstellen naar het PostgreSQL-doelexemplaren. Er zijn verschillende bepalende factoren voor hoe lang deze activiteiten duren bij het uitvoeren van een back-up en het terugzetten naar dump. Met name de grootte van de database, de prestaties van het opslagsubsysteem en de netwerkbandbreedte en latentie tussen de verwerkingsonderdelen.
In het volgende voorbeeld ziet u hoe u een databasedump in een aangepaste database kunt maken en deze vervolgens kunt herstellen naar een andere server.
pg_dump -Fc --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks > db.dump
pg_restore -Fc --host=MyServerName --port=5432 --create --username=adminuser --dbname=AdventureWorks db.dump
pg_dumpall
Terwijl pg_dump wordt gebruikt om één database te dumpen, wordt pg_dumpall gebruikt om alle databases te dumpen naar één scriptbestand dat psql in een nieuw exemplaar van PostgreSQL leest.
Daarnaast kunt pg_dumpall worden gebruikt voor het genereren van scriptbestanden voor globale objecten op serverniveau, zoals rollen waarvan databases afhankelijk kunnen zijn wanneer ze worden gemigreerd tussen servers.