Dela via


Migreringssteg för Oracle till Azure Database for PostgreSQL

En omfattande migrering från slutpunkt till slutpunkt från Oracle till Azure Postgres kräver noggrann execeution av flera viktiga steg och migreringssteg. Dessa milstolpar är alla nära relaterade och viktiga för en fullständig och lyckad migrering.

Skärmbild av migreringssteg: Identifiering, utvärdering, schemamigrering, kodmigrering, datamigrering, programmigrering, prestandajustering och molnoptimering.

Identifiering

De flesta kunder är redan väl bekanta med kvantiteterna och platserna för sina Oracle-databasinstanser (särskilt deras associerade licenskostnader), men för fullständighetens skull lyfter vi fram den här fasen som en viktig startpunkt i migreringen. Identifieringsfasen är ett idealiskt steg för att fastställa omfånget för migreringsarbetet. Har du en Oracle-databasservermiljö som kräver tiotals, hundratals eller till och med tusentals databaser för migrering? Överväger du en migrering i stor skala efter en "migreringsfabrik"-metod? Är din miljö snarare mer lämplig för migrering från slutpunkt till slutpunkt för en enskild databas tillsammans med en parallell modernisering av alla anslutna klienter innan du går vidare till nästa databas i migreringslistan? I båda fallen är en uppdaterad och grundlig inventering en viktig förutsättning, och identifieringsfasen säkerställer att du är förberedd för att lyckas.

Utvärderingar

Utvärderingar kapslar in många olika typer av beräkningsbaserade undersökande åtgärder som definieras individuellt av deras unika egenskaper. Vissa utvärderingar är utformade för att uppskatta och kategorisera komplexiteten i arbete och resurser som ingår i migreringen av databasobjekt och baseras på faktorer som antalet objekt (eventuellt till och med utforska antalet kodrader) som kräver uppmärksamhet från en ämnesexpert. Andra typer av utvärderingar kan också utforska strukturen och storleken på underliggande data och ge vägledning om hur lång tid det tar att migrera data till målmiljön. Ytterligare en utvärderingstyp är strukturerad för att säkerställa att dina Azure Postgres-målresurser skalas korrekt för att hantera den beräknings-, minnes-, IOPS- och nätverkskonfiguration som krävs för att betjäna dina data. En av de viktigaste utvärderingarna som måste ingå för att säkerställa att migreringen lyckas är en grundlig genomgång och övervägande av alla anslutna klienter och omfattningen som omfattar alla beroende program. När du förbereder dina migreringsutvärderingar bör du sammanfatta alla aspekter av databasmigreringen, inklusive:

  • Databasschema/kodkonverteringskvantitet och komplexitet
  • Databasstorlek och skala
  • Krav för databasresursdrift
  • Kodmigrering av klientprogram

Din utvärderingsnoggrannhet är nära kopplad till de specifika underliggande verktygen och tjänstplattformarna som ingår i körningen och slutförandet av efterföljande migreringssteg. Det är därför viktigt att tänka på att det finns flera faktorer som kan påverka noggrannheten i dessa utvärderingsuppskattningar och rapporterade resultat är direkt korrelerade med de underliggande verktyg som används i migreringsutvärderingen. Var noga med att undvika att interpolera uppskattade utdata från olika eller kombinerade verktyg när du granskar och införlivar utvärderingsutdata i dina migreringsplaner.

Mer information finns i spelboken oracle till Azure Postgres-migrering

Databasschemamigrering

Strukturerade datadefinitioner är ett av kännetecknandena för transaktionsdatabasmotorer och en viktig grund för en väldesignad dataplattform. Att se till att dina unika Oracle-datastrukturer och datatypsdefinitioner mappas korrekt till respektive tabeller i Azure Postgres är ett viktigt krav för att migreringen ska lyckas. Även om alla transaktionsdatabaser har många likheter, finns det skillnader mellan datatabeller och kolumndatatyper och du måste vara noga med att se till att dina data inte oavsiktligt förloras, trunkeras eller manglas på grund av felmatchade datadefinitioner. Numeriska datatyper, datum/tid-datatyper och textbaserade datatyper är bara några exempel på områden som måste undersökas noga när motsvarande datamappningar utvecklas för migreringen.

Mer information och exempel på skillnaderna mellan Oracle- och Postgres-datatyper finns i spelboken oracle-till-Azure Postgres-migrering

Migrering av databaskod

Migrering av databaskod syftar på processen att konvertera databaskod som skrivits för att Oracle ska vara kompatibelt med Postgres-databasmotorn, samtidigt som både den ursprungliga funktionen och befintliga prestandaegenskaper bibehålls. Den här processen innebär att konvertera Oracle PL/SQL-frågor, lagrade procedurer, funktioner, utlösare och andra databasobjekt till att vara kompatibla med Postgres PL/pgSQL. Lyckligtvis delar Oracles PL/SQL- och Postgres PL/pgSQL-språkdialekter många likheter, och detta är ofta den första faktorn som många organisationer identifierar när de väljer Postgres som den bästa passformen för Oracle-databasmigreringar. Det finns dock vissa unika skillnader och skillnader mellan de två databasspråken som måste beaktas. Områden som är viktiga är: databasspecifika nyckelord och syntax, undantagshantering, inbyggda funktioner, datatyper och sekvenskrementering.

I många fall kan Postgres-tilläggets ekosystem vara en kraftfull allierad för att effektivisera kodmigreringsprocessen. Tillägget "Oracle Functions for PostgreSQL" (orafce) innehåller till exempel en uppsättning inbyggda Oracle-kompatibilitetsfunktioner och -paket som kan minska behovet av att skriva om delar av din kodbas som förlitar sig på och refererar till dessa Oracle-funktioner. Att använda den här kompatibilitetsbaserade metoden under migreringen av Oracle-kod till PostgreSQL ger betydande fördelar när det gäller att minska komplexiteten, tiden och kostnaden för migreringsprocessen genom att upprätthålla din ursprungliga logik och funktionalitet i källdatabasdefinitionerna, säkerställa konsekvens i resultat och förbättra utvecklarproduktiviteten. Alla dessa fördelar ger en förenklad och effektivare kodmigrering till PostgreSQL.

Mer information och exempel på skillnaderna mellan oracle- och Postgres-inbyggda funktioner och logikoperatorer finns i vår Spelbok för Oracle-till-Azure Postgres-migrering

Datamigrering

I dagens datadrivna miljö är dina data förmodligen din mest värdefulla tillgång. Dina dataresurser påverkar i allt högre grad alla aspekter av välgrundade affärsåtgärder och strategiskt beslutsfattande. Det är därför särskilt viktigt att dina datamigreringspipelines fungerar effektivt och ändamålsenligt, är helt konsekventa och verifierbara och slutförs i slutändan.

Din strategi för datamigrering bör övervägas noggrant för att avgöra om "offline" eller "live"-metoder är tillämpliga för din miljö. Varje datamigreringsstrategi har sin egen blandning av fördelar och överväganden, och valet mellan "offline" och "live"-åtgärder beror på de specifika kraven och begränsningarna i din miljö. Till exempel kan "offline"-migreringar vara enklare och mindre komplexa än "live"-migreringar, men "offline"-migreringar innebär stilleståndstid under den tidsperiod som krävs för att helt migrera dina data till måldatabasen. "Live"-migreringar erbjuder minimal till ingen stilleståndstid, men de innebär mer komplexitet och infrastruktur för att övervaka den inledande återfyllnadsdatabelastningen och den efterföljande datasynkroniseringen av ändringar som kan ha inträffat sedan datamigreringen startade. Noggrann planering, noggrann utvärdering av affärskrav och övervägande av teamets specifika kritiska faktorer säkerställer att du kan fatta ett välgrundat beslut som är helt i linje med dina datamigreringsbehov.

Migrering av programkod

Även om externa program tekniskt sett kan betraktas utanför domänen för databasteamets migreringsansvar, är uppdatering och modernisering av databasanslutningen till dina klientprogram ett viktigt och nära samband med den övergripande framgången för databasmigreringsresan. Precis som med de andra faserna i migreringen beror den associerade ansträngningen och komplexiteten som krävs för att åtgärda klientprogramplattformens kompatibilitet på de unika omständigheterna i din miljö. Har dina klientprogram utvecklats av en tredje part? I så fall är det viktigt att se till att deras programvaruprodukt är certifierad för att stödja Postgres-databasplattformen. Använder dina interna program tekniker för objektrelationsmappning, till exempel Hibernate eller Entity Framework? I vissa fall kan en liten konfiguration eller filändring vara allt som krävs. Om du däremot har stora mängder databasfrågor och -instruktioner inbäddade i koden kan du behöva allokera mer tid för att granska, ändra och validera kodändringarna på rätt sätt.

Det finns också partnerlösningsleverantörer som erbjuder nya metoder som kan översätta äldre klientdatabasåtgärder i realtid. Dessa proxytjänster ger en abstraktion över dina databaslager som effektivt frikopplar dina program från databasspecifika språkberoenden.

I många fall kan ditt beslut innehålla en kombination av flera strategier och hybridstrategier som används gemensamt för deras respektive styrkor och kombinerade funktioner. Om du distribuerar ett databasöversättningslager i realtid kan dina team snabbt distribuera om sina klientprogram samtidigt som programvarutekniker och utvecklare får lämplig tid och resursplanering för att omstrukturera sina databasspecifika beroenden för att stödja postgres interna åtgärder.

Viktigt!

Vart och ett av dessa val åtföljs av sina egna specifika uppsättningar av överväganden och fördelar och det är viktigt att dina team noggrant granskar var och en av dessa metoder för att fastställa den idealiska strategiska vägen framåt.

Migreringsverifiering

När du migrerar från Oracle till PostgreSQL är både dataintegritet och logisk konsekvens av största vikt. Migreringsvalidering spelar en viktig roll i den här processen, eftersom det handlar om att kontrollera att data som överförs från Oracle-källdatabasen är korrekta och fullständiga i PostgreSQL-målsystemet. Det här steget är viktigt inte bara för att upprätthålla datatillförlitligheten utan även för att bekräfta att migreringsprocessen inte har infört några fel eller avvikelser. Valideringskontroller kan vara att jämföra tabellantal, verifiera datatyper och strukturer, jämföra kolumnvärden på radnivå och se till att komplexa frågor ger konsekventa resultat i båda databaserna. Dessutom måste särskild uppmärksamhet ägnas vid hantering av skillnader i hur de två databassystemen hanterar data, till exempel variationer i datum- och tidsformat, teckenkodning och hantering av null-värden.

Detta innebär vanligtvis att konfigurera automatiserade valideringsskript som kan jämföra datauppsättningar i båda databaserna och markera eventuella avvikelser. Verktyg och ramverk som utformats för datajämförelse kan utnyttjas för att effektivisera den här processen. Validering efter migreringen bör vara en iterativ process med flera kontroller som utförs i olika skeden av migreringen för att fånga upp problem tidigt och minimera risken för skadade data. Genom att prioritera dataverifiering kan organisationer med säkerhet övergå från Oracle till PostgreSQL, med vetskapen om att deras data fortfarande är tillförlitliga och användbara.

Prestandajustering

Prestanda ses vanligtvis som en av de mest konkreta och viktiga egenskaperna som avgör plattformens uppfattning och användbarhet. Att se till att migreringen är både korrekt och högpresterande är av största vikt för att uppnå framgång och kan inte förbises. Mer specifikt anses frågeprestanda ofta vara den mest kritiska indikatorn för optimal databaskonfiguration och används ofta som ett lackmustest av dina användare för att fastställa hälsotillståndet för din miljö.

Som tur är införlivar Azure-plattformen de verktyg och funktioner som behövs för att övervaka prestandapunkter i en mängd olika mått, inklusive skalning, effektivitet och kanske viktigast av allt hastighet. Dessa intelligenta prestandafunktioner fungerar hand i hand med Postgres-övervakningsresurserna för att förenkla dina justeringsprocesser, och i många fall automatisera dessa steg för att automatiskt anpassa och justera efter behov. Följande Azure-verktyg kan se till att databassystemen fungerar på de allra bästa nivåerna.

Query Store

Query Store för Azure Postgres fungerar som grund för dina övervakningsfunktioner. Query Store spårar statistik och driftmått från Postgres-databasen, inklusive frågor, associerade förklaringsplaner, resursanvändning och arbetsbelastningstid. Dessa datapunkter kan upptäcka tidskrävande frågor, frågor som förbrukar mest resurser, de vanligaste kör frågorna, överdriven uppsvälld tabell och många fler operativa aspekter av databasen. Den här informationen hjälper dig att ägna mindre tid åt felsökning genom att snabbt identifiera åtgärder eller områden som kräver uppmärksamhet. Query Store ger en omfattande vy över din övergripande arbetsbelastningsprestanda genom att identifiera:

  • Tidskrävande frågor och hur de ändras över tid.
  • Väntetyper som påverkar dessa frågor.
  • Information om de vanligaste databasfrågorna efter anrop (körningsantal), efter dataanvändning, efter IOPS och tillfällig filanvändning (potentiella justeringskandidater för prestandaförbättringar).
  • Öka detaljnivån för en fråga för att visa fråge-ID och historik för resursanvändning.
  • Djupare insikt i den övergripande resursförbrukningen för databaser.

Indexjustering

Indexjustering är en funktion i en flexibel Azure Database for PostgreSQL-server som automatiskt kan förbättra arbetsbelastningens prestanda genom att analysera spårade frågor och tillhandahålla indexrekommendationer. Den är inbyggd i Azure Database for PostgreSQL – flexibel server och bygger på Query Store-funktioner. Indexjustering analyserar arbetsbelastningar som spåras av Query Store och ger indexrekommendationer för att förbättra prestanda för den analyserade arbetsbelastningen eller för att släppa duplicerade eller oanvända index. Detta görs på tre unika sätt:

  • Identifiera vilka index som är bra att skapa eftersom de avsevärt kan förbättra de frågor som analyseras under en indexjusteringssession.
  • Identifiera index som är exakta dubbletter och som kan elimineras för att minska prestandapåverkan deras existens och underhåll har på systemets övergripande prestanda.
  • Identifiera index som inte används under en konfigurerbar period som kan vara kandidater att eliminera.

Intelligent justering

Intelligent justering är en pågående övervaknings- och analysprocess som inte bara lär sig om arbetsbelastningens egenskaper utan även spårar din aktuella belastning och resursanvändning, till exempel CPU eller IOPS. Det stör inte den normala driften av programarbetsbelastningen. Processen gör det möjligt för databasen att dynamiskt anpassa sig till din arbetsbelastning genom att urskilja aktuell uppsvälldhetsgrad, skrivprestanda och kontrollpunktseffektivitet på din instans. Med dessa insikter distribuerar Intelligent Tuning justeringsåtgärder som förbättrar arbetsbelastningens prestanda och undviker potentiella fallgropar. Den här funktionen består av två automatiska justeringsfunktioner:

  • Autovacuumjustering: Den här funktionen spårar uppsvälldhetsförhållandet och justerar autovacuuminställningarna därefter. Den tar hänsyn till både aktuell och förutsagd resursanvändning för att förhindra arbetsbelastningsstörningar.
  • Skrivjustering: Den här funktionen övervakar volymen och mönstren för skrivåtgärder och ändrar parametrar som påverkar skrivprestanda. Dessa justeringar förbättrar både systemets prestanda och tillförlitlighet för att proaktivt avvärja potentiella komplikationer.

Dricks

Läs mer om hur du använder Intelligenta prestanda för att maximera dina Azure Postgres-plattformar.

Molnoptimering

Optimering av din nya Azure Postgres-databasmiljö innebär kulmen på all otrolig ansträngning och hårt arbete som har lett till att ditt team har kommit fram till den här viktiga punkten. Molnoptimering kan vara ett nytt ansvar, särskilt när du kommer från en lokal eller äldre databasmiljö. Azure-molnplattformen introducerar en ny och förbättrad uppsättning värdefulla och avancerade skalbarhetsfunktioner som gör det möjligt för ditt team att "ringa in" den exakta allokeringen av resurser, funktioner och kostnadseffektivitet för att matcha organisationens behov idag och långt in i framtiden. Molnoptimering är en pågående process för kontinuerlig förfining av din miljö, vilket ses genom objektiven i de bästa metoderna som är associerade med Microsofts väldefinierade ramverk: kostnadsoptimering, driftseffektivitet, prestandaeffektivitet, tillförlitlighet och säkerhet.

Kostnadsoptimering är en kombination av att rätt storleksanpassa dina resurser, tillämpa strategier för kostnadshantering och effektiv resursanvändning.

Driftskvalitet omfattar implementering av automatisering för distributioner, övervakning och skalning, och minskar fel samtidigt som effektiviteten ökar.

Prestandaeffektivitet säkerställer att du väljer lämpliga resurser för att uppfylla kraven utan överetablering, samtidigt som du tillämpar metodtips för skalbarhet för att hantera varierande belastningar effektivt under perioder med hög drift.

Tillförlitlighet vägleder dig mot utformade system med hög tillgänglighet och feltoleranta system med redundans- och redundansmekanismer för att minimera stilleståndstid och strategier för haveriberedskap för att implementera robusta återställningsplaner, inklusive säkerhetskopierings- och återställningsprocedurer.

Säkerhet betonar vikten av starka identitetsprotokoll och metoder för åtkomsthantering, till exempel åtkomst med minst behörighet, lösenordsfri autentisering och rollbaserad åtkomstkontroll. Dataskydd och kryptering säkerställer att känsliga data skyddas både i vila och under överföring. Säkerhet innehåller även verktyg och metodtips för hotidentifiering och automatiserade svar för att åtgärda säkerhetsincidenter snabbt. Efterlevnad säkerställer att din miljö uppfyller branschstandarder och föreskrifter.

Mer information om de fem grunderna i vägledning och grunderna för implementering av molnoptimering finns i vårt Azure Well-Architected Framework(WAF) center.

För att säkerställa att dessa pelare är anpassade till din Azure Postgres-distribution kan du läsa vår tjänstguide för Azure Well-Architected Framework för PostgreSQL.