Skocz do zawartości
Zaloguj się, aby obserwować  
is_wm

Mysqldump - dziwna sprawa

Polecane posty

Od kilku dni mam spory problem z dumpem mysql wszystkich baz.

mysqldump --all-databases --force > /bac.sql

Wszystko jest dobrze, do czasu... zgrania wszystkich baz. Po tym dump zaczyna ponownie otwierać wszystkie bazy (od A do Z), tyle, że w zrzucie umieszcza tylko wpisy typu USE baza itd. Robi to spore problemy w działaniu serwera (chodzi głównie o to, że do tej pory dump trwał 1,5h, a teraz po 3h serwer zaczyna okropnie mulić). Wersja z bzip2 działa tak samo. O co tu może chodzić? Może trzeba dodać jakiś parametr do tego polecenia (próbowałem np. --skip-opt + --quick ale to powodowało dodatkowe problemy w postaci timeoutów)?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

Hmm ja bym na początek polecał robić kopie poszczególnych baz danych.

Sprawdź czy bazy są nie uszkodzone, zoptymalizuj je.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poszczególnych baz raczej nie zrobię, chyba potrzebny by był jakiś skrypt, żeby to w pętli zapuścić (baz jest ponad 3000). Choć to faktycznie nie byłby głupi pomysł, żeby zapuścić pętlę z folderów /var/lib/mysql - łatwiej byłoby przywracać ewentualnie pojedyncze bazy, choć trudniej już wszystkie...

 

Optymalizacje i naprawy były robione (mysqlcheck --optimize --all-databases itd).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Od kilku dni mam spory problem z dumpem mysql wszystkich baz.

mysqldump --all-databases --force > /bac.sql

 

Wywal force i daj --lock-tables, a jesli masz same innodb to --single-transaction.

Jak dalej nie gra to --log-error i sprawdz co mu nie pasi.

I przeczytaj manuala, np. co znaczy force.

 

I tak jak szepnął patrys lepiej bedzie po kolei bazy dumpowac:

 

path="/db"
for db in `mysql -Nse 'show databases'`
do
	 dump="${db}_`date '+%F'`.sql"
	 remove="${db}_`date --date '7 days ago' '+%F'`.sql.gz"
	 mysqldump -l $db > $path/$dump
	 gzip $path/$dump
	 if [ -f "$path/$remove" ]
	 then
			 rm -f -- "$path/$remove"
	 fi
done

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

--force używałem, bo gdy wywalał błędy przy jednej bazie to cały zrzut (dla --all-databases) się kończył na błędzie - z force robił do końca, mimo błędów.

 

Ale faktycznie, zrobiłem skrypt do zrzutów wszystkich baz i na razie śmiga bardzo ładnie :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×