人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLのレプリケーションで、マスターにだけ更新をかける方法。
もしくは、スレーブにだけ更新処理をさせるSQL文の書き方(オプション)などがありますでしょうか。

通常は、レプリケーションをしている状態で
メンテナンスや、管理上の都合で、マスターに対して更新処理をした場合に
スレーブに反映してほしくないSQLの書き方はあるでしょうか。

たとえば、テーブルを作成する場合に、マスターは、InnoDB型、スレーブは、MyISAMにしたい場合に
マスターでまずMyISAMでテーブルをつくり、スレーブに反映させ
マスターだけ、InnoDBに変更することをしたいのです。

今は、個別にスレーブに接続して、型を変えていますが
スレーブの数が多くなってきて作業が煩雑になっています。

●質問者: ぶしみち
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:innodb MyISAM MySQL SQL オプション
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● shintabo

# 実際やってはないのですが、こんなのはどうでしょうか?

# mysql

CREATE TABLE xxx ENGINE=MyISAM to MASTER

# shell

for s in `slave01 slave02 slave03`

do

ssh -f xxx@s 'echo "STOP SLAVE;SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;" | /usr/local/mysql/bin/mysql -uxxx -p'

done

# mysql

ALTER TABLE xxx ENGINE=InnoDB to MASTER

# shell

for s in `slave01 slave02 slave03`

do

ssh -f xxx@s 'echo "START SLAVE;" | /usr/local/mysql/bin/mysql -uxxx -p'

done

# ENGINE変える=すべて止まってる状態

# なんてのを勝手に想像していますが・・・

◎質問者からの返答

すいません。説明不足でした。

稼動中の Master Slave 構成に対して、新たにテーブルを追加するような場合を想定しているため

レプリケーションを止めるということはできません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ