Condividi tramite


Stored procedure predefinite in Database di Azure per MySQL

SI APPLICA A: Database di Azure per MySQL - Server flessibile

Azure Database for MySQL offre diverse stored procedure predefinite che semplificano e automatizzano le attività avanzate di gestione dei database. Queste stored procedure consentono di configurare in modo efficiente funzionalità come la replica dei dati in ingresso, la pulizia dei log di annullamento e la gestione dei plug-in.

Questo articolo presenta le stored procedure predefinite disponibili in Database di Azure per MySQL, le relative funzionalità e come usarle.

Procedure memorizzate predefinite correnti disponibili

1. Gestione della replica dei dati in ingresso

Database di Azure per MySQL fornisce procedure memorizzate per gestire la replica dei dati in ingresso, inclusi l'avvio, l'arresto, il controllo dello stato e la reimpostazione della replica.

Per informazioni dettagliate su queste procedure, vedere Come configurare Azure Database for MySQL - Flexible Server per la replica dei dati.

2. Gestione dei plug-in

Database di Azure per MySQL supporta il plug-in Convalida password, che applica i criteri di complessità delle password. Gli utenti possono abilitare o disabilitare questo plug-in usando le stored procedure seguenti:

Abilitare il plug-in di convalida della password

CALL az_install_validate_password_plugin();

Dopo aver abilitato il plug-in, è possibile visualizzare e configurare i parametri correlati nella pagina Parametri del server nel portale di Azure.

Disabilitare il plug-in di convalida password

CALL az_uninstall_validate_password_plugin();

Questa stored procedure rimuove il plug-in.

Annotazioni

  • Per il server HA (High Availability), eseguire prima queste stored procedure sul server primario. Eseguire quindi un failover forzato ed eseguire nuovamente le procedure memorizzate sul nuovo nodo primario.
  • Per i server di replica, l'esecuzione di queste stored procedure nel database primario non viene sincronizzata automaticamente con le repliche. Eseguirli manualmente in ogni replica dopo averli eseguiti nel database primario.

3. Annulla pulizia log

In alcuni casi le dimensioni del log di annullamento potrebbero aumentare e potrebbe essere necessario pulirlo. Database di Azure per MySQL offre una procedura archiviata che consente di eseguire questa attività.

  1. Per controllare lo spazio della tabella, eseguire prima di tutto il comando seguente.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Se si rileva che il log di annullamento è di grandi dimensioni, eseguire il comando seguente per creare un nuovo spazio della tabella.
    call az_create_undo_tablespace(X)
    
    Attualmente sono supportati fino a otto spazi di tabella, inclusi due spazi predefiniti. Il valore X deve essere compreso tra 3 e 8. Al termine del comando, il nuovo tablespace deve trovarsi in uno stato attivo.
  3. Eseguire il comando seguente per disattivare il innodb_undo_001 (impostazione predefinita).
    call az_deactivate_undo_tablespace(1)
    
    Attendere quindi che lo stato di innodb_undo_001 sia vuoto (significa che il log di annullamento viene troncato).
    È possibile verificare il troncamento del log di annullamento selezionando Spazi tabella Verifica e controllo annullamento
  4. Eseguire il comando seguente per attivare il innodb_undo_001 (predefinito).
    call az_activate_undo_tablespace(1)
    
    Attendere quindi che lo stato di innodb_undo_001 sia attivo.
  5. Ripetere i passaggi da 1 a 4 per il innodb_undo_002.
  6. Eseguire call az_deactivate_undo_tablespace(3); per disattivare lo spazio della tabella appena creato. Attendere che lo stato venga visualizzato come vuoto. Eseguire quindi Call az_drop_undo_tablespace(3); per eliminare lo spazio della tabella appena creato. Non è possibile eliminare quelli predefiniti (innodb_undo_001, innodb_undo_002). È possibile eliminare solo quello creato, in questo esempio è x_undo_003.Prima di eliminare, disattivare prima di tutto x_undo_003 in uno stato vuoto.

Spazi tabella Verifica e controllo annullamento

Prima di svuotare un tablespace di annullamento, verificare che non ci siano transazioni attive.

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Se il risultato è 0, non sono presenti transazioni attive.
  • Lo spazio tabella di annullamento può essere svuotato solo quando questo conteggio è a zero.

Dopo aver verificato che le transazioni hanno raggiunto zero, controllare lo stato degli spazi tabella Annulla:

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

Eliminare una tabella problematica

Se si verifica un errore simile al seguente durante l'accesso a una tabella, potrebbe indicare un danneggiamento della tabella:

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

Per risolvere questo problema, è possibile usare la stored procedure predefinita:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

Dopo l'esecuzione della procedura, è consigliabile riavviare il server per assicurarsi che le modifiche siano effettive.

In alternativa, è possibile eseguire un ripristino temporizzato per ripristinare lo stato del server prima del verificarsi del problema.

Conclusione

Database di Azure per MySQL offre procedure memorizzate incorporate che semplificano i compiti avanzati di gestione del database. Queste procedure consentono di configurare la replica, gestire il log di annullamento e abilitare i plug-in in modo efficiente. Applicando questi strumenti, è possibile migliorare le prestazioni, ottimizzare l'archiviazione e garantire una sincronizzazione dei dati senza problemi.