W crontabie ustawiony jest co godzinę skrypt tworzący backup bazy przy pomocy mysqldump. Skrypt działa doskonale, wykonał backup już kilkaset razy bez żadnych problemów. W tym okresie dokładnie DWA razy system zwisł: nie można było wejść na postawioną tam stronę www, ani połączyć się poprzez ssh. Na pingi odpowiadał. Serwer dedykowany.
Pomógł dopiero zdalny twardy reset. Po restarcie okazało się, że wszystkie logi systemowe są ucięte na godzinie zaplanowanego backupu. W jednym z przypadków backupu bazy z tej godziny w ogóle nie było. W drugim urywał się w połowie (nie było to spowodowane resetem, normalnie powinien zdążyć zrzucić całość). Na drugiej, prawie identycznej maszynie ten sam backup wykonuje sie bez żadnych problemów.
Co może być przyczyną takiego dziwnego zachowania?
Problem z mysqldump (?)
Nie ma w nim nic nadzwyczajnego:
z etc/mysql/my.cnf
Baza ma tabele MyISAM. Jeśli chodzi o locki to wydawało mi się, że defaultowo mysqldump uruchamia się z opcją --opt, która zawiera w sobie między innymi --lock-tables. Serwer MySQL w wersji 5.0.32-7etch1.
Kod: Zaznacz cały
#!/bin/sh
DIR=/home/serwer/backup
DZIEN=`date +%Y-%m-%d`
NAME=`date +%Y-%m-%d-%H-%M`
cd $DIR
if [ -d $DZIEN ]; then
cd $DZIEN;
else
mkdir $DZIEN && cd $DZIEN;
fi
/usr/bin/mysqldump -u root -phaslo baza > BACKUP_$NAME
nice -n 18 bzip2 BACKUP_$NAME
Kod: Zaznacz cały
[mysqldump]
quick
quote-names
max_allowed_packet = 16 M
Ja bym sobie darowal tego nice.. Moze proces robi sie przesadnie "mily", idize strasznie wolno + lock'uje tabele, czyli nic nie ma do nich dostepu w zwiazku z czym serwer wyglada jak martwy?
Mam praktycznie identyczny swoj skrypt, nie ma tylko `nice` i dziala bez problemu od ponad roku, nigdy nic sie nie zwalilo.
I druga opcja.. jest mozliwe ze backup robi sie ponad godzine? W sensie ze jeden sie jeszcze nie skonczyl a drugi sie zaczyna? Wtedy moga sie dziac dziwne rzeczy..
Pozatym, jak robisz backupy co godzine, to nie lepiej postawic drugi serwer Mysql tak zeby sie backupowaly przez binloga czy nie o to chodzi?
Mam praktycznie identyczny swoj skrypt, nie ma tylko `nice` i dziala bez problemu od ponad roku, nigdy nic sie nie zwalilo.
I druga opcja.. jest mozliwe ze backup robi sie ponad godzine? W sensie ze jeden sie jeszcze nie skonczyl a drugi sie zaczyna? Wtedy moga sie dziac dziwne rzeczy..
Pozatym, jak robisz backupy co godzine, to nie lepiej postawic drugi serwer Mysql tak zeby sie backupowaly przez binloga czy nie o to chodzi?
Popatrz jeszcze raz na skrypt: jak bzip2 kompresujący zrzut bazy (plik) może lockować tabele?
Sam zrzut trwa do pliku trwa mniej niż minutę i to w czasie tego zrzutu pojawiały się problemy, a nie w czasie kompresji.
Prosiłbym o jakąś wskazówkę kogoś, kto miał taki lub podobny problem. Na innej maszynie ten skrypt również działał od roku, więc śmiem twierdzić, że przyczyna leży gdzieś indziej.
Sam zrzut trwa do pliku trwa mniej niż minutę i to w czasie tego zrzutu pojawiały się problemy, a nie w czasie kompresji.
Prosiłbym o jakąś wskazówkę kogoś, kto miał taki lub podobny problem. Na innej maszynie ten skrypt również działał od roku, więc śmiem twierdzić, że przyczyna leży gdzieś indziej.