MySQL репликация мастер-подчиненный-мастер-ведомый - PullRequest
1 голос
/ 21 января 2011

У меня есть два физических сервера.Я скопировал некоторые базы данных с сервера1 на сервер2, используя команду:

server1$ mysqldump -u root -q -p --delete-master-logs --flush-logs --extended-insert --master-data=1 --single-transaction --databases db1 db2 db3 db4>to_server2.sql

, а затем импортировал их как обычно

server2$ mysql -u root -p <to_server2.sql

my.cnf на сервере server2 включает:

server-id               = 2
log_bin
binlog_format           = mixed
replicate_do_db         = db1,db2
transaction-isolation=READ-COMMITTED

my.cnf на server1 включает в себя:

server-id               = 1
log_bin
binlog_format           = mixed
replicate_do_db         = db3,db4
transaction-isolation=READ-COMMITTED

, затем я запускаю мастер изменений на обоих серверах, чтобы они указывали друг на друга;SHOW SLAVE STATUS уже включает Read_Master_Log_Pos на server2, но в любом случае во время этой операции не было внесено никаких изменений данных.

Затем запустили slave на обоих серверах.ПОКАЗАТЬ РАБОЧИЙ СТАТУС выглядит хорошо как на сервере1, так и на сервере 2.

Проблема: при изменении данных на любом сервере1 или сервере2 данные появляются в журнале событий сервера и в журналах журнала mysqld-relay-bin другого сервера, НО не отображаются в подчиненномбаза данных.Read_Master_Log_Pos изменяет, но не данные в ведомой базе данных.Есть идеи почему?

1 Ответ

1 голос
/ 21 января 2011

Ответ таков: это действительно из-за комы в именах баз данных replicate_do_db betwin. Решением было сделать заявление replicate_do_db в my.cnf для каждой реплицируемой базы данных

...