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
|