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