mysql gtid_executed e gtid_furged variables
Domanda
Vorrei sapere dove vengono memorizzate le variabili gtid_executed
e gtid_purged
nel motore del database.Se queste sono solo variabili di runtime, quanto sono esattamente inizializzati?
Soluzione
Non fanno parte di un particolare motore di archiviazione. Le variabili GTID possono essere visualizzate in esecuzione:
SHOW GLOBAL VARIABLES LIKE 'gtid%';
.
o
SELECT * FROM information_schema.global_variables
WHERE variable_name LIKE 'gtid%';
.
Quando si esegue RESET MASTER
sul server DB, questi valori sono oscurati.
Documentazione mysql dice di gtid_executed < / P >.
.Emissione di reset master Fa sì che il valore globale (ma non il valore della sessione) di questa variabile venga ripristinata a una stringa vuota. I GTID non sono altrimenti rimossi da questo set diverso da quando il set viene cancellato a causa del reset master. Il set viene cancellato anche se il server è spento e tutti i registri binari vengono rimossi.
Documentazione mysql dice di gtid_purged < / P >.
.Emissione di reset master Cause il valore di questa variabile da ripristinare a una stringa vuota.
Quando vengono eseguite le istruzioni SQL,
Documentazione mysql dice di gtid_executed < / P >.
.Quando il server si avvia, @@ global.gtid_executed è inizializzato per l'unione dei seguenti due set:
.
I GTID elencati nella precedente_GTIDS_LOG_Event del nuovo registro binario
i gtids trovati in ogni gtid_log_event nel nuovo registro binario.
Successivamente, i GTID vengono aggiunti alla serie come transazioni vengono eseguite.
gtid_purged può essere impostato solo quando è vuoto. Di solito, si imposta questo set di variabili durante il ricarica di un mysqldump la cui fonte ha abilitato GTID.
Altri suggerimenti
- .
- È necessario iniziare qui: Una visita guidata del codice sorgente MySQL
- Quindi è possibile cercare il codice sorgente MySQL su github per
gtid_executed
egtid_purged
Probabilmente avrai bisogno di fare un po 'di scavo, ma è così lontano che volevo andare, buona fortuna.