18
マママ n マママママ 1 ママママママママママママ do_aki 2/04/19 MySQL Casual Talks Vol.3

続マスタN対スレーブ1レプリケーションの作り方

  • Upload
    doaki

  • View
    10.508

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 続マスタN対スレーブ1レプリケーションの作り方

マスタ n 対スレーブ1

レプリケーションの作り方

do_aki2012/04/19 MySQL Casual Talks Vol.3

Page 2: 続マスタN対スレーブ1レプリケーションの作り方

| 所属 | > 株式会社もしも    (ドロップシッピング・アフィリエイト ASP )

| 仕事 | > インフラ(サーバ管理)兼  Web アプリケーション開発

| 出現 | > 渋谷・山手線沿線| 特性 | > PHPer

do_aki ( どぅーあき )

http://do-aki.net/

Page 3: 続マスタN対スレーブ1レプリケーションの作り方

前回までのあらすじ

Page 4: 続マスタN対スレーブ1レプリケーションの作り方

一般的なレプリケーション

Master

Slave:1 Slave:2 Slave:n……

1:n

Page 6: 続マスタN対スレーブ1レプリケーションの作り方

時間がない

Page 7: 続マスタN対スレーブ1レプリケーションの作り方

今回のまとめ

Page 8: 続マスタN対スレーブ1レプリケーションの作り方

半年間無停止無故障稼働中

現在はマスタ切り替えを、基本 2秒ごとに

数100qps程度ならば問題なく捌いている

Page 9: 続マスタN対スレーブ1レプリケーションの作り方

7 月に稼働開始

• 8 月に MySQL Casual Talks Vol.2 での発表

• 感想やアドバイスをいただいた

Page 10: 続マスタN対スレーブ1レプリケーションの作り方

SBR / RBR について

• クエリによっては、ステートメントベースレプリケーションだと NG なケースもある

• それぞれのマスタは、共通の DB スキーマ / テーブルを持っていないので問題なかった!

• 1 テーブルをシャーディングしているならば行ベースレプリケーションを使った方が良い

Page 11: 続マスタN対スレーブ1レプリケーションの作り方

それスパについて

それ Spider※ で

できるよ※Spider Storage Engine のこと

プライバシー保護のため一部修正しております

Page 12: 続マスタN対スレーブ1レプリケーションの作り方

ACCIDENT!

Page 13: 続マスタN対スレーブ1レプリケーションの作り方

11 月頭に停止

• 原因は、 max_allowed_packet の値がマスタに比べて小さすぎたこと

• マスタとスレーブの設定は基本的には合わせるべき ( 鍵本 p339)

Page 14: 続マスタN対スレーブ1レプリケーションの作り方

それ以降• 今に至るまで、障害は一切発生せず

• Perl スクリプト一本勝負• https://github.com/do-aki/SwitchMaster

• daemontools とか supervisor とかmonit とかなにそれおいしいの?

Page 15: 続マスタN対スレーブ1レプリケーションの作り方

運用する上での注意点• エラーログが膨れあがる(マスタ切り替

えの度に吐かれる)• 本当のエラーが埋もれる• 定期的なパージをする必要も

• マイナバージョンによって、 FLUSH LOGS の挙動が異なるので気をつけましょう。参考: MySQL のエラーログを削除する際の注意

点http://d.hatena.ne.jp/do_aki/20120221/1329820114

Page 16: 続マスタN対スレーブ1レプリケーションの作り方

半年間無停止無故障稼働中 今も

Page 17: 続マスタN対スレーブ1レプリケーションの作り方

ありがとうございました

Page 18: 続マスタN対スレーブ1レプリケーションの作り方

blank page