linux user group brescia

immagine del castello

Archivio della mailing list

MySQL servicing

Giuditta! giuditta a yoda.ing.unibs.it
Ven 10 Feb 2006 09:45:35 UTC
| -----Original Message-----
| From: owner-lug a lugbs.linux.it 
| [mailto:owner-lug a lugbs.linux.it] On Behalf Of Luca Coianiz
| Sent: Tuesday, February 07, 2006 8:18 PM
| To: lugbs
| Subject: MySQL servicing
| 
| 
|  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.
| 
|  Solo che, a differenza dei mysqld.log, questi non vengono 
| mai cancellati o "backuppati" (diciamo almeno gzippati) e ne 
| ho c.ca 400 per la modica cifra di 89 MB allocati. =8-O (in 
| genere è tutta robetta da pochi KB, ma ce n'è anche da 10 MB)
| 
|  Domande, prima di immergermi nella "grande rete" a cercar di 
| "pescare"
| qualche risposta, se qualcuno qui lo sa:
| 
|  1) sono veramente temporanei e li posso cancellare senza 
| problemi o scasso le storie a MySQL intervenendo "da fuori" 
| sui suoi file? (sicuramente NON sono DB/tabelle comunque). 
| Eventualmente: come faccio a dirgli "da dentro"
| di eliminarli?
| 
|  2) posso cancellarli così a freddo (rm *.nnn) oppure è 
| meglio chiudere MySQL prima di farlo?
| 
|  3) li si può cancellare tutti o è necessario tenere l'ultimo?

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.
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.
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.

|  Thanks in advance,
| 
| 	LC
Prego.
Ciao.
MB





Maggiori informazioni sulla lista Lug