It probably isn't the transfer of the binary logs that is causing the
problem. Most likely you are running some statement that is
non-deterministic (returns a different result on the replica then it
does on the master). Some examples of this type of statement include
insert into [table] select ... (no order by)
update [table] set ... where ... (no order by) limit X
delete from [table] where ... (no order by) limit X
It can be a pain to find the cause but your best bet is to examine your
binary logs using mysqlbinlog. I usually start by searching for all the
rows that change the table and then look for one of the patterns above.
If you haven't already you might take a look at the Maatkit tools for
getting your database back into sync http://www.maatkit.org/tools.html.
On 1/29/10 3:23 AM, Alper Oguz wrote:
> Is there any way to send all binlogs to the slave with a command? I
> need this, because I'm using two servers with Heartbeat and if I up to
> second server (IP alias, Apache, Tomcat etc.), I find some missing
> rows on the slave and this giving error (duplicate) on auto increment
> columns. Also it's produce a data inconsistency of course...
> If I can send the all binlogs on master before running the java app.
> server on the slave, it'll be great.
> thank you