1つのサーバーで3つのmasterDBとそれに対する3つのslaveDBを構築しようと思っています。
master | slave |
---|---|
master_log | slave_log |
master_app | slave_app |
master_user | slave_user |
登録、更新、削除はmasterで行い
参照はslaveで行おうと思います。
そこで問題になってくるのが、masterからslaveへ同期する際のタイムラグです。
master/slave構造は知識がなく昨日からちょいちょい調べてるレベルですが、同期のやり方はまだ方向性が決まっていません。
- cronでbashを動かしてmysqldumpするのか
- masterの各テーブルに対してslaveにミラーリングさせるトリガーを用意するのか
fuelphpでどんなプロジェクトにもほとんど対応できるような骨組みを作ってる最中なのですが
いづれにしても、「cronでbashを動かしてmysqldumpする」 でslaveを実現していたら、
masterにはあるはずのレコードがslaveにはないとなると、
「参照はslaveで行う」が不可能になるかというところでどうしたらいいか悩んでいます。
かといってcronを1秒単位で動かすのもサーバーの負荷にならないかも心配です。
じゃあ2番目の、「masterの各テーブルに対してslaveにミラーリングさせるトリガーを用意する」の場合も、前者よりはタイムラグはなさそうですが、果たしてこれが一般的なやり方なのか、「おれおれ要素」がないかどうかというところで悩んでいます。
トリガーは使ったことはないので簡単にできるかわからないですが、1つ1つのテーブルに対して設定するのは現実的ではない(面倒)のような気がします。
トリガーの設定はphpmyadminでしか見たことがないのですが、dumpを流して設定できるものなのでしょうか。
それであれば、多少楽のような気もします。
この2つのやり方に限らず、どういうやり方が望ましいのか教えていただけるとありがたいです。
PG脳寄りなので、論理的な話よりソースレベルで教えていただけるとありがたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。