Dela via


Inbyggda lagrade procedurer i Azure Database for MySQL

GÄLLER FÖR: Azure Database for MySQL – flexibel server

Azure Database for MySQL innehåller flera inbyggda lagrade procedurer som förenklar och automatiserar avancerade databashanteringsuppgifter. De här lagrade procedurerna hjälper dig att effektivt konfigurera funktioner som data-in-replikering, Undo-loggrensning och plugin-hantering.

Den här artikeln beskriver de inbyggda lagrade procedurerna som är tillgängliga i Azure Database for MySQL, deras funktioner och hur du använder dem.

Aktuella tillgängliga inbyggda lagrade procedurer

1. Hantering av datareplikering

Azure Database for MySQL innehåller lagrade procedurer för att hantera datareplikering, inklusive start, stopp, kontroll av status och återställning av replikering.

Mer information om dessa procedurer finns i Så här konfigurerar du Azure Database for MySQL – flexibel server för datareplikering.

2. Hantering av plugin-program

Azure Database for MySQL stöder plugin-programmet Verifiera lösenord, som tillämpar principer för lösenordsstyrka. Användare kan aktivera eller inaktivera det här plugin-programmet med hjälp av följande lagrade procedurer:

Aktivera plugin-programmet verifiera lösenord

CALL az_install_validate_password_plugin();

När du har aktiverat plugin-programmet kan du visa och konfigurera relaterade parametrar på sidan Serverparametrar i Azure-portalen.

Inaktivera plugin-programmet validera lösenord

CALL az_uninstall_validate_password_plugin();

Den här lagrade proceduren tar bort plugin-programmet.

Anmärkning

  • För HA-servrar (hög tillgänglighet) kör du först dessa lagrade procedurer på den primära servern. Utför sedan ett framtvingat övertagande och kör de lagrade procedurerna på den nya primära servern igen.
  • För replikservrar synkroniseras inte automatiskt replikerna genom att köra dessa lagrade procedurer på den primära. Kör dem manuellt på varje replik när du har kört dem på den primära repliken.

3. Ångra loggrensning

Återställningsloggen kan ibland bli stor, och du kanske vill rensa den. Azure Database for MySQL tillhandahåller en lagrad procedur som hjälper dig med den här uppgiften.

  1. Kontrollera tabellutrymmet genom att först köra följande kommando.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Om du märker att ångra-loggen är stor ska du köra följande kommando för att skapa ett nytt tabellområde.
    call az_create_undo_tablespace(X)
    
    För närvarande har vi stöd för upp till åtta tabellområden, inklusive två standardområden. X-värdet måste vara mellan 3 och 8. När kommandot har slutförts bör det nya tabellområdet vara i ett aktivt tillstånd.
  3. Kör följande kommando som inaktiverar innodb_undo_001 (standardinställningen).
    call az_deactivate_undo_tablespace(1)
    
    Vänta sedan tills tillståndet för innodb_undo_001 är tomt (Det innebär att undo-loggen trunkeras).
    Du kan kontrollera att loggtrunkeringen ångras genom att kontrollera Verifiera och kontrollera Ångra tabellområden
  4. Kör följande kommando för att aktivera innodb_undo_001 (standard).
    call az_activate_undo_tablespace(1)
    
    Vänta sedan tills tillståndet för innodb_undo_001 är aktivt.
  5. Upprepa stegen 1–4 för innodb_undo_002.
  6. Kör call az_deactivate_undo_tablespace(3); för att inaktivera det nyligen skapade tabellutrymmet. Vänta tills statusen är tom. Kör Call az_drop_undo_tablespace(3); sedan för att släppa det nyligen skapade tabellutrymmet. Du kan inte släppa standardvärdena (innodb_undo_001, innodb_undo_002). Du kan bara släppa den du skapade. I det här exemplet är den x_undo_003.Innan du släpper inaktiverar du först x_undo_003 till tomt tillstånd.

Verifiera och kontrollera Ångra tabellområden

Innan du tömmer ett ångrat tabellområde kontrollerar du att det inte finns några aktiva transaktioner:

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Om resultatet är 0 finns det inga aktiva transaktioner.
  • Ångra tabellområdet kan bara tömmas när det här antalet är noll.

När du har bekräftat att transaktionerna har nått noll, kontrollerar du statusen för undo tablespaces:

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

Ta bort problematisk tabell

Om du får ett fel som liknar följande när du öppnar en tabell kan det tyda på att tabellen är skadad:

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

För att lösa det här problemet kan du använda den inbyggda lagrade proceduren:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

När du har kört proceduren rekommenderar vi att du startar om servern för att säkerställa att ändringarna börjar gälla.

Du kan också utföra en återställning till tidpunkt för att återställa servern till ett tillstånd innan problemet uppstod.

Slutsats

Azure Database for MySQL innehåller inbyggda lagrade procedurer som förenklar avancerade databashanteringsuppgifter. Med de här procedurerna kan du konfigurera replikering, hantera Ångra-loggen och aktivera plugin-program effektivt. Genom att använda dessa verktyg kan du förbättra prestanda, optimera lagring och säkerställa sömlös datasynkronisering.