マスタ:。たとえば,データ分析時の負荷を分散するために、異なる売上データを異なる部門に分散したい場合です。このレイアウトの例を図17.2”データベースを別個のレプリケーションスレーブに複製するためにレプリケーションを使用する”に示します。
この分散は,マスタ,とスレ,ブを通常どおり構成してから,各スレ,ブ上で——replicate-wild-do-table
構成オプションを使用して各スレーブが処理するバイナリログステートメントを制限することで,実現できます。
ステ,トメントベ,スレプリケ,ションを使用するときに,この目的のために——replicate-do-db
を使用してはいけません。ステートメントベースレプリケーションでは,このオプションの効果が,現在選択されているデータベースによって異なるためです。このことは,混合形式のレプリケ,ションにも当てはまります。一部の更新をステ,トメントベ,ス形式を使用して複製できるためです。
しかし,行ベ,スレプリケ,ションだけを使用している場合には,この目的のために——replicate-do-db
を使用しても安全なはずです。この場合には,現在選択されているデ,タベ,スがオプションの動作に影響しないためです。
たとえば,図17.2”データベースを別個のレプリケーションスレーブに複製するためにレプリケーションを使用する”に示すような分散をサポ,トするには,开始的奴隶
を実行する前に,各レプリケ,ションスレ,ブを次のように構成してください。
レプリケ,ションスレ,ブ1は
——replicate-wild-do-table = databaseA. %
を使用するべきです。レプリケ,ションスレ,ブ2は
——replicate-wild-do-table = databaseB. %
を使用するべきです。レプリケションスレブ3は
——replicate-wild-do-table = databaseC. %
を使用するべきです。
この構成の各スレーブはマスターからバイナリログ全体を受け取りますが,そのバイナリログから,そのスレーブで有効な——replicate-wild-do-table
オプションによって含まれるデタベスとテブルに適用されるベントだけを実行します。
レプリケーションが開始する前にスレーブに同期する必要があるデータがある場合,いくつかの選択肢があります。
すべてのデータを各スレーブに同期し,保持したくないデータベースまたはテーブル,あるいはその両方を削除します。
, mysqldumpを使用してデータベースごとに別々のダンプファイルを作成し,各スレーブに該当するダンプファイルをロードします。
ロデタファルダンプを使用して,各スレブに必要な固有のファルとデタベスのみを含めます。
注記これは,
innodb_file_per_table
を使用しないかぎり,InnoDB
デ,タベ,スでは機能しません。