All excellent information. I have much to ponder.

-----Original Message-----
From: Eric Braswell [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 20, 2006 11:20 AM
To: Robinson, Eric
Cc: mysql@lists.mysql.com
Subject: Re: How to Verify Replication Status?

You'll need to checksum them at the same point in time, naturally -- 
which you can do by stopping replication on the slave, then performing 
the command on the master, then slave, and compare.
In other words, if you are doing this on a live system, you have to make

sure there are no writes in between the two checksums... but I'm sure 
that's clear.

The one problem with using CHECKSUM TABLE is that a row-by-row 
comparison takes some time and necessarily forces a table lock, so 
performing this on a live system can be problematic if you are expecting

frequent writes. You might consider adding the live checksum to your 
tables for that.
See: http://dev.mysql.com/doc/refman/5.0/en/create-table.html

A data dump, on the other hand, can be fairly quick and would allow you 
to perform the checksum without interfering with any other operations. I

don't know the details of your situation (or the size of your data), but

I'm fairly sure that that's how I would do it.

Another possibility is to do a checksum directly on the database files 
if you can do so while the server is not updating anything, which would 
avoid the dump, and is extremely fast. You could have a shell script 
lock the tables, do an md5sum on the .MYD and maybe .frm files (for 
MyISAM), then unlock. I can't off-hand think of any reason this wouldn't

work well as long as the slave and master are configured identically and

are the same version.

Eric


-- 
Eric Braswell
Web Manager     MySQL AB
Cupertino, USA



Robinson, Eric wrote:
> Eric, that is very helpful. Thanks. 
> 
> Assuming the master and slave are in sync, is there a reason the
> checksums would not match? I would rather not dump the database and
run
> an external checksum unless I have to. 
> 
> --
> Eric Robinson
> Director of Information Technology
> Physician Select Management, LLC
> 775.720.2082
> 
> 
> -----Original Message-----
> From: Eric Braswell [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, April 20, 2006 1:49 AM
> To: Robinson, Eric
> Cc: mysql@lists.mysql.com
> Subject: Re: How to Verify Replication Status?
> 
> There are only a very limited set of circumstances where slaves could 
> get out of sync, and if everything is set up right, it basically
should 
> not happen.
> See: http://dev.mysql.com/doc/refman/5.0/en/replication-rules.html
> And: http://dev.mysql.com/doc/refman/5.0/en/replication-features.html
> 
> CHECKSUM TABLE is a good option if it's a read-only table or you can 
> stop writes (or just replication) long enough to do that. It only
works 
> on MyISAM.
> 
> You could also do basically the same thing by dumping the data in the 
> same way on each server, and running a checksum (e.g. md5sum) or diff 
> tool. One thing I have done is to use:
> 
> mysqldump --skip-opt {database} > {database}.sql
> 
> ..on each machine, then diffed the files using "diff" (note *nix bias 
> here). Using skip-opt to output inserts on individual lines allows you

> to compare the data to see exactly where any differences are. But this

> won't help you if you can't transfer all the data to one place -- you 
> could just do a checksum then on both sides and compare that. Would be

> pretty easy to script that and perform periodic checks.
> 
> Eric
> 


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

Reply via email to