1

私は2台の物理サーバーを持っています。次のコマンドを使用して、いくつかのデータベースをserver1からserver2にコピーしました。

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

server2のmy.cnfには次のものが含まれます。

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

server1のmy.cnfには次のものが含まれます。

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

次に、両方のサーバーで変更マスターを発行して、相互にポイントします。SHOW SLAVE STATUSには、server2のRead_Master_Log_Posがすでに含まれていますが、この操作中にデータの変更は行われていません。

次に、両方のサーバーでスレーブを開始しました。SHOW SLAVE STATUSは、server1とserver2の両方で適切に表示されます。

問題:server1またはserver2でデータが変更されると、データはサーバーのbinlogおよび他のサーバーのmysqld-relay-binログに表示されますが、スレーブデータベースには表示されません。Read_Master_Log_Posは変更されますが、スレーブデータベースのデータは変更されません。なぜですか?

4

1 に答える 1

1

答えは次のとおりです。これは、実際には、replicate_do_dbbetwinデータベース名のコマが原因です。解決策は、複製するデータベースごとにmy.cnfにreplicate_do_dbステートメントを作成することでした。

于 2011-01-20T23:14:18.687 に答える