<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: No more MySQL Crash Safe Replication in 5.0 ?</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/</link>
	<description>Percona&#039;s MySQL &#38; InnoDB performance and scalability blog</description>
	<lastBuildDate>Sat, 11 Feb 2012 16:45:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Lowercases</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-771121</link>
		<dc:creator>Lowercases</dc:creator>
		<pubDate>Wed, 11 Aug 2010 03:24:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-771121</guid>
		<description>An update on this issue.

As reported in http://bugs.mysql.com/bug.php?id=34058, this has since been fixed (this bug was marked as duplicate of http://bugs.mysql.com/bug.php?id=22540) at version 5.0.46.

From two tests conducted on 5.0.91 (latest in 5.0 series):

---round 1---
show master status;
+------------------+----------+--------------+------------------+
&#124; File             &#124; Position &#124; Binlog_Do_DB &#124; Binlog_Ignore_DB &#124;
+------------------+----------+--------------+------------------+
&#124; mysql-bin.000002 &#124;      544 &#124;              &#124;                  &#124; 
+------------------+----------+--------------+------------------+

error log (snipped):
InnoDB: In a MySQL replication slave the last master binlog file
InnoDB: position 0 517, file name mysql-bin.000002
InnoDB: Last MySQL binlog file position 0 98, file name ./mysql-bin.000002

---round 2---
show master status;
+------------------+----------+--------------+------------------+
&#124; File             &#124; Position &#124; Binlog_Do_DB &#124; Binlog_Ignore_DB &#124;
+------------------+----------+--------------+------------------+
&#124; mysql-bin.000001 &#124;     1631 &#124;              &#124;                  &#124;
+------------------+----------+--------------+------------------+

error log (snipped):
InnoDB: In a MySQL replication slave the last master binlog file
InnoDB: position 0 1604, file name mysql-bin.000001
InnoDB: Last MySQL binlog file position 0 98, file name ./mysql-bin.000001


The difference is consistently 27, which corresponds to unimportant binlog events:

/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 517
#100810 18:54:31 server id 1  end_log_pos 544   Xid = 18
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

Notice that previous value was an unrelated integer.</description>
		<content:encoded><![CDATA[<p>An update on this issue.</p>
<p>As reported in <a href="http://bugs.mysql.com/bug.php?id=34058" rel="nofollow">http://bugs.mysql.com/bug.php?id=34058</a>, this has since been fixed (this bug was marked as duplicate of <a href="http://bugs.mysql.com/bug.php?id=22540" rel="nofollow">http://bugs.mysql.com/bug.php?id=22540</a>) at version 5.0.46.</p>
<p>From two tests conducted on 5.0.91 (latest in 5.0 series):</p>
<p>&#8212;round 1&#8212;<br />
show master status;<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| mysql-bin.000002 |      544 |              |                  |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+</p>
<p>error log (snipped):<br />
InnoDB: In a MySQL replication slave the last master binlog file<br />
InnoDB: position 0 517, file name mysql-bin.000002<br />
InnoDB: Last MySQL binlog file position 0 98, file name ./mysql-bin.000002</p>
<p>&#8212;round 2&#8212;<br />
show master status;<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| mysql-bin.000001 |     1631 |              |                  |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+</p>
<p>error log (snipped):<br />
InnoDB: In a MySQL replication slave the last master binlog file<br />
InnoDB: position 0 1604, file name mysql-bin.000001<br />
InnoDB: Last MySQL binlog file position 0 98, file name ./mysql-bin.000001</p>
<p>The difference is consistently 27, which corresponds to unimportant binlog events:</p>
<p>/*!40019 SET @@session.max_insert_delayed_threads=0*/;<br />
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;<br />
DELIMITER /*!*/;<br />
# at 517<br />
#100810 18:54:31 server id 1  end_log_pos 544   Xid = 18<br />
COMMIT/*!*/;<br />
DELIMITER ;<br />
# End of log file<br />
ROLLBACK /* added by mysqlbinlog */;<br />
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;</p>
<p>Notice that previous value was an unrelated integer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: I</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-493953</link>
		<dc:creator>I</dc:creator>
		<pubDate>Mon, 02 Mar 2009 09:57:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-493953</guid>
		<description>Mysql doesn&#039;t have synchronous replication and this sux a lot, since postgres has at least 2 projects with this.</description>
		<content:encoded><![CDATA[<p>Mysql doesn&#8217;t have synchronous replication and this sux a lot, since postgres has at least 2 projects with this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-239842</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Wed, 06 Feb 2008 23:19:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-239842</guid>
		<description>Baron did:
http://bugs.mysql.com/bug.php?id=34058 and it is mentioned in the post :)</description>
		<content:encoded><![CDATA[<p>Baron did:<br />
<a href="http://bugs.mysql.com/bug.php?id=34058" rel="nofollow">http://bugs.mysql.com/bug.php?id=34058</a> and it is mentioned in the post <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Konstantin Osipov</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-239837</link>
		<dc:creator>Konstantin Osipov</dc:creator>
		<pubDate>Wed, 06 Feb 2008 23:07:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-239837</guid>
		<description>File a bug?</description>
		<content:encoded><![CDATA[<p>File a bug?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike503</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-235957</link>
		<dc:creator>mike503</dc:creator>
		<pubDate>Wed, 30 Jan 2008 07:29:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-235957</guid>
		<description>I hope it is not a &quot;few years&quot;!

That would be a Microsoft-style release cycle... not an open source one!

In a few years I would expect MySQL to be fully enterprise-ready, with clustering/replication/etc, proxying, etc. all being easy to setup, configure and automate.

I think MySQL is so close on so many fronts already...</description>
		<content:encoded><![CDATA[<p>I hope it is not a &#8220;few years&#8221;!</p>
<p>That would be a Microsoft-style release cycle&#8230; not an open source one!</p>
<p>In a few years I would expect MySQL to be fully enterprise-ready, with clustering/replication/etc, proxying, etc. all being easy to setup, configure and automate.</p>
<p>I think MySQL is so close on so many fronts already&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-235923</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Wed, 30 Jan 2008 05:32:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-235923</guid>
		<description>Mike, 

Absolutely.  It is best if MySQL Replication would not break in case of power failure and have  single command ways to resync slave from the master (or from the slave) if it out of sync for some reason.  Until that is done however we have to relay on various scripts and tools and sometimes these tools require certain underlying functionality to do their job. 

Google is working a lot with replication safety and deal between Google and MySQL may mean we will see results of those efforts in MySQL mainline in a few years.</description>
		<content:encoded><![CDATA[<p>Mike, </p>
<p>Absolutely.  It is best if MySQL Replication would not break in case of power failure and have  single command ways to resync slave from the master (or from the slave) if it out of sync for some reason.  Until that is done however we have to relay on various scripts and tools and sometimes these tools require certain underlying functionality to do their job. </p>
<p>Google is working a lot with replication safety and deal between Google and MySQL may mean we will see results of those efforts in MySQL mainline in a few years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike503</title>
		<link>http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/comment-page-1/#comment-235821</link>
		<dc:creator>mike503</dc:creator>
		<pubDate>Tue, 29 Jan 2008 23:56:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/#comment-235821</guid>
		<description>What I&#039;d like to see is auto-healing replication. Instead of people having to create different custom scripts to do CHANGE MASTER and all that, why can&#039;t something simple be added into the replication protocol itself. Basically you tell a master to replicate to a slave, and the slave marks itself as offline/unusable until it catches up.

I *believe* ibpool does this already (from what the docs say) - it does require some sort of proxy/middle layer to be able to mark servers offline/online, but it would allow a bunch of slaves to basically &quot;subscribe&quot; to the master at any point in time and &quot;catch up&quot; as fast as it can, and once it is caught up, mark itself as open for business.

I think it is close to being there, with tools such as maatkit, ibpool, people&#039;s custom scripts, and replication enhancements. It would be nice to see MySQL actually just build this in so we don&#039;t need those custom things anymore and can rely on MySQL itself to sync itself... that&#039;s been my biggest fear and the reason I have not adopted it yet. Once a slave is out of sync, I have to take the master down, or put it in read-only until the slave catches up...

Help me Obiwan, you&#039;re my only hope!</description>
		<content:encoded><![CDATA[<p>What I&#8217;d like to see is auto-healing replication. Instead of people having to create different custom scripts to do CHANGE MASTER and all that, why can&#8217;t something simple be added into the replication protocol itself. Basically you tell a master to replicate to a slave, and the slave marks itself as offline/unusable until it catches up.</p>
<p>I *believe* ibpool does this already (from what the docs say) &#8211; it does require some sort of proxy/middle layer to be able to mark servers offline/online, but it would allow a bunch of slaves to basically &#8220;subscribe&#8221; to the master at any point in time and &#8220;catch up&#8221; as fast as it can, and once it is caught up, mark itself as open for business.</p>
<p>I think it is close to being there, with tools such as maatkit, ibpool, people&#8217;s custom scripts, and replication enhancements. It would be nice to see MySQL actually just build this in so we don&#8217;t need those custom things anymore and can rely on MySQL itself to sync itself&#8230; that&#8217;s been my biggest fear and the reason I have not adopted it yet. Once a slave is out of sync, I have to take the master down, or put it in read-only until the slave catches up&#8230;</p>
<p>Help me Obiwan, you&#8217;re my only hope!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

