MySQL: Zautomatyzowane przyrostowe kopie zapasowe tabel InnoDB - mysql, backup, innodb

Wiem, że pojawiły się podobne / podobne pytania na temat SO i gdzie indziej i przynajmniej myślę, że rozumiem różne opcje.

Mamy dużą liczbę MySQL (wydanie społecznościowe) dbz tabelami InnoDB. Chciałbym, aby kopie zapasowe bazy danych były wykonywane codziennie. Obecnie używam skryptu mysqldump uruchamianego przez cron.daily. Jednak zapisanie kopii zajmuje 3 godziny. Tak musi być przyrostowe.

Ponieważ jesteśmy wydawnictwem wspólnotowym i nie możemy sobie na to pozwolićEnterprise nie mamy hotcopy InnoDB, która byłaby realnym rozwiązaniem, ponieważ nie jest blokująca. Inną opcją jest włączenie rejestrowania binarnego i pobieranie aktualizacji przyrostowych. , znaczniki czasu nagrywania itp. Wydaje się, że rada jest tego unikana, jeśli to możliwe.

Ostatnią opcją jest skonfigurowanie replikacji w konfiguracji Master-Slave. Przeskanowałem dokumenty, ale nie jestem pewien, co stanowi „Mistrza” i co stanowi „Niewolnika”.

  • Czy slave jest oddzielnym procesem mysqld?
  • Czy niewolnik może działać na tej samej maszynie, co Mistrz?
  • Po skonfigurowaniu i uruchomieniu wymagana jest jakakolwiek interwencja lub czy Mistrz będzie wiernie przekazywał wszystkie aktualizacje?
  • Aby tworzyć kopie zapasowe bez wpływu na Master, prawdopodobnie mogę po prostu uruchomić mysqldump na slave'ie?
  • I wreszcie, czy jest to rozsądne rozwiązanie do utrzymania kopii zapasowej do kopiowania poza witrynę?

Dzięki Richard

Odpowiedzi:

2 dla odpowiedzi № 1

Czy slave jest oddzielnym procesem mysqld?

nie ma potrzeby używania oddzielnego demona mysql,
w Master włączasz dziennik binarny
w slave konfigurujesz przekaźnik-bin, a odpowiednie informacje na master
(widzieć http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html)

Czy niewolnik może działać na tej samej maszynie, co Mistrz?

Tak ale nie rób tego ,
ponieważ po awarii maszyny
zarówno twój pan, jak i niewolnik zniknęli
(DTP)

Po skonfigurowaniu i uruchomieniu wymagana jest jakakolwiek interwencja lub czy Mistrz będzie wiernie przekazywał wszystkie aktualizacje?

Mistrz będzie wiernie przekazywał wszystkie aktualizacje,
log główny zapisuje sqls do dziennika binarnego,
i slave powinien uzyskać dziennik binarny (jak wyjaśnił @Johan, pobiera z Master)

jednak,

  1. blokowanie tabeli może prowadzić do opóźnienia replikacji na urządzeniu podrzędnym
  2. kwerenda fail-write, która nie może zostać wykonana na urządzeniu podrzędnym

możesz traktować replikację tylko jako metodę, która pozwala WSZYSTKIM sqlom wykonywać się na master,
skopiuj do niewolnika,
i wykonaj ponownie w kolejności odbioru
(tak robi log binarny)

Aby tworzyć kopie zapasowe bez wpływu na Master, prawdopodobnie mogę po prostu uruchomić mysqldump na slave'ie?

Oczywiście jest to cel posiadania niewolnika
Jednak będzie trochę opóźnienia ...
kiedy wyrzucasz dane,
możesz zablokować tabelę do zapisu (zakładając, że innodb ma mniejszy wpływ),
podczas gdy mistrz mógł kontynuować pisanie

I wreszcie, czy jest to rozsądne rozwiązanie do utrzymania kopii zapasowej do kopiowania poza witrynę?

tak, jest to traktowane jako odzyskiwanie po awarii mysql


1 dla odpowiedzi nr 2

Czy slave jest oddzielnym procesem mysqld?

Może to być, ale częściej jest to oddzielny serwer MySQL zainstalowany na innym komputerze.

Czy niewolnik może działać na tej samej maszynie, co Mistrz?

Tak, jeśli musisz, po prostu przypisz mu inny numer portu i inny identyfikator_serwera.
Zauważ, że nie jest to zbyt duża kopia zapasowa, jeśli jest na tym samym komputerze.

Po skonfigurowaniu i uruchomieniu wymagana jest jakakolwiek interwencja lub czy Mistrz będzie wiernie przekazywał wszystkie aktualizacje?

Mistrz tego nie robi push cokolwiek, niewolnik pulls aktualizacje.

Aby tworzyć kopie zapasowe bez wpływu na Master, prawdopodobnie mogę po prostu uruchomić mysqldump na slave'ie?

Tak, ale jeśli master i slave działają na tej samej maszynie, uruchamiany jest mysqldunmp będzie spowolnić ten serwer.

I wreszcie, czy jest to rozsądne rozwiązanie do utrzymania kopii zapasowej do kopiowania poza witrynę?

Tak, poza witryną jest tutaj słowem kluczowym.
Umieściłbym niewolnika poza miejscem, co ma znacznie więcej sensu niż posiadanie niewolnika na tej samej maszynie.

Oto samouczek
http://www.howtoforge.com/mysql_master_master_replication


Menu