abilita il registro delle query per singolo database


8

Sto avendo molti schemi di database nel server mysql 5.6, ora il problema qui è che voglio catturare le query per un solo schema.

Non riesco ad abilitare il registro delle query per l'intero server poiché uno dei miei schemi è altamente caricato e avrà un impatto sul server.

È il loro modo, qualsiasi strumento attraverso il quale ho potuto registrare le query solo per singolo schema.

Ho trovato un grafico di benchmarking che mostra l'impatto sulle transazioni / secondo quando il registro delle query è abilitato.

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


È possibile utilizzare invece il registro delle query lente? E quindi analizzare quel registro con pt-query-digest? Altrimenti puoi provare l'output di tcpdump analizzato da pt-query-digest
jerichorivera,

Risposte:


1

Domanda interessante e un +1. Mi interessava questo perché vedo diversi casi d'uso per questa funzionalità.

Sfortunatamente, per il tuo caso in cui non è possibile attivare la registrazione generale, esiste solo una soluzione piuttosto inadeguata.

Vale a dire utilizzare la variabile SQL_LOG_OFF per disabilitare la registrazione per una determinata connessione. Una soluzione ideale sarebbe stata quella di avere una variabile "SQL_LOG_ON" come si può fare in Oracle (equivalente) - forse potresti provare a disattivare la disconnessione per tutti tranne le connessioni di interesse?

Inoltre, e purtroppo, questo richiede il SUPERprivilegio. Ancora una volta, questo potrebbe non (anche probabilmente non) essere possibile nel tuo caso.

A seconda della gravità del problema, delle ore lavorative e del carico del server in determinati momenti, potresti essere in grado di trovare un uso per il digest-query-pt di Percona che può aiutare con l'analisi dei log. Piccolo comfort, ma PostgreSQL è come sempre all'avanguardia rispetto a MySQL ( 1 , 2 ).

Se ti interessa presentare una richiesta di funzionalità, sarei felice di dare seguito a un "me-too" se pubblichi il link qui.


1

Se sei così vicino al problema che non riesci ad attivare il registro generale su FILE, hai problemi peggiori; hanno bisogno di essere riparati.

Sospetto, senza alcuna reale conoscenza, che lo slowlog avrebbe un impatto simile, soprattutto con long_query_time = 0.

5.7 ha una funzione di "riscrittura delle query". Qualche trucco potrebbe essere usato lì. (Ma, ancora una volta, c'è qualche sovraccarico, che dovrebbe essere confrontato.)

Quanto tempo vuoi intercettare le domande? Stai solo cercando la fonte di un'azione cattiva? O stai cercando di raccogliere query per creare un benchmark realistico per quella tabella? O qualcos'altro?

La replica è attivata? Sei interessato a leggere? O scrive? O entrambi?

Quanti thread sono attivi contemporaneamente? Il benchmark che hai indicato indicava che per 1 il log ha un sovraccarico basso. È il blocco delle tabelle su MyISAM o CSV che sta uccidendo l'elaborazione per l'elevata concorrenza.

Il tuo secondo grafico sottolinea che i client dovrebbero davvero essere limitati a circa 5-8 connessioni simultanee, altrimenti il ​​throughput diminuisce effettivamente! Cosa erano max_connectionse Max_used_connectionsper quel grafico?


Ciao, voglio catturare le query per circa 2 giorni e questi grafici non sono correlati al mio benchmarking ... Li ho incollati solo a scopo di conoscenza. L'app per cui voglio le query è un consumatore a basso consumo di risorse. Tcpdump non fornirà le statistiche di temporizzazione.
Suyash Jain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.