master代理を作っておけばいいんぢゃないの?
mysqlで 1:Nの master - slave レプリケーションを作った場合に、誰をmasterに昇格させてよいか、わからなくなる問題について。
ふと思いついたんだけど、 master代理のslaveサーバを作っておけばいいんぢゃないかと思った。
問題は、どれが一番進んだ slaveなのかよくわからないということ。
だったら、意図的に進ませた slave (master代理)を作ればいいぢゃんと思った。
master は master代理にレプリケーションする。
master代理は、slaveにレプリケーションする。
つまり、一番進んだ slave は、 master代理になる。
よって、 master が死んだら、 master代理が master となる。
もし、master代理が死んだ場合は、 master が slave にレプリケーションするようにする。
フェイルバックな切り戻し。
基本的にメンテナンス時間を作っての切り戻し。
・master が死んだ場合 →master代理はmasterになったので、新サーバはmaster代理(master代理の新任)として作る。 1.master代理の新任をセットアップ。 ↓ 2.システムを停止して sorry を出す。 ↓ 3.master代理(現master)のデータを複製 ↓ 4.VIP Slaveの委譲 ↓ 5.master代理(現master)はmaster代理の新任とレプリ。 ↓ 6.salve は master代理の新任とレプリ ↓ 7.元通り!!
・master代理 が死んだ場合 →新サーバはmaster代理(master代理の新任)として作る。 1.master代理の新任をセットアップ。 ↓ 2.システムを停止して sorry を出す。 ↓ 3.masterのデータを複製 ↓ 4.VIP Slaveの委譲 ↓ 5.masterはmaster代理の新任とレプリ。 ↓ 6.salve は master代理の新任とレプリ ↓ 7.元通り!!