2008年05月13日

[MySQL] 特定データベース、特定テーブルを指定したレプリケーション設定

このエントリーをはてなブックマークに追加

特定情報に特化したスレーブ


理由は色々あるだろう。
  • 全テーブルをレプリケーション対象にしたくない
  • 全テーブルだとI/O負荷が高いので、過負荷テーブル別にスレーブを分散したい

slave側のmy.cnf変更


[mysqld]セクションに設定追加。
テーブルが複数ある場合は、テーブル数分の設定が必要。
slave$ sudo vi /etc/my.cnf

[mysqld]
replicate-do-table=dbname.table0
replicate-do-table=dbname.table1
replicate-do-table=dbname.table2
....
設定反映
slave$ sudo /etc/init.d/mysql restart



検証


slaveでtable0の存在を確認できれば成功
  1. masterにtable0が無い事を確認
  2. slaveにtable0が無い事を確認
  3. masterでtable0を作る
  4. slaveでtable0が作成されている事を確認
slaveでignore0が存在しない事を確認出来れば成功。
  1. masterにignore0が無い事を確認
  2. slaveにignore0が無い事を確認
  3. masterでignore0を作る
  4. slaveでignore0が作成されてない事を確認
念のためtable1とignore1も検証。
複数テーブルを指定しても意図した動作になった。



半袖 at 16:55│Comments(1)TrackBack(1)hacks/DB/MySQL 

トラックバックURL

この記事へのトラックバック

1. バージョン違いMySQLの同居  [ ♪8th Note♪ ]   2009年08月04日 02:15
 同じバージョンのMySQLを2台同じサーバーに入れたりというのは開発環境でやっ...

この記事へのコメント

1. Posted by katsuji   2008年05月13日 19:27
このエントリみて、
リファレンスマニュアルのURLどこだ!!

とおもった。

ここだった。
http://dev.mysql.com/doc/refman/5.1/ja/replication-rules.html

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔