単一のマスタで異なるデータベースを異なるスレーブに複製する場合には、たとえば、異なる販売データを別の部署へ配布すときにはデータ分析の負荷を低減することになります。このレイアウトは 図 5.7. 「別々の DB を複数のホストに複製するレプリケーション概略図」 を参照してください。
マスタとスレーブを普通に構成し、セパーレションを行い、replicate-wild-do-table
コンフィギュレーションをそれぞれのスレーブに使用して、それぞれのスレーブが処理するバイナリ
ログ ステートメントを制限します。
たとえば、図 5.7. 「別々の DB
を複数のホストに複製するレプリケーション概略図」
で示すようにセぱレーションをサポートするには、START
SLAVE
を使用して複製を可能にする前に、次のようにそれぞれのスレーブを構成します。
MySQL Slave 1 には、次のコンフィギュレーション オプションが必要。
replicate-wild-do-table=sales.% replicate-wild-do-table=finance.%
MySQL Slave 2 には、次のコンフィギュレーション オプションが必要。
replicate-wild-do-table=support.%
MySQL Slave 3 には、次のコンフィギュレーション オプションが必要。
replicate-wild-do-table=service.%
レプリケーションを開始する前にスレーブ’と同期しなければならないデータがある場合は、いくつかのオプションがあります。
それぞれのスレーブとすべてのデータを同期化し、不要なデータベースまたはテーブル、あるいはその両方を削除する。
それぞれのデータベース用に別々のダンプ
ファイルを作成するために、mysqldump
を使用し、それぞれのスレーブに適切なダンプ
ファイルをロードする。
生データ ファイル
ダンプを使用し、それぞれのスレーブで必要とする指定ファイルとデータベースを入れる。これは、innodb_file_per_table
オプションを使用すると、InnoDB
でも機能します。
このコンフィギュレーションのスレーブは、マスタからのバイナリ ログ全体へ転送しますが、構成したデータベースとテーブルに適用する範囲のバイナリ ログのイベントだけを実行します。