> -----Original Message-----
> From: Bruce Dembecki [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, September 20, 2005 23:05
> To: Jeff
> Cc: mysql@lists.mysql.com
> Subject: Re: Circular Replication
> 
> 
> On Sep 16, 2005, at 11:07 AM, Jeff wrote:
> 
> > There shouldn't be a problem if:
> >
> > server A is ver 4.0.x
> > server B is ver 4.1.x
> >
> > should there?
> >
> 
> There will totally by a problem here... The 4.1 server will take the  
> 4.0 feed without issue. The 4.1 server however puts all sorts of  
> information into the binary log which isn't in the original query,  
> like what sort of collation to use, and which character set it uses  
> and so on... 4.0 doesn't understand such commands and lots of things  
> break in this situation.
> 
> As a side note we deploy servers in pairs, with circular 
> replication.  
> We did three and four server circles, but it gets messy if  
> replication stops somewhere, the data becomes unpredictably  
> inconsistent (assuming all the servers in the circle are getting  
> production updates). Now we do simple two way replication between a  
> pair, and we hang a third server off the pair somewhere just  
> reading... the third server we use for backups, data dumps, reports  
> and other non production issues. Essentially it is something like A<- 
>  >B->C, where A and B have two way replication and C is used for  
> backups/reports etc... anything that changes the data happens 
> on A or B.
> 

I assume you then need to start server B with "--Log_slave_updates"?

> We do some other black magic to manage the replication on C so it's  
> perpetually behind the master servers by between 15 minutes and 2  
> hours... that way if we have a stupid operator error or some other  
> data corrupting event we can stop replication on the backup server  
> before it executes and start from there rather than having to 
> go back  
> to yesterdays backup or something.
> 
> Best Regards, Bruce
> 

Bruce,

Thanks for the info.  All my downstream servers are 4.1 and my masters
are all 4.0.  They will all be brought up to the latest when I can
figure out a production schedule that will allow it.

So for now what I'll have is:

A <-> B -> C
        |\ 
        D E

Where A and B (4.0.16) are masters in a circular replication and C,D,E
(4.1.13) are backups and other read only slave servers .

The reason for needing the circular replication is we are moving our
production systems to another data center and I need to be able to
quickly switch the applications over to the new data center and then
back again if something goes south.

After that however I think I'll keep the two db servers at the new data
center in a circular replication for redundancy probably.

I am interested in how you go about doing a "delayed replication" to
protect against operator error.  We've already fallen victim to that
situation here.

Thanks,

Jeff



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to