Delen via


Upgrade van hoofdversie in Azure Database for MySQL

Notitie

Dit artikel bevat verwijzingen naar de term slave, een term die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

In dit artikel wordt beschreven hoe u een upgrade uitvoert van uw primaire mySQL-versie in Azure Database for MySQL Flexible Server. Met deze functie kunnen klanten primaire versie-upgrades uitvoeren (bijvoorbeeld van MySQL 5.7 tot 8.0 of 8.0 tot 8.4) zonder gegevens te verplaatsen of toepassingsverbindingsreeksen te wijzigen.

Belangrijk

  • De duur van downtime varieert op basis van de grootte van het database-exemplaar en het aantal tabellen dat deze bevat.
  • Bij het initiëren van een primaire versie-upgrade voor Azure Database for MySQL Flexible Server via rest API of SDK, moet u voorkomen dat u andere service-eigenschappen in dezelfde aanvraag wijzigt. Gelijktijdige wijzigingen zijn niet toegestaan en kunnen leiden tot onbedoelde resultaten of mislukte aanvragen. Voer wijzigingen van eigenschappen uit in afzonderlijke bewerkingen nadat de upgrade is voltooid.
  • Sommige workloads vertonen mogelijk geen verbeterde prestaties na een upgrade van een primaire versie. We raden u aan de prestaties van uw workload te evalueren door eerst een replicaserver te maken (als testserver), deze vervolgens te promoveren naar een zelfstandige server en vervolgens de workload op de testserver uit te voeren voordat u de upgrade in een productieomgeving implementeert.
  • Het upgraden van de primaire MySQL-versie kan niet ongedaan worden. Uw implementatie kan mislukken als de validatie aangeeft dat de server is geconfigureerd met functies die zijn verwijderd of afgeschaft in de doelversie. U kunt de benodigde configuratiewijzigingen op de server aanbrengen en de upgrade opnieuw uitvoeren.

Vereisten

  • Leesreplica's met een oudere MySQL-versie moeten worden bijgewerkt voordat de primaire server voor replicatie compatibel is tussen verschillende MySQL-versies. Lees meer over replicatiecompatibiliteit tussen MySQL-versies.
  • Voordat u uw productieservers bijwerkt, is het nu eenvoudiger en efficiënter met onze ingebouwde functie Valideren in Azure Portal. Met dit hulpprogramma wordt de compatibiliteit van uw databaseschema vooraf gecontroleerd met de mySQL-doelversie, waarbij potentiële problemen worden gemarkeerd. Hoewel we deze handige optie bieden, raden we u ook ten zeerste aan het officiële hulpprogramma oracle MySQL Upgrade te gebruiken om de compatibiliteit van uw databaseschema te testen en de benodigde regressietests uit te voeren om te controleren of de toepassingscompatibiliteit met functies/ die zijnverwijderd uit de nieuwe MySQL-versie.
  • Activeer back-up op aanvraag voordat u een primaire versie-upgrade uitvoert op uw productieserver. Back-ups die zijn gemaakt voordat de upgrade kan worden gebruikt om terug te keren naar de vorige versie van de volledige on-demand back-up.
  • Voordat u doorgaat met de upgrade van de primaire versie, moet u ervoor zorgen dat er geen actieve of wachtende XA-transacties in de database zijn, omdat lopende XA-transacties het upgradeproces mogelijk kunnen mislukken. Om dit probleem te voorkomen, controleert u eerst op XA-transacties met de status 'voorbereid' door uit te voeren XA RECOVER;. Voor alle geïdentificeerde transacties gebruikt u XA ROLLBACK '{xid}' om elke transactie terug te draaien; vervang hierbij {xid} door de transactie-id. Zorg ervoor dat alle XA-transacties worden doorgevoerd of teruggedraaid voordat u de upgrade start om de transactieconsistentie te behouden en het risico op upgradefouten te verminderen.

Notitie

Wanneer u het officiële hulpprogramma van Oracle gebruikt om de compatibiliteit van schema's te controleren, worden er mogelijk enkele waarschuwingen weergegeven die onverwachte tokens in opgeslagen procedures aangeven, zoals:

mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'

mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode

U kunt deze waarschuwingen veilig negeren. Ze verwijzen naar ingebouwde opgeslagen procedures met het voorvoegsel mysql., die worden gebruikt ter ondersteuning van Azure MySQL-functies. Deze waarschuwingen hebben geen invloed op de functionaliteit van uw database.

Een geplande upgrade van een primaire versie uitvoeren met behulp van Azure Portal voor Burstable SKU-servers

Voor het uitvoeren van een upgrade van een primaire versie voor een Azure Database for MySQL Burstable SKU-rekenlaag is een gespecialiseerde werkstroom vereist. Upgrades van primaire versies zijn resource-intensief, veeleisend voor cpu en geheugen. Burstable SKU-exemplaren, die op tegoed zijn gebaseerd, kunnen lastig zijn onder deze vereisten, waardoor het upgradeproces mogelijk mislukt. Bij het upgraden van een Burstable SKU werkt het systeem daarom eerst de rekenlaag bij naar een General-Purpose SKU om ervoor te zorgen dat er voldoende resources beschikbaar zijn voor de upgrade.

Voer de volgende stappen uit om een primaire versie-upgrade uit te voeren voor een Azure Database for MySQL Burstable SKU-rekenlaag met behulp van Azure Portal:

  1. Selecteer in Azure Portal uw bestaande exemplaar van Azure Database for MySQL Flexible Server.

    Belangrijk

    U wordt aangeraden eerst een upgrade uit te voeren op een herstelde serverkopie in plaats van rechtstreeks productie te upgraden. Zie hoe u herstel naar een bepaald tijdstip uitvoert.

  2. Selecteer Upgrade op de pagina Overzicht op de werkbalk.

    Belangrijk

    Voordat u een upgrade uitvoert, gaat u naar de koppeling voor de lijst met functies die zijn verwijderd in de mySQL-doelversie. Controleer de afgeschafte sql_mode waarden en verwijder deze uit uw huidige Azure Database for MySQL Flexible Server met behulp van de blade Serverparameters in Azure Portal om implementatiefouten te voorkomen. sql_mode met waarden NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS en NO_TABLE_OPTIONS worden niet meer ondersteund in MySQL 8.0 en hoger.

    Schermopname die de upgrade van Azure Database voor MySQL Flexible Server toont.

  3. Validatie van schemacompatibiliteit

    Voordat u doorgaat met de upgrade, voert u het officiële hulpprogramma mySQL-upgradecontrole van Oracle uit om te controleren of uw huidige databaseschema compatibel is met de mySQL-doelversie. Deze stap is van cruciaal belang om een soepel upgradeproces te garanderen.

  4. Beslissing vóór upgrade

    Voordat u een upgrade uitvoert, moet u de rekenlaag kiezen om een upgrade uit te voeren om de upgrade van de primaire versie uit te voeren. De systeemupgrades van Burstable SKU naar de meest eenvoudige SKU voor algemeen gebruik, maar u kunt indien nodig upgraden naar een hogere rekenlaag. Houd er rekening mee dat er tijdens de upgrade alleen kosten in rekening worden gebracht voor de werkelijke resources voor algemeen gebruik die tijdens deze periode worden gebruikt.

  5. Beslissing na de upgrade

    Bepaal na de upgrade of u de SKU Algemeen gebruik wilt behouden of wilt terugkeren naar Burstable SKU. Deze keuze wordt gevraagd tijdens de eerste upgradestappen.

    Het systeem werkt uw rekenlaag automatisch bij van Burstable SKU naar de geselecteerde SKU voor algemeen gebruik ter ondersteuning van de primaire versie-upgrade.

  6. Upgrade van primaire versie

    Zodra de rekenlaag is bijgewerkt, start het systeem het upgradeproces van de primaire versie. Bewaak de voortgang van de upgrade via Azure Portal. Het upgradeproces kan enige tijd duren, afhankelijk van de grootte en activiteit van uw database. Houd er rekening mee dat als de upgrade van de primaire versie mislukt, de rekenlaag niet automatisch wordt teruggezet naar de vorige Burstable SKU. Hierdoor kunnen klanten doorgaan met de upgrade van de primaire versie zonder de upgrade van de rekenlaag opnieuw uit te voeren.

  7. Automatische herversie

    Op basis van uw preupgrade-beslissing behoudt het systeem de SKU algemeen gebruik of keert het automatisch terug naar burstable SKU na de upgrade. Als u automatisch herstelt naar Burstable SKU, wordt het systeem standaard teruggezet naar de B2S-SKU.

Een geplande primaire versie-upgrade uitvoeren met behulp van Azure Portal voor algemene en bedrijfskritieke SKU-servers

Voer de volgende stappen uit om een primaire versie van een Flexibele Server van Azure Database for MySQL uit te voeren met behulp van Azure Portal.

  1. Selecteer in Azure Portal uw bestaande exemplaar van Azure Database for MySQL Flexible Server.

    Belangrijk

    U wordt aangeraden eerst een upgrade uit te voeren op een herstelde serverkopie in plaats van rechtstreeks productie te upgraden. Zie hoe u herstel naar een bepaald tijdstip uitvoert.

  2. Selecteer Upgrade op de pagina Overzicht op de werkbalk.

    Belangrijk

    Voordat u een upgrade uitvoert, gaat u naar de koppeling voor de lijst met functies die zijn verwijderd in de mySQL-doelversie. Controleer de afgeschafte sql_mode waarden en verwijder deze uit uw huidige Azure Database for MySQL Flexible Server met behulp van de blade Serverparameters in Azure Portal om implementatiefouten te voorkomen. sql_mode met waarden NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS en NO_TABLE_OPTIONS worden niet meer ondersteund in MySQL 8.0 en hoger.

    Schermopname die de upgrade van Azure Database voor MySQL Flexible Server toont.

  3. Validatie vóór de upgrade uitvoeren

    Voordat u doorgaat met de upgrade, selecteert u de knop Valideren om de compatibiliteit van uw server met de MySQL-doelversie te controleren.

    Schermopname van valideren.

    Notitie

    Onlinevalidatie wordt momenteel niet ondersteund voor de upgrade van de primaire versie 8.0 tot 8.4. De klant wordt aangeraden het communityhulpprogramma te gebruiken om pre-upgradevalidatie uit te voeren. Onlinevalidatie voor ondersteuning van 8.0 tot en met 8.4 wordt binnenkort geleverd.
    Wanneer u de functie Valideren gebruikt om uw databaseschema te beoordelen op compatibiliteit met de mySQL-doelversie, moet u rekening houden met de volgende overwegingen:

    • Tabelvergrendeling tijdens validatie: tijdens het validatieproces worden tabellen vergrendeld om het hele schema nauwkeurig te controleren. Dit kan leiden tot time-outs van query's als de database zwaar wordt belast.   Aanbeveling: Vermijd het uitvoeren van validatie tijdens piekuren of wanneer de database veel verkeer verwerkt. In plaats daarvan plant u de validatie tijdens perioden met weinig activiteit om de impact op bewerkingen te verminderen.
    • Potentieel voor vasthangen vanwege grote resultatensets: In sommige gevallen, met name bij complexe databases met veel objecten, kan het validatieresultaat te groot worden om te worden verwerkt of weergegeven in de onlinewerkstroom. Dit kan ertoe leiden dat de bewerking Valideren lijkt vast te hangen of voor onbepaalde tijd wordt uitgevoerd.   Aanbeveling: Als u dit probleem ondervindt, raden we u aan om de validatie lokaal uit te voeren met behulp van het officiële hulpprogramma voor upgradecontrole aan de clientzijde, zoals het hulpprogramma dat is opgenomen in MySQL Shell. Deze aanpak voorkomt beperkingen voor de resultaatgrootte aan de platformzijde en biedt een gedetailleerdere en betrouwbare validatie-uitvoer.
    • Aanbevolen gebruiksvoorbeelden voor onlinevalidatie: de online functie Valideren is ontworpen voor eenvoudige of gematigd complexe schema's. Voor grootschalige productieomgevingen, zoals omgevingen met duizenden tabellen, weergaven, routines of andere schemaobjecten, raden we u ten zeerste aan het upgradecontroleprogramma aan de clientzijde van Oracle te gebruiken om de compatibiliteitscontrole uit te voeren. Dit zorgt ervoor dat het volledige schema uitgebreid wordt geanalyseerd en mogelijke problemen met betrekking tot de resultaatgrootte of validatietime-outs worden voorkomen.
  4. Controleer in de zijbalk Upgrade , in de MySQL-versie om het tekstvak te upgraden , de primaire MySQL-versie waarnaar u een upgrade wilt uitvoeren (bijvoorbeeld 8.0 of 8.4).

    Schermopname van Upgrade.

    Voordat u de primaire server kunt upgraden, moet u eerst alle gekoppelde leesreplicaservers upgraden. Totdat dit is voltooid, is upgrade uitgeschakeld.

  5. Selecteer op de primaire server het bevestigingsbericht om te controleren of alle replicaservers zijn bijgewerkt en selecteer vervolgens Upgraden.

    Schermopname van de upgrade.

    Upgrade is standaard ingeschakeld op leesreplica en zelfstandige servers.

Een geplande primaire versie-upgrade uitvoeren met behulp van de Azure CLI

Voer de volgende stappen uit om een primaire versie van een Azure Database for MySQL Flexible Server uit te voeren met behulp van de Azure CLI.

  1. Installeer de Azure CLI voor Windows of gebruik de Azure CLI in Azure Cloud Shell om de upgradeopdrachten uit te voeren.

    Voor deze upgrade is Azure CLI versie 2.40.0 of hoger vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd. Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.

  2. Nadat u zich hebt aangemeld, voert u de opdracht az MySQL server upgrade uit.

    az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version {target major version}
    

    Vervang {target major version} door de versie waarnaar u een upgrade wilt uitvoeren (bijvoorbeeld 8 of 8.4).

  3. Typ onder de bevestigingsprompt y om te bevestigen of n om het upgradeproces te stoppen en druk op Enter.

Een primaire versie-upgrade uitvoeren op een leesreplicaserver met behulp van Azure Portal

Voer de volgende stappen uit om een belangrijke versie-upgrade uit te voeren van een leesreplicaserver van Azure Database for MySQL Flexible Server met behulp van Azure Portal.

  1. selecteer uw bestaande Azure Database for MySQL Flexible Server en lees de replicaserver in Azure Portal.

  2. Selecteer Upgrade op de pagina Overzicht op de werkbalk.

    Belangrijk

    Voordat u een upgrade uitvoert, gaat u naar de koppeling voor de lijst met functies die zijn verwijderd in de mySQL-doelversie. Controleer de afgeschafte sql_mode waarden en verwijder deze uit uw huidige Azure Database for MySQL Flexible Server met behulp van de blade Serverparameters in Azure Portal om implementatiefouten te voorkomen.

  3. Selecteer In de sectie Upgradeupgraden om een Azure Database for MySQL Flexible Server-leesreplicaserver te upgraden naar de primaire doelversie. Er wordt een melding weergegeven om te bevestigen dat de upgrade is geslaagd.

  4. Controleer op de pagina Overzicht of de leesreplicaserver van Azure Database for MySQL Flexible Server de doelversie uitvoert.

  5. ga naar uw primaire server en voer een upgrade van de primaire versie uit.

Minimale downtime bijwerken van primaire versie met leesreplica's

Voer de volgende stappen uit om een grote versie-upgrade van een Flexibele Server van Azure Database for MySQL uit te voeren met minimale downtime met behulp van leesreplicaservers.

  1. selecteer uw bestaande Exemplaar van Azure Database for MySQL Flexible Server in Azure Portal.

  2. Maak een leesreplica van uw primaire server.

  3. Werk uw leesreplica bij naar de primaire doelversie.

  4. Nadat u hebt bevestigd dat de replicaserver de doelversie uitvoert, kunt u voorkomen dat uw toepassing verbinding maakt met uw primaire server.

  5. Controleer de replicatiestatus om ervoor te zorgen dat de replica de primaire replica heeft opgepikt, zodat alle gegevens gesynchroniseerd zijn en dat er geen nieuwe bewerkingen worden uitgevoerd op de primaire replica.

  6. Bevestig met de opdracht Replicastatus weergeven op de replicaserver om de replicatiestatus weer te geven.

    SHOW SLAVE STATUS\G
    

    Als de status van Slave_IO_Running en Slave_SQL_Running ja is en de waarde van Seconds_Behind_Master 0 is, werkt replicatie goed. Seconds_Behind_Master geeft aan hoe laat de replica is. Als de waarde niet 0 is, verwerkt de replica nog steeds updates. Nadat u hebt bevestigd dat de waarde van Seconds_Behind_Master 0 is, is het veilig om de replicatie te stoppen.

  7. Promoot de leesreplica naar de primaire replica door de replicatie te stoppen.

  8. Stel serverparameter read_only in op 0 (UIT) om te beginnen met schrijven op de gepromoveerde primaire server.

  9. Verwijs uw toepassing naar de nieuwe primaire (voormalige replica) waarop de doelversie wordt uitgevoerd. Elke server heeft een unieke verbindingsreeks. Werk uw toepassing bij zodat deze verwijst naar de (voormalige) replica in plaats van de bron.

    Notitie

    In dit scenario wordt alleen downtime in rekening gebracht tijdens stap 4 tot en met 7.