Delen via


Ingebouwde opgeslagen procedures in Azure Database voor MySQL

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele Server

Azure Database for MySQL biedt verschillende ingebouwde opgeslagen procedures waarmee geavanceerde databasebeheertaken worden vereenvoudigd en geautomatiseerd. Met deze opgeslagen procedures kunt u efficiënt functies configureren, zoals gegevensreplicatie, het opschonen van Undo-logboeken en het beheer van invoegtoepassingen.

In dit artikel worden de ingebouwde opgeslagen procedures geïntroduceerd die beschikbaar zijn in Azure Database for MySQL, hun functionaliteiten en hoe u deze kunt gebruiken.

Momenteel beschikbare ingebouwde geprogrammeerde procedures

1. Replicatiebeheer voor inkomende gegevens

Azure Database for MySQL biedt opgeslagen procedures voor het beheren van inkomende replicatie, waaronder het starten, stoppen, controleren van de status en het opnieuw instellen van replicatie.

Zie Azure Database for MySQL - Flexible Server-gegevensreplicatie configureren voor meer informatie over deze procedures.

2. Beheer van invoegtoepassingen

Azure Database for MySQL ondersteunt de invoegtoepassing Wachtwoord valideren, waarmee beleidsregels voor wachtwoordsterkte worden afgedwongen. Gebruikers kunnen deze invoegtoepassing in- of uitschakelen met behulp van de volgende opgeslagen procedures:

De invoegtoepassing wachtwoord valideren inschakelen

CALL az_install_validate_password_plugin();

Nadat u de invoegtoepassing hebt ingeschakeld, kunt u gerelateerde parameters bekijken en configureren op de pagina Serverparameters in Azure Portal.

De plug-in voor wachtwoordvalidatie uitschakelen

CALL az_uninstall_validate_password_plugin();

Met deze opgeslagen procedure wordt de invoegtoepassing verwijderd.

Opmerking

  • Voor hoge beschikbaarheidsservers voert u eerst deze opgeslagen procedures uit op de primaire server. Voer vervolgens een geforceerde failover uit en voer de opgeslagen procedures opnieuw uit op de nieuwe primaire server.
  • Voor replicaservers wordt het uitvoeren van deze opgeslagen procedures op de primaire server niet automatisch gesynchroniseerd met replica's. Voer ze handmatig uit op elke replica nadat ze op de primaire replica zijn uitgevoerd.

3. Logboekopruiming ongedaan maken

In sommige gevallen kan uw ongedaanmakingslog groot worden en wilt u het misschien opruimen. Azure Database for MySQL biedt een opgeslagen procedure om u te helpen bij deze taak.

  1. Voer eerst de volgende opdracht uit om de tabelruimte te controleren.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Als u merkt dat het logboek ongedaan maken groot is, roept u de volgende opdracht aan om een nieuwe tabelruimte te maken.
    call az_create_undo_tablespace(X)
    
    Momenteel ondersteunen we maximaal acht tabelruimten, waaronder twee standaardtabellen. De X-waarde moet tussen 3 en 8 zijn. Nadat de opdracht is voltooid, moet de nieuwe tabelruimte actief zijn.
  3. Voer de volgende opdracht uit om de innodb_undo_001 (standaardinstelling) te deactiveren.
    call az_deactivate_undo_tablespace(1)
    
    Wacht vervolgens totdat de status van innodb_undo_001 leeg is (dit betekent dat het undo-logboek is ingekort).
    U kunt het afkappen van undo-logboeken controleren door Undo-tabelruimten verifiëren en controleren
  4. Voer de volgende opdracht uit om de innodb_undo_001 te activeren (standaard).
    call az_activate_undo_tablespace(1)
    
    Wacht vervolgens tot de status van innodb_undo_001 actief is.
  5. Herhaal de 1-4 stappen voor de innodb_undo_002.
  6. Voer uit call az_deactivate_undo_tablespace(3); om de zojuist gemaakte tabelruimte te deactiveren. Wacht tot de status leeg is. Voer vervolgens uit Call az_drop_undo_tablespace(3); om de zojuist gemaakte tabelruimte te verwijderen. U kunt de standaardwaarden (innodb_undo_001, innodb_undo_002) niet verwijderen. U kunt het exemplaar dat u hebt gemaakt, alleen verwijderen. In dit voorbeeld is het x_undo_003. Voordat u deze neer zet, moet u eerst x_undo_003 deactiveren om de status leeg te maken.

Ongedaan maken tabelruimten verifiëren en controleren

Zorg ervoor dat er geen actieve transacties zijn voordat u een tabelruimte ongedaan gaat maken:

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Als het resultaat 0 is, zijn er geen actieve transacties.
  • De undo-tabelruimte kan alleen worden geleegd wanneer dit aantal nul is.

Nadat u hebt bevestigd dat transacties op nul staan, controleert u de status van de undo-tabelruimten.

SELECT NAME, FILE_SIZE, STATE
FROM information_schema.innodb_tablespaces
WHERE SPACE_TYPE = 'Undo'
ORDER BY NAME;

Tabel met problematische gegevens verwijderen

Als er een fout optreedt zoals het volgende bij het openen van een tabel, kan dit duiden op beschadiging van de tabel:

Incorrect information in file: './DATABASE_NAME/TABLE_NAME.frm'

U kunt dit probleem oplossen door de ingebouwde opgeslagen procedure te gebruiken:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

Nadat u de procedure hebt uitgevoerd, wordt u aangeraden de server opnieuw op te starten om ervoor te zorgen dat de wijzigingen van kracht worden.

U kunt ook een herstel naar een bepaald tijdstip uitvoeren om de server terug te keren naar een status voordat het probleem zich voordeed.

conclusie

Azure Database for MySQL biedt ingebouwde opgeslagen procedures waarmee geavanceerde databasebeheertaken worden vereenvoudigd. Met deze procedures kunt u de replicatie instellen, het ongedaanmakingslogboek beheren en de invoegtoepassingen efficiënt inschakelen. Door deze hulpprogramma's toe te passen, kunt u de prestaties verbeteren, opslag optimaliseren en naadloze gegevenssynchronisatie garanderen.