<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>一个故事@MySQL DBA &#187; MySQL Bug</title>
	<atom:link href="http://www.orczhou.com/index.php/tag/mysql-bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.orczhou.com</link>
	<description>一个故事@MySQL DBA</description>
	<lastBuildDate>Tue, 20 Dec 2011 15:51:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>如何处理遇到的MySQL Bug</title>
		<link>http://www.orczhou.com/index.php/2010/06/how-to-deal-with-mysql-bug/</link>
		<comments>http://www.orczhou.com/index.php/2010/06/how-to-deal-with-mysql-bug/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 02:58:37 +0000</pubDate>
		<dc:creator>orczhou</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Bug]]></category>

		<guid isPermaLink="false">http://www.orczhou.com/?p=2070</guid>
		<description><![CDATA[<p>当管理的MySQL主机越来越多的时候，遇到Bug的可能性也就越来越大了。基本上，每隔一段时间，我们都会遇到一个Bug或者版本兼容问题。有些Bug已经修复（<a href="http://bugs.mysql.com/bug.php?id=44571">Bug #44571</a>），有些Bug无法重现或者修复（<a href="http://bugs.mysql.com/bug.php?id=39168">Bug #39168</a>）。即使Bug能够重现，我们也<a href="http://www.mysqlperformanceblog.com/2008/09/04/how-quickly-you-should-expect-to-see-bugs-fixed/">不能期待MySQL/Innobase能够多快[......]</a></p><p class='read-more'><a href='http://www.orczhou.com/index.php/2010/06/how-to-deal-with-mysql-bug/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>当管理的MySQL主机越来越多的时候，遇到Bug的可能性也就越来越大了。基本上，每隔一段时间，我们都会遇到一个Bug或者版本兼容问题。有些Bug已经修复（<a href="http://bugs.mysql.com/bug.php?id=44571">Bug #44571</a>），有些Bug无法重现或者修复（<a href="http://bugs.mysql.com/bug.php?id=39168">Bug #39168</a>）。即使Bug能够重现，我们也<a href="http://www.mysqlperformanceblog.com/2008/09/04/how-quickly-you-should-expect-to-see-bugs-fixed/">不能期待MySQL/Innobase能够多快</a>的给出Patch，他们没有这个义务，我们也没有权利要求。</p>
<p><font color="red">如何处理Bug？</font></p>
<p>尝试到找Bug重现的场景，确定他是一个Bug，而不是一个Mistake。一般遇到Bug，都能在<a href="http://bugs.mysql.com">MySQL Bug</a>找到线索，如果能够确定是Bug，可以看看新的版本是不是已经修复，如果修复则可以考虑升级小版本号。对于更高的小版本号，我们有如下假设（或者认为）</p>
<ul>
<li>更高的小版本号解决了更多Bug；</li>
<li>如果更高的小版本有新特性，那么意味着新特性可能带来更多的Bug；</li>
<li>更高的小版本，仍然会有和老版本<a href="http://bugs.mysql.com/bug.php?id=34289">不兼容</a>的地方；</li>
<li>更高的小版本，有很cool的新特性；</li>
<li>一般，小版本的升级不会影响应用。</li>
</ul>
<p>所以，一般遇到Bug，新的小版本如果有修复，我们将优先考虑升级小版本号。</p>
<p>另外，找到Bug重现的场景，还可以考虑绕过Bug（workaround），让自己的应用或者DDL尽量避免Bug出现。有时候，新版本新特性会带来一些Bug，不得以我们还可以考虑降级版本，虽然这是不推荐的做法，因为这样的可能陷入死循环。</p>
<p><font color="red">Bug？Debug！</font></p>
<p>纵然，Innobase/MySQL AB已经被Oracle收购，MySQL的源代码仍然受到GPL的保护，所以我们仍然能够获得源代码，这就意味着我们自己Debug也成为可能。很多做开源方案的团队、公司已经发布了很多Patch，一般是做性能提升或者功能增强，他们也在MySQL Bug上提交了很多Patch建议。</p>
<p>这里的另一个问题是，自己的团队是否可能去Debug、打补丁？一般地，如果能够找到源代码的Bug，将其提交到MySQL Bug上，等待更加理解整个架构的人去将代码Merge到源码树中，一般是比较靠谱的办法。这大概也是为什么，目前开源社区、团队产生的一般是性能提升或者功能增强补丁，而很少Debug补丁。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orczhou.com/index.php/2010/06/how-to-deal-with-mysql-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

