LoginSignup
8
9

More than 5 years have passed since last update.

[MariaDB10.0] マルチソースレプリケーション環境下のmy.cnf(server.cnf)の設定について

Posted at

マルチソースレプリケーションに関しては、以前、これはすごい!mariadb10.0 でマルチソースレプリケーションが可能ににて紹介いたしました。マルチソースレプリケーション環境下での、my.cnf (mariadbでは、server.cnf)のちょっと変わったケースでのレプリケーション設定について今回は触れて見ようと思います。

下図のようなケースの場合、server.cnf にはどのような設定を加えれば良いでしょうか?

multi_slave.jpg

要件

  • SERVERXは、SERVER1,SERVER2からのレプリケーションを受ける
  • SERVER1の中には、schema1というデータベースが存在し、数あるテーブルの中からtable1のみSERVERXにレプリケーションする
  • 上記SERVER1内の、schema1のtable1は、SERVERX内では、schemaXのtable1としてレプリケーションする
  • SERVER2の中には、schema2というデータベースが存在し、数あるテーブルの中からtable1のみSERVERXにレプリケーションする
  • 上記SERVER2内の、schema1のtable1は、SERVERX内では、schemaYのtable1としてレプリケーションする
  • 上記図の通り、各schema内に存在するtable1以外のテーブルはすべてレプリケーションしない

といった感じでしょうか?

実装方法

マルチソースレプリケーション設定方法は割愛いたします。(前に書いたからw)以下では上記のような構成を実現するために、どのように、server.cnf にレプリケーション設定を入れるかをメインに説明いたします

で早速なのですが・・

  • こんなかんじで、server.cnfに記載します
[mysqld]
・
・
# SERVERXのスキーマに合わせて、server1,server2のスキーマを、rewriteする
conn1.replicate-rewrite-db="schema1->schemaX"
conn2.replicate-rewrite-db="schema2->schemaY"

# 上記で名前を変更したスキーマをレプリケートする
conn1.replicate-do-db="schemaX"
conn2.replicate-do-db="schemaY"

# table1 限定でレプリケーションする
conn1.replicate-do-table=schemaX.table1
conn2.replicate-do-table=schemaY.table1

とこんな感じになると思います。
基本構文は、MySQL5.X系とか、Maria5.5系と同じです。マルチソースの環境では、コネクションの名前(ここでは、conn1,2)という接頭子をつけてね!という話でした。接頭子については、さきほどのページに説明しております

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9