On Wed, Nov 30, 2011 at 11:51 PM, Colin <cwoo...@gmail.com> wrote:
> Hi Django users,
>
> So I have two servers behind a vip. I currently have it setup so if
> one server goes down it uses the other http server which works great.
> However I tried to set up mysql master - master and I keep getting
> duplicate key errors and grind the process to a hault and causes a
> real headache.
>
> My only requirment is that if one server goes down the system will
> still work, either physical or software server. So what would your
> advice be? This isnt a high volumn system but it needs high
> availability due ot the fact I use this as a tools mainsite and
> configuration system.
>

Hi Colin

I run a django web-app in a similar configuration to this, like you we
do this for HA, not scalability. I have a target of four 9s
availability (roughly less than a minute per week downtime).

We have multiple DCs, with a pair of app servers in each DC. Each DC
has 2 DB servers, one master, one slave, and both app servers in the
DC are configured to use both DB servers, with writes going to the
masters, obviously. The master DB servers in each DC slave the other.
If anything goes wrong with any part of the stack in one DC, we
failover to the other and repair it.

We don't have issues with duplicate keys, because we configure each
master to use a different auto_increment_offset. This means that
inserting a new tuple cannot result in a key collision on the other
master.

Here is the stock my.cnf that we use:

 # Multi Master Replication settings
 server-id = 1
 log-bin = /var/db/mysql/bin-log
 log-slave-updates
 log-bin-index = /var/db/mysql/bin-log.index
 log-error = /var/db/mysql/error.log
 relay-log = /var/db/mysql/relay-log
 relay-log-info-file = /var/db/mysql/relay-log.info
 relay-log-index = /var/db/mysql/relay-log.index
 expire-logs-days = 14
 auto_increment_increment = 2
 auto_increment_offset = 1
 master-host = <redacted>
 master-user = <redacted>
 master-password = <redacted>
 replicate-do-db = <redacted>

On this server, offset is 1 and increment is 2, so the auto increment
keys are all odd numbers. On the other master, offset is 2 and
increment is 2, so the auto increment keys are all even numbers.

Hope that helps

Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to