Skocz do zawartości
Zaloguj się, aby obserwować  
Jarosław Szmańda

Rsync - pytanie

Polecane posty

Cześć,

 

Właśnie tak myślę na wykonywaniem kopii bezpieczeństwa serwera.

Czytam tematy i wszyscy polecacie program rsync.

 

Mam VPSa.

 

Czy ten program umożliwia wykonywanie kopii przyrostowej w taki sposób że po zainicjowaniu połączenia z serwerem sprawdzi co się zmieniło w katalogu i ewe. pobierze tylko nowe / zmienione pliki?

 

Chodzi mi o to aby uruchamiać tern skrypt na komputerze domowym. Tutaj i tutaj mam Debiana: Etch / Sid.

 

Dodatkowo czy rsync wykona takze kopię bazy mysql czy jedynie katalogów?

 

Pzdr!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Czy ten program umożliwia wykonywanie kopii przyrostowej w taki sposób że po zainicjowaniu połączenia z serwerem sprawdzi co się zmieniło w katalogu i ewe. pobierze tylko nowe / zmienione pliki?

Taka jest właśnie idea rsync :)

Dodatkowo czy rsync wykona takze kopię bazy mysql czy jedynie katalogów?

Wykona.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skopiuje binarki. To imho stabilniejsze rozwiazanie niz dump - mialem kilka sytuacji, gdzie dump sie po prostu nie wykonal (zrzut mial bledy na poczatku) a rsync skopiuje zawsze (a jak nie, to dostaniesz error'a np. w cronie na maila) :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No dobra ale jak to potem z wczytaniem tego? W razie chciał bym przywrócić dane z tej kopii, tylko wgrać do katalogu?

 

Strony trzymam w /var/www, mysql to skąd skopiować?

/usr/bin/mysql

/usr/share/mysql/

?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kopiujesz z /var/lib/mysql

 

W razie przywracania, kopiujesz w drugą stronę pliki i robisz restart mysqla (ewentualnie flush tables) :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Kopiujesz z /var/lib/mysql

 

W razie przywracania, kopiujesz w drugą stronę pliki i robisz restart mysqla (ewentualnie flush tables) :)

 

Az tak bardzo kolegi nie lubisz, ze doradzasz takie rzeczy ?

 

Polecam wpierw zrobic dump bazy przed wykonaniem rsync'a plikow.

 

g.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

He? Może rozwiniesz myśl gb? Nie dalej jak kilka dni temu przywracałem w ten sposób bazę i żadnych problemów nie miałem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
He? Może rozwiniesz myśl gb? Nie dalej jak kilka dni temu przywracałem w ten sposób bazę i żadnych problemów nie miałem.

To ze sie udalo nie znaczy ze to poprawny sposob backupu. Mysql "stara sie" by w razie np. twardego resetu nie stracic zpisanych juz na dysku danych, ale to nie to samo co kopiowanie plików.

 

w szczegolnosci bazy innodb sie w taki sposob dobrze "backupuja"

 

gdyby tego rsynca robic ze snapshota to jeszcze, ale na zywca ?

 

oczywiscie innodb tez prawdopodobnie sie pozbiera po takiej kopii,

choc roznica w aktualnosci plikow logow i samych danych przy odtwarzaniu moze skutecznie rozwalic tabele,

przy lockowaniu wszystkich tabel i robieniu lvm snapshota nie jest w 100% jasne czy wystarczy skopiowac same pliki by miec pewny backup. Robienie tego na zywca jest juz proszeniem sie o kłopoty.

 

Co do myisam to jest mysqlhotcopy ktory bezpiecznie zrobi nam binarne kopie baz (jesli boimy sie ze serwer nie wytrzyma klasycznego backupu, albo obawiamy sie jaj z przekodowaniem niepoprawnie zaimportowanych baz)

 

 

--

http://lazy.digart.pl/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ah, to sorry, nie zrozumiałem. Ja przywracałem bazę przez cp (po przypadkowym usunięciu bazy), ale chyba tak samo działałby rsync, gdyby plik nie istniał?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kopia RAW danych, jeśli już zadziała, to raczej tylko na tej samej wersji daemona MySQLd.

Ale nie polecam - gdyż próba takiej kopii bazy InnoDB może spowodować zepsucie integralności, indeksów, relacji itp... co w konsekwencji może prowadzić do tego, że tabele będziesz widział, ale nie będziesz mógł nic z nimi zrobić (nawet... skasować - z poziomu narzędzi bazy ofc.).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Kopia RAW danych, jeśli już zadziała, to raczej tylko na tej samej wersji daemona MySQLd.

 

nieprawda, pliki MySQL sa kompatybilne w górę, a nawet w dół tez w pewnym stopniu

 

 

--

lazy.digart.pl

Udostępnij ten post


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

Można skopiować to /var/lib/mysql/*, ale serwer mysql musi być wyłączony, a to raczej mija się z celem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No dobrze, w takim razie powstaje pytanie: czy nie opłaca się robienie rsync CAŁEGO dysku? I w razie awarii użyć tych wszystkich danych? Piszę to pod kątem mysql właśnie, bo jest pytanie - czy po przywróceniu danych może się okazać, że bazy nie działają?

 

Nie ukrywam, że niektóre wasze wypowiedzi zmieniły mój "światopogląd", choć trochę się dziwie (ale znowu nie podważam), bo już kilka razy przywracałem tak bazę i nie miałem problemów...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

no to chciałbym zapytać czy jest jakiś sposób na robienie kopii "przyrostowej" baz danych ? ( bez wyłączania serwera oczywiście )

czy nie ma wyjścia i trzeba robic dump ? ( bo po prostu tak średnio mi się uśmiecha przesyłanie codziennie takiego pliku )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrick
No dobrze, w takim razie powstaje pytanie: czy nie opłaca się robienie rsync CAŁEGO dysku?

takie coś, można robić ale na od montowanym systemie plików.

 

no to chciałbym zapytać czy jest jakiś sposób na robienie kopii "przyrostowej" baz danych ?

nie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
takie coś, można robić ale na od montowanym systemie plików.

że co ?

rsync na odmontowanym systemie plików ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

lazy, chodzi chyba o osobny dysk...?

 

A odnośnie drugiego sposobu, można użyć:

mysqldump --all-databases -p | bzip2 -c > bazy.sql.bz2

 

Tylko czy można jakoś pobrać hasło z my.ini żeby móc uruchamiać to cudo w cronie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Moje pytanie brzmiało trochę inaczej ;P

 

Mam w my.ini

user="root"
pass="haselko"

Probowalem zrobic cos na zasadzie:

 

AUTHFILE="/root/my.ini"
mysqldump --all-databases -p $AUTHFILE | bzip2 -c > databasebackup.sql.bz2

ale nie wychodzi :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrick
że co ?

rsync na odmontowanym systemie plików ?

 

pfuu pomyliło mi się z snapshotem dysku.

 

 

 

 

~/.my.cnf

 

[client]
user=root
password=haselko

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
#!/bin/bash

 

#mysql

USER=`cat /root/my.ini | grep user= | awk '{ print $2 }'`

PASS=`cat /root/my.ini | grep pass= | awk '{ print $2 }'`

 

mysqldump -u $USER --all-databases -p$PASS | bzip2 -c > databasebackup.sql.bz2

 

Ale nie za bardzo się znam na awk... :D

 

Kiedy kiedys zrobiłem:

LOAD=`uptime | awk -F'average: ' '{ print $2}'`
SYSTEM=`more /proc/version | cut -d"#" -f1`

więc może to ci podpowie rozwiązanie :]

Udostępnij ten post


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

Po prostu wywalasz opcje autoryzacji, bo client i tak Cię połączy według danych ~/.my.cnf.

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ć  

×