2012-05-03 6 views
-1

Из того, что я смог найти в Интернете, mysql хранит операторы, которые изменяют данные в журнале bin, которые затем считываются ведомым. Что остается непонятным, что происходит с этими утверждениями дальше? Повторяются ли они, как если бы они были на ведомом сервере?Как работает репликация mysql?

Например, скажем, что есть запрос с текущим временем в условном выражении, например, «UPDATE something SET updatedat = NOW()», и из-за задержки репликации запрос заканчивается на подчиненном устройстве через пару секунд. Будут ли отличаться значения в таблице?

Или, если есть мастер-мастер репликации, во время 1000 следующий запрос происходит на сервере 1:

UPDATE t SET data = 'old', updatedat = 1000 WHERE updatedat < 1000 

Во время 1001 на сервере 2 следующий запрос происходит:

UPDATE t SET data = 'new', updatedat = 1001 WHERE updatedat < 1001 

Тогда сервер 2 выбирает журнал репликации с сервера 1, значение на сервере 2 будет «старым»? Если да, есть ли способ избежать этого?

ответ

2

Например, говорят, что есть запрос с текущим временем в условном, как «UPDATE то SET updatedat = NOW()», а также из-за задержки репликации, запрос заканчивается на ведомой пару секунд позже. Будут ли отличаться значения в таблице?

Количество Репликация дублирует строку, а это означает, что время будет таким же