Programoverførsel

Fuldført

Når du har migreret din database fra det lokale miljø til Azure, skal du opdatere dine eksisterende programmer, så de kan få adgang til PostgreSQL på den nye placering.

Din oprindelige server og database i det lokale miljø indeholder roller, der definerer de rettigheder, der er knyttet til brugerne, de handlinger, de kan udføre, og de objekter, de udfører disse handlinger for. Azure Database til PostgreSQL bruger de samme godkendelses- og godkendelsesmekanismer som PostgreSQL, der kører i det lokale miljø.

I dette undermodul skal du udforske de opdateringer, du skal foretage i dine programmer for at oprette forbindelse til din nyligt migrerede Azure Database til PostgreSQL.

Opret brugerrollerne manuelt

Når du overfører en PostgreSQL-database til Azure Database for PostgreSQL ved hjælp af Azure Database Migration Service, kopieres rollerne og rolletildelingerne ikke. Du skal manuelt oprette de nødvendige roller og brugerkonti for administratoren og brugerne af tabellerne i destinationsdatabasen. Du kan bruge hjælpeprogrammerne psql eller pgAdmin til at udføre disse opgaver. Kør kommandoen CREATE ROLE. Du kan bruge kommandoen GRANT til at tildele de nødvendige rettigheder til en rolle. For eksempel:

CREATE ROLE myuseraccount WITH LOGIN NOSUPERUSER CREATEDB PASSWORD 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuseraccount;

Seddel

Du kan også bruge kommandoen createuser fra bashprompten til at oprette PostgreSQL-roller.

Hvis du vil have vist de eksisterende roller i databasen i det lokale miljø, skal du køre følgende SQL-sætning:

SELECT rolname
FROM pg_roles;

Du kan bruge kommandoen \du i psql-værktøjet til at få vist de rettigheder, der er tildelt til roller.

                              List of roles
   Role name   |               Attributes                                   | Member of
---------------+------------------------------------------------------------+-----------
 azureuser     | Superuser, Create DB                                       | {}
 myuseraccount | Create DB                                                  | {}
 postgres      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Seddel

Bemærk, at Azure Database til PostgreSQL tilføjer nogle roller af sig selv. Disse roller omfatter azure_pg_admin, azure_superuserog den administratorbruger, du angav, da du oprettede tjenesten. Du logger på med dine administrative konti, men de to andre roller er reserveret til brug af Azure – du bør ikke forsøge at bruge dem.

Konfigurer programmer igen

Omkonfiguration af et program for at oprette forbindelse til Azure Database for PostgreSQL er en enkel proces. Det er dog vigtigere at fastlægge en strategi for overførselsprogrammer.

Overvejelser i forbindelse med omkonfigurering af PostgreSQL-programmer

I et virksomhedsmiljø kan du have mange programmer, der kører mod de samme PostgreSQL-databaser. Der kan være et stort antal brugere, der kører disse programmer. Du vil gerne være sikker på, at når du skifter fra det eksisterende system til Azure Database for PostgreSQL, fungerer dine systemer stadig, brugerne kan fortsætte med at udføre deres job, og dine forretningskritiske handlinger forbliver operationelle. Modul 1, lektion 2, Overvejelser i forbindelse med overførsel, drøftede mange af problemerne generelt. Når du overfører en PostgreSQL-database til Azure, er der nogle specifikke oplysninger, der skal bemærkes:

  • Hvis du udfører en offlineoverførsel, kan dataene i den oprindelige PostgreSQL-database og de nye databaser, der kører på Azure, begynde at afvige hurtigt, hvis den gamle database stadig bruges. En offlineoverførsel er velegnet, når du tager et system helt ud af drift i et kort stykke tid og derefter skifter alle programmer til det nye system, før du starter igen. Denne fremgangsmåde er muligvis ikke mulig for et forretningskritisk system. Hvis du migrerer til PostgreSQL, der kører på en virtuel Azure-maskine, kan du konfigurere PostgreSQL-replikering mellem dit lokale system og det, der kører i Azure. Oprindelig PostgreSQL-replikering fungerer kun i én retning, men tredjepartsløsninger er tilgængelige, der understøtter tovejsreplikering mellem PostgreSQL-servere (disse løsninger fungerer ikke sammen med Azure Database til PostgreSQL).
  • Hvis du udfører en onlineoverførsel, konfigurerer Azure Database for PostgreSQL-tjenesten replikering fra databasen i det lokale miljø til den database, der kører i Azure. Efter den indledende dataoverførsel sikrer replikering, at eventuelle ændringer, der er foretaget i databasen i det lokale miljø, kopieres til databasen i Azure, men ikke omvendt.

I begge tilfælde skal du sikre, at du ikke mister dynamiske data via en utilsigtet overskrivning. I onlinescenariet kan et program, der er forbundet til databasen, der kører i Azure Database til PostgreSQL, f.eks. få sine ændringer overskrevet blindt af et program, der stadig bruger databasen i det lokale miljø. Med dette i tankerne bør du overveje følgende fremgangsmåder:

  • Overfør programmer baseret på deres arbejdsbelastningstype. Et program, der kun får adgang til dataene til læsning, kan flytte sikkert til den database, der kører i Azure Database til PostgreSQL, og vil se alle ændringer foretaget af programmer, der stadig bruger databasen i det lokale miljø. Du kan også anvende den omvendte strategi, hvis skrivebeskyttede programmer ikke kræver fuldt up-to-date-data.
  • Overfør brugere baseret på deres arbejdsbelastningstype. Denne strategi ligner den forrige, bortset fra at du måske har brugere, der kun genererer rapporter, mens andre ændrer dataene. Du har muligvis det samme program konfigureret til at oprette forbindelse til den relevante database i henhold til brugerkravene.
  • Overfør programmer baseret på de datasæt, de bruger. Hvis forskellige programmer anvender forskellige undersæt af dataene, kan du muligvis overføre disse programmer uafhængigt af hinanden.

Omkonfigurer et program

Hvis du vil omkonfigurere et program, skal du pege på den nye database. De fleste velskrevne programmer isolerer forbindelseslogikken, og dette bør være den eneste del af koden, der kræver ændring. I mange tilfælde kan forbindelsesoplysningerne blive gemt som konfigurationsoplysninger – du behøver kun at opdatere disse oplysninger.

Du kan finde forbindelsesoplysningerne for din Azure Database for PostgreSQL-tjeneste på Azure Portal på siden Forbindelsesstrenge for din tjeneste. Azure indeholder oplysninger om mange almindelige programmeringssprog og -strukturer.

Billede, der viser siden Forbindelsesstrenge for Azure Database for PostgreSQL-elementet på Azure Portal

Åbne netværksporte

Som nævnt i lektion 1 i dette modul er Azure Database for PostgreSQL en beskyttet tjeneste, der kører bag en firewall. Klienter kan ikke oprette forbindelse, medmindre deres IP-adresse genkendes af tjenesten. Du skal tilføje IP-adresserne eller adresseblokintervallerne for klienter, der kører programmer, der skal oprette forbindelse til dine databaser.

Test og bekræft programmer

Før du skifter dine programmer og brugere til den nye database, er det vigtigt at sikre, at du har konfigureret alt korrekt.

Start med "tørre"-programmer, og forbind hver rolle for at sikre, at den korrekte funktionalitet er tilgængelig.

Derefter skal du udføre "sugetests" for at efterligne det typiske antal brugere, der kører repræsentative arbejdsbelastninger samtidigt i en periode. Overvåg systemet, og bekræft, at du har allokeret tilstrækkelige ressourcer til din Azure Database til PostgreSQL-tjenesten.

På dette tidspunkt kan du begynde at udrulle systemet til brugere. Det kan være en fordel at implementere en form for "canary test", hvor en lille delmængde af brugere overføres til systemet uvidende. Det giver dig en fordomsfri holdning til, om brugerne har den samme, bedre eller dårligere oplevelse med den nye database.