Jak (ponownie) zsynchronizować MySQL Slave z Masterem
Jeżeli z jakiegokolwiek (przypadkowy UPDATE/INSERT, test query na slave przed wrzuceniem na mastera, “karmienie” nowego slave’a) powodu slave Ci się rozjechał:
Na Masterze (Debian, w innych pewnie będziesz musiał zamiast --defaults-file
podać --user=user_name --password=password
)
mysqldump --defaults-file=/etc/mysql/debian.cnf -A --master-data >dump.sql scp dump.sql gdzies:/dump.sql
Na slave: (znowu, w zależności od konfiguracji będziesz musiał klepnąć passworda)
# mysql --defaults-file=/etc/mysql/debian.cnf -e "STOP SLAVE; source dump.sql; START SLAVE"
Uprzedzając:
- Tak, można też skopiować wszystkie pliki z danymi “na chama”
- Tak, najlepiej mieć slave w trybie read-only, ale jak ktoś ma superusera w bazie to i tak może robić zmiany więc nie chroni to całkowicie przed psuciem.
Warto też spojrzeć na http://www.maatkit.org/doc/mk-table-sync.html (jest w Debianie jako paczka maatkit
) dla trochę “mądrzejszego” synca