Identifiera alternativ för migreringsverktyg
Det finns många tillgängliga alternativ för att utföra en migrering från en PostgreSQL-server till Azure Database for PostgreSQL – flexibel server. Det finns inbyggda PostgreSQL-verktyg som pg_dump, pgadmin och pg_restore. Det finns Microsoft Azure-molntjänster som Database Migration Service och migreringsalternativet i Azure Database for PostgresSQL – flexibel server, som till stor del kan automatisera den övergripande dataöverföringsprocessen från källa till mål.
Azure Database for PostgreSQL – flexibel server – migrering
I Tjänsten Azure Database for PostgreSQL – flexibel server finns det en intern funktion som stöder migrering av databaser från andra PostgreSQL-instanser till den Azure-baserade tjänsten. Det här alternativet är inriktat på offlinemigrering av databaser från källa till mål. Om du vill använda det här alternativet måste vi använda de pg_dumpall- och psql-verktyg som beskrevs tidigare för att migrera databaserna för objekt på servernivå som migreras till den flexibla servern.
Den här funktionen är utformad med externa PostgreSQL-instanser som källa och flexibel server där migreringsprojektet skapades som mål. I huvudsak för att hämta data till den flexibla servern. Fördelarna med att använda den här tjänsten jämfört med att utföra en manuell dumpnings- och återställningsprocess är migreringens hanterade karaktär. När den har konfigurerats övervakar den processen för alla för de tabeller som migreras till den flexibla servern, så att vi enkelt kan se när cut-over på programnivå kan utföras.
Migreringsprojekt
När anslutningen har sorterats behöver vi bara välja den databas eller de databaser som vi vill migrera till den nya servern. I följande skärmbild ser du att om det finns flera databaser som stöder flera tjänster som ingår i ett större system kan vi välja att migrera dem som en grupp i stället för en i taget. Den här databasgruppering kan verkligen hjälpa inte bara påskynda migreringar utan också att upprätthålla logisk konsekvens under migreringsaktiviteter.
När vi startar validerings- och migreringsprocessen kan vi granska processens övergripande förlopp med hjälp av projektinstrumentpanelen. Den här instrumentpanelen visar oss när databaserna verifieras och sedan när de migreras till den nya servern.
Den här informationen behålls efter migreringen, så att vi kan spåra övergripande framsteg. Informationen innehåller också alla bevis som behövs för att ändra kontrollprocesserna om framgång och varaktighet för allt arbete som utförs.
PostgreSQL-verktyg
Här utforskar vi de viktigaste verktygen som kan användas för att migrera data från en PostgreSQL-server till Azure Database for PostgreSQL – flexibel server.
pgcopydb
Pgcopydb är ett öppen källkod projekt som kan automatisera kopieringsprocessen för en databas mellan PostgreSQL-servrar. Det finns flera fördelar med att använda pgcopydb jämfört med de inbyggda verktyg som tillhandahålls vid installation av PostgreSQL, inklusive dessa fördelar.
- Tar bort behovet av mellanliggande filer med hjälp av pg_backup och pg_restore.
- Skapa Index concurrency för att parallellisera skapandet av index i tabeller med hjälp av funktionen synchronize__seqscans i PostgreSQL.
- Flertrådad tabell kopierar till partitionsdata och överför större tabeller parallellt.
- Ändra datainsamling för datasynkronisering för att minimera behovet av långa stilleståndstider.
Det finns två huvudsakliga alternativ inom pgcopydb som kan användas för databas- och datamigrering från en källserver till mål. De här alternativen är kloning och kopiering.
pgcopydb-klon
Kloning är det primära alternativet för att kopiera en hel databas från en källserver till ett mål. Det här kommandot har flera tillgängliga växlar som gör att vi kan konfigurera en grundläggande kloningsåtgärd, genom att automatisera konfigurationen av insamling av ändringsdata för att synkronisera data för att minimera migreringsavbrott. Vi kan också ange alternativ för att parallellisera dataöverföring efter tabell och parallella överföringsalternativ för tabeller, index och stora objekt.
pgcopydb-kopia
Kopiera är ett alternativ som ger större kornighet i kontrollen när det gäller att migrera databasen eller delar av den. Vi kan använda det här kommandoalternativet för att välja vilka scheman, tabeller, roller osv. som ska överföras från en källserverdatabas till målservern och databasen. Det här kommandot är användbart i scenarier där en stor databas delas upp i mindre som en del av en migreringsaktivitet för programmodernisering. En konsolideringsmigreringsaktivitet gör att vi kan migrera innehållet i en databas till scheman i en annan.
De här alternativen är bara några av de sätt på vilka pgcopydb kan hjälpa oss att förbättra processen med att migrera databaser till Azure Database for PostgreSQL – flexibel server. Den här processen ger ett migreringssätt som minimerar risken och maximerar våra chanser att lyckas.
pgAdmin
pgAdmin är ett vanligt hanteringsverktyg som kan användas för att interagera med PostgreSQL-databaser. Med det här verktyget kan du skapa och köra pgsql-skript. Verktyget innehåller en matris med användbara GUI-verktyg som kan användas för att konfigurera, säkerhetskopiera och återställa PostgreSQL-databaser. Installera vanligtvis pgAdmin på administrativa arbetsstationer. Det här verktyget gör det möjligt att registrera och ansluta till flera PostgreSQL-servrar, vilket gör det till en viktig del av vår migreringsverktygsuppsättning.
pg_dump, pg_restore och psql
pg_dump är ett kommandoradsverktyg som installeras tillsammans med en PostgreSQL-instans och som kan installeras efter behov på en administrativ arbetsstation. Det gör det möjligt att skapa konsekventa databassäkerhetskopior från PostgreSQL även när det sker en samtidig arbetsbelastning. Det fungerar med enskilda databaser och gör att vi kan säkerhetskopiera en hel databas eller delar av den.
Om du använder pg_dump för att exportera schemaobjekt kan vi använda psql för att köra den resulterande .sql filen på måldatabasen för att skapa objekten. Efter det här steget kan vi titta på olika sätt att flytta data från källan till målsystemet. De kommandon som ska användas för att exportera ett databasschema från en databas och skapa det i en annan visas i följande exempel.
pg_dump -O --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks --schema-only > adventureWorks.sql
psql --host=MyFlexibleServer --username=demo --dbname=AdventureWorks < adventureWorks.sql
Om vi skapar en fullständig dump av källdatabasen vill vi använda pg_restore för att läsa den resulterande filen och återställa databasen till PostgreSQL-målinstansen. Det finns flera avgörande faktorer för hur lång tid dessa aktiviteter tar när du utför en säkerhetskopiering och återställning till dump. Särskilt databasens storlek, lagringsundersystemets prestanda och nätverksbandbredden och svarstiden mellan bearbetningskomponenterna.
I följande exempel visas hur vi kan skapa en databasdump till en anpassad och sedan återställa den till en annan 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
Medan pg_dump används för att dumpa en enda databas används pg_dumpall för att dumpa alla databaser till en enda skriptfil som psql läser in i en ny instans av PostgreSQL.
Dessutom kan pg_dumpall användas för att generera skriptfiler för objekt på global servernivå, till exempel roller som databaser kan vara beroende av när de migreras mellan servrar.