web-dev-qa-db-ja.com

でreplicate-do-dbオプションを指定してpt-table-checksumを実行する

Perconaページのドキュメントを読みましたが、特に--replicateオプションについては少し混乱しています。

私の設定では、スレーブはマスターから特定のデータベース、たとえばdb1db2のみを複製しています。したがって、スレーブホストのmy.cnfファイルに次の行があります。

replicate-do-db=db1
replicate-do-db=db2

したがって、ツールを使用するときは、オプションとして--databases=db1, db2を渡す必要があることはわかっていますが、結果のチェックサムテーブルをこれらのデータベースの1つに--replicate=db1.checksum?デフォルトでは、perconaというデータベースを作成し、percona.checksumに書き込みますが、すべてのデータベースを複製しているわけではないので、そのようなデータベースも作成して書き込みますか?スレーブ上のデータベース?

そして、ツールを使用した後、チェックサムテーブルをマスターにドロップしてログに記録してスレーブに送信する前に、USE db1を実行する必要がありますか?

これは簡単にテストできることは知っていますが、レプリケーションの失敗を引き起こすことについて言及しているドキュメントを読んだとき、私は怖かったです。私はどういうわけか私のローカルMySQLを台無しにし、この2つのサーバーにしかアクセスできませんでした。あなたの助けに感謝。

1
x7qiu

しかし、結果のチェックサムテーブルを--replicate = db1.checksumを使用してこれらのデータベースの1つに書き込む必要がありますか?

はい、必要です。そうしないと、複製されません。

また、ツールを使用した後、チェックサムテーブルをマスターにドロップする前にUSE db1を実行して、これをログに記録してスレーブに送信する必要がありますか?

はい。

2
Sveta Smirnova

Svetaの回答に追加するには、フラグ--no-check-replication-filtersを設定して、ツールがそれらについて文句を言わないようにする必要もあります。

https://www.percona.com/doc/percona-toolkit/2.2/pt-table-checksum.html#cmdoption-pt-table-checksum-- [no] check-replication-filters

1
Random42