linux user group brescia

immagine del castello

Archivio della mailing list

MySQL servicing

Luca Coianiz luca a coianiz.it
Sab 11 Feb 2006 15:01:55 UTC
On Fri, 10 Feb 2006, Giuditta! wrote:
>|  Durante uno dei miei "giri panoramici" per le directory di
>| sistema ho notato che /var/lib/mysql contiene una marea di
>| file home-bin.001 ... nnn che mi sembrano temporanei di MySQL.
>Contengono il log di tutte le query che modificano il database (insert,
>update, create..).
>Sono indispensabili per gestire dei DBMS slave di backup ed utili per
>risalire a query fatte se il log testuale è disabilitato.
>In ogni caso possono essere tranquillamente cancellati tranne l'ultimo che è
>in uso.

 Perfetto!.. esattamente l'info che mi serviva. Grazie. :)

>Io ogni mese li cancello tutti tranne l'ultimo e poi forzo la rotazione su
>un nuovo file, in questo modo:
>- libero spazio
>- tengo l'ultimo mese di queries
>- evito che si creino files enormi dato che il file "-bin" normalmente
>rimane sempre lo stesso fino a quando non viene riavviato il servizio.

 Giusto.

>Per fare tutto ciò senza riavviare il servizio (sui server in produzione,
>dall'"interno" come dici tu) eseguo ogni mese il seguente script:
>#prendo il numero del log corrente
>MASTER=`mysql --exec='SHOW MASTER STATUS\G' | grep 'File:' | awk '{ print $2
>}'`
>#cancello tutti i logs escluso il corrente
>mysql -u root --batch --exec="PURGE MASTER LOGS TO '$MASTER'"
>#cambio file di log
>mysqladmin flush-logs
>Funziona su 3.23< versione < 4.1 ma credo anche oltre.

 Per la rotazione dei log non ho problemi in quanto gestita da Logrotate.
 Solo che, per l'appunto, lui gestisce "i log" non i file bin-.
 Inizierò con il cancellare a mano i file più vecchi del primo, ma penso che
userò anche i tuoi ottimi consigli per uno script automatizzato via cron.

 Grazie ancora: utilissimo veramente.  :)

	LC





Maggiori informazioni sulla lista Lug