Toepassingsmigratie

Voltooid

Nadat u uw database hebt gemigreerd van on-premises naar Azure, moet u uw bestaande toepassingen bijwerken zodat ze toegang hebben tot MySQL op de nieuwe locatie.

De oorspronkelijke on-premises server en database bevatten rollen die de bevoegdheden definiëren die zijn gekoppeld aan gebruikers, de bewerkingen die ze kunnen uitvoeren en de objecten waarvoor ze deze bewerkingen uitvoeren. Azure Database for MySQL maakt gebruik van dezelfde verificatie- en autorisatiemechanismen als PostgreSQL die on-premises wordt uitgevoerd.

In deze les verkent u de updates die u nodig hebt voor uw toepassingen om verbinding te maken met uw zojuist gemigreerde Azure Database for MySQL.

De gebruikers handmatig maken

De oorspronkelijke on-premises server en database bevatten gebruikers, de bewerkingen die ze uitvoeren en de objecten waarvoor ze deze bewerkingen uitvoeren. Azure Database for MySQL maakt gebruik van dezelfde verificatie- en autorisatiemechanismen als MySQL die on-premises wordt uitgevoerd.

Wanneer u een MySQL-database overdraagt naar Azure Database for MySQL met behulp van de Azure Database Migration Service, worden de gebruikers niet gekopieerd. U moet handmatig de benodigde gebruikersaccounts opnieuw maken voor de beheerder en gebruikers van de tabellen in de doeldatabase. Als u deze taken wilt uitvoeren, gebruikt u de SQL-taal of een hulpprogramma zoals MySQL Workbench. Voer de opdracht CREATE USER uit. U gebruikt de GRANT opdracht om de benodigde bevoegdheden toe te wijzen aan een gebruiker. Voorbeeld:

CREATE USER 'myuseraccount'@'%' IDENTIFIED BY 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE [Database Name].* TO myuseraccount;
FLUSH PRIVILEGES;

Als u de bestaande subsidies in de on-premises database wilt weergeven, voert u de volgende SQL-instructie uit:

USE [Database Name];

SHOW GRANTS FOR 'myuseraccount'@'%';;

Toepassingen opnieuw configureren

Het opnieuw configureren van een toepassing om verbinding te maken met Azure Database for MySQL is een eenvoudig proces. Het is echter van cruciaal belang dat u een strategie ontwikkelt voor het migreren van toepassingen.

Overwegingen bij het opnieuw configureren van MySQL-toepassingen

In een bedrijfsomgeving hebt u mogelijk veel toepassingen die worden uitgevoerd op dezelfde MySQL-databases. Er kan een groot aantal gebruikers zijn die deze toepassingen uitvoeren. U wilt er zeker van zijn dat wanneer u overschakelt van het bestaande systeem naar Azure Database for MySQL, uw systemen nog steeds werken, gebruikers hun taken kunnen blijven uitvoeren en bedrijfskritieke bewerkingen operationeel blijven. Module 1, Les 2, Overwegingen voor migratie, besproken veel van de problemen in algemene termen.

Bij het migreren van een MySQL-database naar Azure zijn er enkele specifieke kenmerken waarmee u rekening moet houden:

  • Als u een offlinemigratie uitvoert, kunnen de gegevens in de oorspronkelijke MySQL-database en de nieuwe databases die in Azure worden uitgevoerd, snel afwijken als de oude database nog steeds wordt gebruikt. Een offlinemigratie is geschikt wanneer u een systeem even helemaal uit bedrijf neemt en vervolgens alle toepassingen overschakelt naar het nieuwe systeem voordat u opnieuw opstart. Deze benadering is mogelijk niet mogelijk voor een bedrijfskritiek systeem. Als u migreert naar MySQL dat wordt uitgevoerd op een virtuele Azure-machine, kunt u MySQL-replicatie configureren tussen uw on-premises systeem en die wordt uitgevoerd in Azure. Systeemeigen MySQL-replicatie werkt alleen in één richting, maar oplossingen van derden zijn beschikbaar die bidirectionele replicatie tussen MySQL-servers ondersteunen. Deze oplossingen werken niet met Azure Database for MySQL.
  • Als u een onlinemigratie uitvoert, stelt de Azure Database for MySQL-service replicatie in van de on-premises database naar de database die wordt uitgevoerd in Azure. Na de initiële gegevensoverdracht zorgt replicatie ervoor dat eventuele wijzigingen in de on-premises database worden gekopieerd naar de database in Azure, maar niet andersom.

In beide gevallen moet u ervoor zorgen dat u geen livegegevens kwijtraakt via een onbedoeld overschrijven. In het onlinescenario kan bijvoorbeeld een toepassing die is verbonden met de database die wordt uitgevoerd in Azure Database for MySQL, de wijzigingen blind laten overschrijven door een toepassing die nog steeds gebruikmaakt van de on-premises database. Daarom moet u rekening houden met de volgende benaderingen:

  • Toepassingen migreren op basis van hun workloadtype. Een toepassing die toegang heeft tot de gegevens om alleen te lezen, kan veilig worden verplaatst naar de database die wordt uitgevoerd in Azure Database for MySQL en ziet alle wijzigingen die zijn aangebracht door toepassingen die nog steeds gebruikmaken van de on-premises database. U kunt ook de omgekeerde strategie gebruiken als alleen-lezentoepassingen geen volledig up-to-data-gegevens vereisen.
  • Gebruikers migreren op basis van hun workloadtype. Deze strategie is vergelijkbaar met de vorige strategie, behalve dat u mogelijk gebruikers hebt die alleen rapporten genereren terwijl anderen de gegevens wijzigen. U kunt dezelfde toepassing hebben geconfigureerd om verbinding te maken met de juiste database op basis van de vereisten van de gebruiker.
  • Toepassingen migreren op basis van de gegevenssets die ze gebruiken. Als verschillende toepassingen verschillende subsets van de gegevens gebruiken, kunt u deze toepassingen mogelijk onafhankelijk van elkaar migreren.

Een toepassing opnieuw configureren

Als u een toepassing opnieuw wilt configureren, wijst u deze naar de nieuwe database. De meeste goed geschreven toepassingen moeten de verbindingslogica isoleren. Dit moet het enige deel zijn van de code die moet worden gewijzigd. In veel gevallen kunnen verbindingsgegevens worden opgeslagen als configuratiegegevens, dus u hoeft die gegevens alleen bij te werken.

U vindt de verbindingsgegevens voor uw Azure Database for MySQL-service in Azure Portal op de pagina Verbinding maken iontekenreeksen voor uw Azure Database for MySQL-service. Azure biedt de informatie voor veel algemene programmeertalen en frameworks.

Image showing the Connection strings page for Azure Database for MySQL item in the Azure portal

Netwerkpoorten openen

Zoals vermeld in les 1 van deze module, is Azure Database for MySQL een beveiligde service die achter een firewall wordt uitgevoerd. Clients kunnen geen verbinding maken, tenzij hun IP-adres wordt herkend door de service. U moet de IP-adressen of adresblokbereiken toevoegen voor clients met toepassingen die verbinding moeten maken met uw databases.

Toepassingen testen en verifiëren

Voordat u toepassingen en gebruikers overschakelt naar de nieuwe database, is het belangrijk om ervoor te zorgen dat u alles correct hebt geconfigureerd.

Begin met 'drooglopende' toepassingen en verbind als elke rol om ervoor te zorgen dat de juiste functionaliteit beschikbaar is.

Voer vervolgens 'weken'-tests uit om het aantal gebruikers met typische workloads gelijktijdig gedurende een bepaalde periode na te bootsen. Bewaak het systeem en controleer of u voldoende resources hebt toegewezen aan uw Azure Database for MySQL-service.

U kunt nu beginnen met het implementeren van het systeem voor gebruikers. Het kan nuttig zijn om een vorm van "canary testing" te implementeren, waarbij een kleine subset van gebruikers wordt overgebracht naar het systeem niet weet. Dit geeft u een onbevooroordeeld advies over of gebruikers dezelfde, betere of slechtere ervaring hebben met de nieuwe database.