mysql master-master setup as a way to simply master-slave promotion

Posted by Chris Go on Server Fault See other posts from Server Fault or by Chris Go
Published on 2013-06-28T01:30:45Z Indexed on 2013/06/28 4:22 UTC
Read the original article Hit count: 596

Filed under:
|
|

I'm trying to see if the following plan is viable. Goal here is to be able to do HA (uptime) and not necessarily for load -- writes are fine on one MySQL 5.5 server (with innodb) but not really possible when the database is down.

Currently, I have a master-slave replication setup which works fine except it doesn't have automatic promotion (obviously). what I am planning on doing is setup master-master replication to possibly do this "automatic promotion" using Amazon Route 53 DNS Failover (Health checks). What I am trying to avoid is to NOT have to do the auto-increment trick because the "business folks" got used to the auto-incrementing PK as consecutive numbers (yeah, I know this is bad but data is from 2004).

So, setup the master-master replication WITHOUT the auto-increment collision prevention bit. The primary master is db1.domain.com and secondary master is db2.domain.com

In Amazon Route 53, setup DNS Failover record for db.domain.com -> primary failover is db1.domain.com -> with a TCP healthcheck on IP address port 3306 -> secondary failover is db2.domain.com -> with a TCP healthcheck on IP address port 3306

Most of the time (99%), unless tcp://db1.domain.com:3306 is dead, db1.domain.com will be served up on DNS hits to db.domain.com. In fact, hopefully this is 100%. The possible downsides of this is the loss of a primary key (collision) and I think I am OK with losing one order. We are a low data volume B2B business and can just call our client up if this occurs (like an order disappearing).

Does this sound like a good plan?

Then I will also run another slave replication on db1.domain.com as "master" to a slave-db1.domain.com -- not sure why, maybe for heavy SELECTs?

© Server Fault or respective owner

Related posts about mysql

Related posts about mysql-replication