Självstudie: Migrera RDS PostgreSQL till Azure DB for PostgreSQL online med DMS

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 migreringen ske med minimal avbrottstid 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 guiden får du lära dig att:

  • Migrera exempelschemat med hjälp av pg_dump verktyg.
  • 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 en migreringsmigrering.

Anteckning

Användning av Azure Database Migration Service för att utföra en onlinemigrering kräver att en instans skapas baserat på prisnivån Premium. Mer information finns i på prissättningssidan 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.

Tips

När du migrerar databaser till Azure med hjälp av Azure Database Migration Service kan du göra en offline- eller en online migrering. Med en offlinemigrering startar programmets frånkopplade tillstånd när migreringen startar. Med onlinemigrering begränsas det frånkopplade tillståndet till tiden för att genomföra snabb migrering vid slutet av migreringen. Vi rekommenderar att du testar en offlinemigrering för att avgöra om det frånkopplade tillståndet är godtagbart. Om det inte är det kan du utföra 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 Versioner av PostgreSQL Database som stöds.

    Observera också att målversionen Azure Database for PostgreSQL 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 Azure Database for PostgreSQL eller Azure Database for PostgreSQL – Hyperskala (Citus). Mer information om hur du ansluter till PostgreSQL-servern med pgAdmin finns i det här avsnittet i dokumentet.

  • Skapa en Microsoft Azure Virtual Network för Azure Database Migration Service med hjälp av Azure Resource Manager-distributionsmodellen, som ger plats-till-plats-anslutning till dina lokala källservrar med hjälp av ExpressRoute eller VPN. Mer information om hur du skapar ett virtuellt nätverk finns i Virtual Network-dokumentationenoch i synnerhet snabbstartsartiklarna med stegvisa detaljer.

  • Se till att reglerna för nätverkssäkerhetsgruppen för det virtuella nätverket inte blockerar den utgående porten 443 för 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 din Windows-brandvägg för databasmotoråtkomst.

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

  • När du använder en brandväggsinstallation framför dina källdatabaser kanske du måste lägga till brandväggsregler för att tillåta Azure Database Migration Service att komma åt källdatabaserna för migrering.

  • Skapa en brandväggsregel på servernivå för Azure Database for PostgreSQL att tillåta 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 instruktionerna från AWS i artikeln Arbeta med DB-parametergrupper.

  2. Använd huvudanvändarnamnet för att ansluta till källan från Azure Database Migration Service. Om du använder ett annat konto än huvudanvä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:

    a. Ange rds.logical_replication i db-parametergruppen till 1.

    b. max_wal_senders =[antal samtidiga aktiviteter] – Parametern max_wal_senders anger antalet samtidiga aktiviteter som kan köras, rekommenderar 10 aktiviteter.

    c. max_replication_slots – = [antal platser] rekommenderar vi att du anger fem platser.

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

Migrera schemat

  1. Extrahera schemat från källdatabasen och tillämpa på måldatabasen för att slutföra migreringen av alla databasobjekt, till exempel tabellscheman, index och lagrade procedurer.

    Det enklaste sättet att endast migrera schemat är att använda pg_dump med alternativet -s. Mer information finns i exemplen i självstudien 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. Information om hur du ansluter och skapar en databas finns i någon av följande artiklar:

  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
    

    Exempel:

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

Anteckning

Migreringstjänsten hanterar aktivera/inaktivera externa nycklar och utlösare internt 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 Microsoft.DataMigration

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

    Visa portalprenumerationer

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

    Visa resursprovidrar

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

    Registrera resursprovider

Skapa en instans av Azure Database Migration Service

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

    Azure Marketplace

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

    Skapa Azure Database Migration Service-instans

  3. På sidan Create Migration Service 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 målinstansen Azure Database for PostgreSQL målinstansen.

    Mer information om hur du skapar ett virtuellt nätverk i Azure Portal finns i artikeln Skapa ett virtuellt nätverk med hjälp av Azure Portal.

  6. Välj en prisnivå. För den här onlinemigrering måste du välja prisnivån Premium: 4vCores.

    Konfigurera Azure Database Migration Service-instansinställningar

  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 Portal väljer du Alla tjänster, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Services.

    Leta reda på alla instanser 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 + Ny Project.

  3. På sidan Nytt migreringsprojekt anger du ett namn för projektet. I textrutan Typ av källserver väljer du AWS RDS for PostgreSQL och i textrutan Målservertyp väljer du sedan Azure Database for PostgreSQL.

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

    Viktigt

    Se till att välja Online-datamigrering; offlinemigrering stöds inte för det här scenariot.

    Skapa Database Migration Service-projekt

    Anteckning

    Alternativt kan du välja Skapa endast projekt 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.

    Anteckning

    Anteckna de förutsättningar som krävs för att konfigurera onlinemigrering på bladet för att skapa projekt.

Ange källinformation

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

    Källinformation

Ange målinformation

  1. Välj Spara. På skärmen Målinformation anger du anslutningsinformationen för mål-Azure Database for PostgreSQL-servern, som är föreetablead och som har schemat för DVD-uthyrning distribuerat med hjälp av pg_dump.

    Målinformation

  2. Välj Spara och mappa sedan på sidan Mappa till måldatabaser käll- och måldatabasen för migrering.

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

    Mappa till måldatabaser

  3. Välj Spara. I rutan Aktivitetsnamn på skärmen Migreringssammanfattning anger du ett namn för migreringsaktiviteten och granskar sedan sammanfattningen för att se till att informationen för källa och mål matchar det du angav tidigare.

    Migreringssammanfattning

Köra migreringen

  • Välj Kör migrering.

    Migreringsaktivitetsfönstret visas och Status för aktiviteten är Initieras.

Övervaka migreringen

  1. På migreringsaktivitetssidan väljer du Uppdatera för att uppdatera visningen tills Status för migreringen är Körs.

    Aktivitetsstatus – körs

  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 första inläsningsmigreringsstatusen, medan inkrementell datasynkronisering visar status för ändringsdatainfångst (CDC).

    Inventeringsskärm – fullständig datainläsning

    Inventeringsskärm – inkrementell datasynkronisering

Utföra snabbmigrering

När den första fullständiga inläsningen har slutförts markeras databaserna som Redo för cutover.

  1. När du är redo att slutföra databasmigreringen väljer du Starta snabb.

  2. Vänta tills räknaren Väntande ändringar visar 0 för att se till att alla inkommande transaktioner till källdatabasen stoppas, markera kryssrutan Bekräfta och välj sedan Tillämpa.

    Fullständig skärm för övergången

  3. När statusen för databasmigrering är Slutförd ansluter du dina program till den nya Azure Database for PostgreSQL databasen.

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

Nästa steg