Różnica między replikacją opartą na wierszach i instrukcjach w MySQL?

12

Jaka jest rzeczywista różnica między replikacją opartą na wierszach i na instrukcjach. Tak naprawdę patrzę pod kątem wpływu replikacji na niewolnika.

Jeśli korzystam z replikacji opartej na wierszach, jaki jest wpływ na slave, a jeśli korzystam z instrukcji, jaki jest ten efekt?

Weź również pod uwagę następujące parametry:

   replicate-ignore-db  and replicate-do-db 

Dzięki....!

Abdul Manaf
źródło

Odpowiedzi:

15

Replikacja oparta na instrukcjach (SBR) spowoduje replikację instrukcji SQL. Łatwiej jest czytać za pomocą programu zrzutu mysqlbinlog.

Replikacja oparta na wierszach (RBR) replikuje rzeczywiste zmiany danych. Dzienniki binarne i dzienniki przekazywania będą rosły znacznie szybciej niż SBR. Nie można również zidentyfikować kodu SQL, który wygenerował zmiany.
(Przeczytaj zaktualizowane informacje dla MySQL 5.6.2. Poniżej)

Oto bardziej wyczerpująca lista za i przeciw: http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm

MySQL zezwala na oba typy formatów instrukcji / wierszy w swoich dziennikach binarnych. Polecam na podstawie oświadczenia. Domyślny format dziennika binarnego to MIESZANY, co jest OK.

Ponieważ używasz replicate-ignore-dbi replicate-do-db, zaufałbym replikacji opartej na instrukcjach.


Aktualizacja dla MySQL 5.6.2:

Wprowadzona w MySQL 5.6.2 binlog_rows_query_log_eventszmienna systemowa powoduje, że serwer MySQL 5.6.2 lub nowszy zapisuje informacyjne dzienniki zdarzeń, takie jak zdarzenia dziennika zapytań wierszowych do swojego dziennika binarnego. Możemy więc zidentyfikować kod SQL, który wygenerował zmiany.

Odniesienie: 17.1.4.4 Opcje i zmienne dziennika binarnego

RolandoMySQLDBA
źródło
jaki jest domyślny tryb replikacji SBR lub RBR ... ??
Abdul Manaf,
1
SBR - Instrukcja
RolandoMySQLDBA,
4
Domyślnym trybem jest MIESZANIE od wersji 5.1.8, która wykorzystuje głównie replikację opartą na instrukcjach, ale automatycznie przełącza się na RBR, gdy wykonywane są zapytania niebezpieczne z SBR. dev.mysql.com/doc/refman/5.1/en/replication-formats.html
Aaron Brown
9

W MySQL 5.5 format oparty na instrukcjach jest domyślny. Ale lepiej jest użyć formatu mieszanego. Ponieważ w takim przypadku rejestrowanie na podstawie instrukcji jest używane domyślnie, ale automatycznie przełącza się na rejestrowanie w wierszach w przypadkach, w których jest to wymagane.

shantanuo
źródło