Migrering av program
När du har migrerat databasen från en lokal plats till Azure måste du uppdatera dina befintliga program så att de kan komma åt MySQL på den nya platsen.
Din ursprungliga lokala server och databas innehåller roller som definierar de behörigheter som är associerade med användare, vilka åtgärder de kan utföra och de objekt som de utför dessa åtgärder över. Azure Database for MySQL använder samma autentiserings- och auktoriseringsmekanismer som PostgreSQL som körs lokalt.
I den här lektionen utforskar du de uppdateringar du behöver göra för dina program för att ansluta till din nyligen migrerade Azure Database for MySQL.
Skapa användarna manuellt
Den ursprungliga lokala servern och databasen innehåller användare, de åtgärder de utför och de objekt som de utför dessa åtgärder över. Azure Database for MySQL använder samma autentiserings- och auktoriseringsmekanismer som MySQL som körs lokalt.
När du överför en MySQL-databas till Azure Database for MySQL med Azure Database Migration Service kopieras inte användarna. Du måste återskapa nödvändiga användarkonton manuellt för administratören och användarna av tabellerna i måldatabasen. För att utföra dessa uppgifter använder du SQL-språket eller ett verktyg som MySQL Workbench. Kör kommandot CREATE USER
. Du använder GRANT
kommandot för att tilldela nödvändig behörighet till en användare. Till exempel:
CREATE USER 'myuseraccount'@'%' IDENTIFIED BY 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE [Database Name].* TO myuseraccount;
FLUSH PRIVILEGES;
Om du vill visa befintliga bidrag i den lokala databasen kör du följande SQL-instruktion:
USE [Database Name];
SHOW GRANTS FOR 'myuseraccount'@'%';;
Konfigurera om program
Att konfigurera om ett program för att ansluta till Azure Database for MySQL är en enkel process. Det är dock viktigt att du utvecklar en strategi för att migrera program.
Överväganden vid omkonfiguration av MySQL-program
I en företagsmiljö kan du ha många program som körs mot samma MySQL-databaser. Det kan finnas ett stort antal användare som kör dessa program. Du vill vara säker på att när du byter från det befintliga systemet till Azure Database for MySQL kommer dina system fortfarande att fungera, användarna kan fortsätta att utföra sina jobb och verksamhetskritiska åtgärder förblir i drift. Modul 1, lektion 2, Överväganden för migrering, diskuterade många av problemen i allmänna termer.
När du migrerar en MySQL-databas till Azure finns det några detaljer att tänka på:
- Om du utför en offlinemigrering kan data i den ursprungliga MySQL-databasen och de nya databaserna som körs i Azure börja avvika snabbt om den gamla databasen fortfarande används. En offlinemigrering är lämplig när du tar ett system helt ur drift en kort stund och sedan växlar alla program till det nya systemet innan du startar igen. Den här metoden kanske inte är möjlig för ett affärskritiskt system. Om du migrerar till MySQL som körs på en virtuell Azure-dator kan du konfigurera MySQL-replikering mellan ditt lokala system och det som körs i Azure. Intern MySQL-replikering fungerar endast i en riktning, men lösningar från tredje part är tillgängliga som stöder dubbelriktad replikering mellan MySQL-servrar. De här lösningarna fungerar inte med Azure Database for MySQL.
- Om du utför en onlinemigrering konfigurerar Azure Database for MySQL-tjänsten replikering från den lokala databasen till databasen som körs i Azure. Efter den första dataöverföringen säkerställer replikeringen att alla ändringar som görs i den lokala databasen kopieras till databasen i Azure, men inte tvärtom.
I båda fallen bör du se till att du inte förlorar livedata genom en oavsiktlig överskrivning. I onlinescenariot kan till exempel ett program som är anslutet till databasen som körs i Azure Database for MySQL få sina ändringar blint överskrivna av ett program som fortfarande använder den lokala databasen. Därför bör du överväga följande metoder:
- Migrera program baserat på deras arbetsbelastningstyp. Ett program som endast har åtkomst till data för läsning kan gå säkert till databasen som körs i Azure Database for MySQL och ser alla ändringar som görs av program som fortfarande använder den lokala databasen. Du kan också använda den omvända strategin om skrivskyddade program inte kräver helt upp till datadata.
- Migrera användare baserat på deras arbetsbelastningstyp. Den här strategin liknar den tidigare, förutom att du kan ha användare som bara genererar rapporter medan andra ändrar data. Du kan ha samma program konfigurerat för att ansluta till rätt databas enligt användarens krav.
- Migrera program baserat på de datauppsättningar som de använder. Om olika program använder olika delmängder av data kanske du kan migrera dessa program oberoende av varandra.
Konfigurera om ett program
Om du vill konfigurera om ett program pekar du det på den nya databasen. De flesta välskrivna program bör isolera anslutningslogik – detta bör vara den enda delen av koden som kräver ändring. I många fall kan anslutningsinformation lagras som konfigurationsinformation, så du behöver bara uppdatera den informationen.
Du hittar anslutningsinformationen för din Azure Database for MySQL-tjänst i Azure-portalen på sidan Anslut ionssträngar för din Azure Database for MySQL-tjänst. Azure tillhandahåller information för många vanliga programmeringsspråk och ramverk.
Öppna nätverksportar
Som vi nämnde i lektion 1 i den här modulen är Azure Database for MySQL en skyddad tjänst som körs bakom en brandvägg. Klienter kan inte ansluta om inte deras IP-adress identifieras av tjänsten. Du måste lägga till IP-adresser eller adressblockintervall för klienter som kör program som behöver ansluta till dina databaser.
Testa och verifiera program
Innan du byter program och användare till den nya databasen är det viktigt att se till att du har konfigurerat allt korrekt.
Börja med "torrkörande" program och anslut som varje roll för att säkerställa att rätt funktioner är tillgängliga.
Utför sedan "blöta tester" för att efterlikna antalet användare som kör vanliga arbetsbelastningar samtidigt under en tidsperiod. Övervaka systemet och kontrollera att du har allokerat tillräckligt med resurser till din Azure Database for MySQL-tjänst.
Nu kan du börja distribuera systemet till användarna. Det kan vara fördelaktigt att implementera någon form av "kanarietestning", där en liten delmängd användare överförs till systemet omedvetet. Detta ger dig en opartisk uppfattning om huruvida användarna har samma, bättre eller sämre upplevelse med den nya databasen.