Självstudier: Migrera RDS PostgreSQL till Azure Database for PostgreSQL online med hjälp av DMS

Viktigt!

Vi rekommenderar att du använder den nya migreringstjänsten i Azure Database for PostgreSQL för en mer effektiviserad och effektiv migreringsupplevelse. Den här tjänsten förenklar processen genom att stödja flera källmiljöer, vilket säkerställer en problemfri övergång till Azure Database for PostgreSQL.

Du kan använda Azure Database Migration Service för att migrera databaser från en RDS PostgreSQL-instans till Azure Database for PostgreSQL medan källdatabasen förblir online under migreringen. Med andra ord kan migrering uppnås med minimal stilleståndstid för programmet. I den här självstudien migrerar du exempeldatabasen DVD Rental från en instans av RDS PostgreSQL 9.6 till Azure Database for PostgreSQL med hjälp av onlinemigreringsaktiviteten i Azure Database Migration Service.

I den här självstudien lär du dig att:

  • Migrera exempelschemat med hjälp av verktyget pg_dump.
  • Skapa en instans av Azure Database Migration Service.
  • Skapa ett migreringsprojekt med hjälp av Azure Database Migration Service.
  • Köra migreringen.
  • Övervaka migreringen.
  • Utför snabb migrering.

Användning av Azure Database Migration Service för att utföra en onlinemigrering kräver att en instans skapas baserad på prisnivån Premium. Mer information finns på sidan med priser för Azure Database Migration Service. Vi krypterar disken för att förhindra datastöld under migreringsprocessen.

Viktigt!

För optimala migreringsfunktioner rekommenderar Microsoft att skapa en instans av Azure Database Migration Service i samma Azure-region som måldatabasen. Att flytta data mellan regioner eller geografiska områden kan göra migreringsprocessen långsammare och leda till fel.

Dricks

I Azure Database Migration Service kan du migrera dina databaser offline eller när de är online. Vid en offlinemigrering startar programmets stilleståndstid när migreringen startar. För att begränsa stilleståndstiden till den tid det tar att övergå till den nya miljön efter migreringen, använd en online-migrering. Vi rekommenderar att du testar en offlinemigrering för att avgöra om stilleståndstiden är acceptabel. Om den förväntade stilleståndstiden inte är acceptabel utför du en onlinemigrering.

Den här artikeln beskriver hur du utför en onlinemigrering från en lokal instans av PostgreSQL till Azure Database for PostgreSQL.

Förutsättningar

För att slutföra den här kursen behöver du:

  • Ladda ned och installera PostgreSQL community edition 9.5, 9.6 eller 10. PostgreSQL-källserverversionen måste vara 9.5.11, 9.6.7, 10 eller senare. Mer information finns i artikeln PostgreSQL-databasversioner som stöds.

    Azure Database for PostgreSQL-målversionen måste vara lika med eller senare än RDS PostgreSQL-versionen. RDS PostgreSQL 9.6 kan till exempel bara migrera till Azure Database for PostgreSQL 9.6, 10 eller 11, men inte till Azure Database for PostgreSQL 9.5.

  • Skapa en instans av en flexibel Azure Database for PostgreSQL-server.

  • Skapa ett Microsoft Azure Virtual Network for Azure Database Migration Service med hjälp av Azure Resource Manager-distributionsmodellen, som tillhandahåller plats-till-plats-anslutning till dina lokala källservrar med hjälp av antingen ExpressRoute eller VPN. Mer information om hur du skapar ett virtuellt nätverk finns i dokumentationen för virtuellt nätverk, och särskilt snabbstartsartiklarna med stegvis information.

  • Se till att reglerna för nätverkssäkerhetsgruppen för det virtuella nätverket inte blockerar utgående port 443 i ServiceTag för ServiceBus, Storage och AzureMonitor. Mer information om NSG-trafikfiltrering för virtuella nätverk finns i artikeln Filtrera nätverkstrafik med nätverkssäkerhetsgrupper.

  • Konfigurera Windows-brandväggen för åtkomst till databasmotorn.

  • Öppna Windows-brandväggen så att Azure Database Migration Service får åtkomst till PostgreSQL-källservern, som som standard är TCP-port 5432.

  • När du använder en brandväggsinstallation framför källdatabaserna kan du behöva lägga till brandväggsregler så att Azure Database Migration Service kan komma åt källdatabaserna för migrering.

  • Skapa en brandväggsregel på servernivå för Azure Database for PostgreSQL-servern för att ge Azure Database Migration Service åtkomst till måldatabaserna. Ange undernätsintervallet för det virtuella nätverk som används för Azure Database Migration Service.

Konfigurera AWS RDS PostgreSQL för replikering

  1. Om du vill skapa en ny parametergrupp följer du anvisningarna från AWS i artikeln Arbeta med DB-parametergrupper.

  2. Använd användarnamnet master för att ansluta till källan från Azure Database Migration Service. Om du använder ett annat konto än master användarkontot måste kontot ha rds_superuser rollen och rds_replication rollen. Rollen rds_replication ger behörighet att hantera logiska platser och strömma data med hjälp av logiska platser.

  3. Skapa en ny parametergrupp med följande konfiguration:

    • Ange parametern rds.logical_replication i din DB-parametergrupp till 1.

    • max_wal_senders = [antal samtidiga uppgifter]. Parametern max_wal_senders anger antalet samtidiga aktiviteter som kan köras. Rekommenderad inställning: 10.

    • max_replication_slots = [antal platser]. Rekommenderad inställning: 5.

  4. Associera parametergruppen som du skapade till RDS PostgreSQL-instansen.

Migrera schemat

  1. Om du vill slutföra migreringen av alla databasobjekt, till exempel tabellscheman, index och lagrade procedurer, extraherar du schemat från källdatabasen och tillämpar på måldatabasen.

    Det enklaste sättet att migrera endast schemat är att använda pg_dump med alternativet -s . Mer information finns i exemplen i Självstudiekursen om Postgres pg_dump .

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Om du till exempel vill dumpa en schemafil för dvdrental databasen använder du följande kommando:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Skapa en tom databas i måltjänsten, som är Azure Database for PostgreSQL – flexibel server.

  3. Importera schemat till måltjänsten, som är Azure Database for PostgreSQL. Kör följande kommando för att återställa schemadumpfilen:

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Till exempel:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

    Kommentar

    Migreringstjänsten hanterar internt aktivering och inaktivering av externa nycklar och utlösare för att säkerställa en tillförlitlig och robust datamigrering. Därför behöver du inte bekymra dig om att göra några ändringar i måldatabasschemat.

Registrera resursprovidern

Registrera resursprovidern Microsoft.DataMigration innan du skapar din första instans av Database Migration Service.

  1. Logga in på Azure-portalen. Sök efter och välj Prenumerationer.

    Skärmbild som visar portalprenumerationer.

  2. Välj den prenumeration där du vill skapa instansen av Azure Database Migration Service och välj sedan Resursprovidrar.

    Skärmbild som visar resursprovidrar.

  3. Sök efter migrering och välj sedan Registrera dig för Microsoft.DataMigration.

    Skärmbild av skärmen Registrera resursleverantör.

Skapa en instans av Azure Database Migration Service

  1. I Azure-portalen väljer du + Skapa en resurs, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Service i listrutan.

    Skärmbild av Azure Marketplace.

  2. På skärmen Azure Database Migration Service väljer du Skapa.

    Skärmbild av Skapa Azure Database Migration Service-instans.

  3. På skärmen Skapa migreringstjänst anger du ett namn för tjänsten, prenumerationen och en ny eller befintlig resursgrupp.

  4. Välj den plats där du vill skapa instansen av Azure Database Migration Service.

  5. Välj ett befintligt virtuellt nätverk eller skapa ett nytt.

    Det virtuella nätverket ger Azure Database Migration Service åtkomst till PostgreSQL-källinstansen och Azure Database for PostgreSQL-målinstansen.

    Mer information om hur du skapar ett virtuellt nätverk i Azure-portalen finns i Skapa ett virtuellt nätverk med Hjälp av Azure-portalen.

  6. Välj en prisnivå. För den här onlinemigreringen väljer du prisnivån Premium: 4 virtuella kärnor .

    Skärmbild av instansinställningarna för Konfigurera Azure Database Migration Service.

  7. Välj Skapa för att skapa tjänsten.

Skapa ett migreringsprojekt

När tjänsten har skapats letar du reda på den i Azure Portal, öppnar den och skapar sedan ett nytt migreringsprojekt.

  1. I Azure-portalen väljer du Alla tjänster, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Services.

    Skärmbild av Hitta alla instanser av Azure Database Migration Service.

  2. På skärmen Azure Database Migration Services söker du efter namnet på den Azure Database Migration Service-instans som du skapade, väljer instansen och väljer sedan + Nytt migreringsprojekt.

  3. På skärmen Nytt migreringsprojekt anger du ett namn för projektet. I textrutan Källservertyp väljer du AWS RDS för PostgreSQL och väljer sedan Azure Database for PostgreSQL i textrutan Målservertyp.

  4. I avsnittet Välj typ av aktivitet väljer du Online-datamigrering.

    Viktigt!

    Välj Online-datamigrering. Offlinemigreringar stöds inte för det här scenariot.

    Skärmbild av Projektet Skapa databasmigreringstjänst.

    Alternativt kan du välja Skapa projekt endast för att skapa migreringsprojektet nu och köra migreringen senare.

  5. Välj Spara.

  6. Välj Skapa och kör aktivitet för att skapa projektet och köra migreringsaktiviteten.

    Anteckna de förutsättningar som krävs för att konfigurera onlinemigrering i fönstret projektskapande.

Ange källinformation

På skärmen Lägg till källinformation anger du anslutningsinformationen för PostgreSQL-källinstansen.

Skärmbild av källinformation.

Ange målinformation

  1. Välj Spara och på skärmen Målinformation anger du anslutningsinformationen för Azure Database for PostgreSQL-målservern, som är företablerad och har dvd-uthyrningsschemat distribuerat med pg_dump.

    Skärmbild av målinformation.

  2. Välj Spara och mappa källan och måldatabasen för migrering på skärmen Mappa till måldatabaser .

    Om måldatabasen innehåller samma databasnamn som källdatabasen väljer Azure Database Migration Service måldatabasen som standard.

    Skärmbild av Mappa till måldatabaser.

  3. Välj Spara på skärmen Migreringssammanfattning i textrutan Aktivitetsnamn , ange ett namn för migreringsaktiviteten och granska sedan sammanfattningen för att se till att käll- och målinformationen matchar det du angav tidigare.

    Skärmbild av migreringssammanfattning.

Köra migreringen

Välj Kör migrering.

Migreringsaktivitetsfönstret visas och aktivitetens status är Initiering.

Övervaka migreringen

  1. På skärmen migreringsaktivitet väljer du Uppdatera för att uppdatera visningen tills statusen för migreringen visas som Körs.

    Skärmdump av aktivitetsstatus - pågående.

  2. Under DATABASNAMN väljer du en specifik databas för att komma till migreringsstatusen för åtgärder för fullständig datainläsning och inkrementell datasynkronisering .

    Fullständig datainläsning visar den inledande migrationsstatusen, medan Inkrementell datasynkronisering visar status för förändringsdatafångst (CDC).

    Skärmbild av inventeringsskärmen – fullständig datainläsning.

    Skärmbild av skärmen Inventering – inkrementell datasynkronisering.

Utföra snabbmigrering

När den första fullständiga belastningen har slutförts markeras databaserna som klara att klippas ut.

  1. När du är redo att slutföra databasmigreringen väljer du Starta övergång.

  2. Vänta tills räknaren Väntande ändringar visas 0 för att se till att alla inkommande transaktioner till källdatabasen har stoppats, markera kryssrutan Bekräfta och välj sedan Använd.

    Skärmbild av skärmen Fullständig övergång.

  3. När databasmigreringsstatusen är Slutförd ansluter du dina program till den nya Azure Database for PostgreSQL-måldatabasen.

Onlinemigreringen av en lokal instans av RDS PostgreSQL till Azure Database for PostgreSQL är nu klar.