<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" 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/" version="2.0"><channel><fs:self_link href="http://feed.feedsky.com/hellodba" type="application/rss+xml" /><lastBuildDate>Mon, 09 Nov 2009 06:14:43 GMT</lastBuildDate><title>Hello DBA</title><description>他强任他强 清风拂山岗 他横任他横 明月照大江</description><image><url>http://www.feedsky.com/images/feedsky_logologo.gif</url><title>Hello DBA</title><link>http://www.hellodba.net</link></image><link>http://www.hellodba.net</link><language>en</language><pubDate>Mon, 09 Nov 2009 06:16:57 GMT</pubDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/HelloDBA" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>招聘应用DBA</title><link>http://www.hellodba.net/2009/11/zhaopin_dba.html</link><content:encoded>&lt;p&gt;Alibaba招聘应用DBA一名，要求：&lt;/p&gt;
&lt;p&gt;必选：&lt;/p&gt;
&lt;p&gt;1.精通SQL，Schema设计，SQL优化。&lt;/p&gt;
&lt;p&gt;2.精通Oracle数据库原理与性能优化。&lt;/p&gt;
&lt;p&gt;3.学习能力，沟通能力，抗压能力。&lt;/p&gt;
&lt;p&gt;可选：&lt;/p&gt;
&lt;p&gt;1.具备一定的Java开发能力，参加过实际的项目开发。&lt;/p&gt;
&lt;p&gt;2.熟悉MySQL数据库。&lt;/p&gt;
&lt;p&gt;3.对海量数据处理有一定的经验。&lt;/p&gt;
&lt;p&gt;应届生也可以，有兴趣发简历到我的邮箱：freezr@gmail.com.&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016636/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/11/zhaopin_dba.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016636/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016636/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/11/zhaopin_dba.html/feed</wfw:commentRss><description>Alibaba招聘应用DBA一名，要求：
必选：
1.精通SQL，Schema设计，SQL优化。
2.精通Oracle数据库原理与性能优化。
3.学习能力，沟通能力，抗压能力。
可选：
1.具备一定的Java开发能力，参加过实际的项目开发。
2.熟悉MySQL数据库。
3.对海量数据处理有一定的经验。
应届生也可以，有兴趣发简历到我的邮箱：freezr@gmail.com.
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016636/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/11/zhaopin_dba.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016636/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016636/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>招聘</category><category>IT江湖</category><pubDate>Mon, 09 Nov 2009 14:14:43 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/11/zhaopin_dba.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1094</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/11/zhaopin_dba.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016636/5126880</fs:itemid></item><item><title>男人三十一枝花</title><link>http://www.hellodba.net/2009/10/thirty_three.html</link><content:encoded>&lt;p&gt;三十三了，我又老了一岁，他又长大了。&lt;/p&gt;
&lt;p&gt;&lt;a class="tt-flickr tt-flickr-Medium" title="33岁" href="http://www.flickr.com/photos/hellodba/4013735865/"&gt;&lt;img class="alignnone" src="http://farm4.static.flickr.com/3528/4013735865_9ce4b49d26.jpg" alt="33岁" width="500" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016637/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/10/thirty_three.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016637/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016637/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/10/thirty_three.html/feed</wfw:commentRss><description>三十三了，我又老了一岁，他又长大了。

&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016637/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/10/thirty_three.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016637/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016637/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>一地鸡毛</category><pubDate>Thu, 15 Oct 2009 23:27:54 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/10/thirty_three.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1081</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/10/thirty_three.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016637/5126880</fs:itemid></item><item><title>宝宝</title><link>http://www.hellodba.net/2009/10/baobao_guiyang.html</link><content:encoded>&lt;p&gt;房子终于装修好了，十一回家把宝宝接回杭州了，又要开始忙他了。&lt;/p&gt;
&lt;p&gt;&lt;a class="tt-flickr tt-flickr-Medium" title="宝宝在贵阳" href="http://www.flickr.com/photos/hellodba/3993927231/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2477/3993927231_01cf27cfcf.jpg" alt="宝宝在贵阳" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="宝宝在贵阳" href="http://www.flickr.com/photos/hellodba/3994689580/"&gt;&lt;img class="alignnone" src="http://farm4.static.flickr.com/3489/3994689580_f296068415.jpg" alt="宝宝在贵阳" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="宝宝在贵阳" href="http://www.flickr.com/photos/hellodba/3993926755/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2633/3993926755_5d9e6e7c04.jpg" alt="宝宝在贵阳" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="宝宝在贵阳" href="http://www.flickr.com/photos/hellodba/3994690580/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2655/3994690580_faa416aefd.jpg" alt="宝宝在贵阳" width="500" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;生活不管在什么阶段都有快乐有烦恼，所以享受生活吧。我觉得马云这句话挺好：开心工作，认真生活。&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016639/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/10/baobao_guiyang.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016639/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016639/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/10/baobao_guiyang.html/feed</wfw:commentRss><description>房子终于装修好了，十一回家把宝宝接回杭州了，又要开始忙他了。
   
生活不管在什么阶段都有快乐有烦恼，所以享受生活吧。我觉得马云这句话挺好：开心工作，认真生活。
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016639/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/10/baobao_guiyang.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016639/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016639/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>宝贝</category><category>我的宝贝</category><pubDate>Thu, 15 Oct 2009 23:02:16 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/10/baobao_guiyang.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1073</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/10/baobao_guiyang.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016639/5126880</fs:itemid></item><item><title>大光圈的诱惑</title><link>http://www.hellodba.net/2009/09/sigma_30_f14.html</link><content:encoded>&lt;p&gt;一直想买个定焦大光圈，D40上可以搭配的定焦头并不多，喜欢适马的30mmF1.4，无奈价格太高，银子太少。&lt;/p&gt;
&lt;p&gt;今天在淘宝上淘了一个二手的，半价，成色稍微差点，不过只要成像好，旧就旧点吧。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hellodba.net/wp-content/uploads/2009/09/dsc_7741.jpg"&gt;&lt;img class="alignnone size-full wp-image-1068" title="dsc_7741" src="http://www.hellodba.net/wp-content/uploads/2009/09/dsc_7741.jpg" alt="" width="500" height="487" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;还好老婆对我的各种败家行为，一直非常宽容，当然我也很支持她的各种败家行为。&lt;/p&gt;
&lt;p&gt;哥玩得不是摄影，是寂寞！&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211; &lt;strong style="display:none"&gt;&lt;a href="http://nerealp.co.cc/121.html"&gt;голова болит секс&lt;/a&gt;&lt;/strong&gt; &lt;em style="display:none"&gt;&lt;a href="http://nerealp.co.cc/121.html"&gt;голова болит секс&lt;/a&gt;
&lt;ul style="display:none"&gt;
&lt;li&gt;&lt;a href="http://nerealp.co.cc/121.html"&gt;голова болит секс&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/em&gt; &lt;strong style="display:none"&gt;&lt;a href="http://nerealp.co.cc/121.html"&gt;голова болит секс&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016642/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/09/sigma_30_f14.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016642/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016642/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/09/sigma_30_f14.html/feed</wfw:commentRss><description>一直想买个定焦大光圈，D40上可以搭配的定焦头并不多，喜欢适马的30mmF1.4，无奈价格太高，银子太少。
今天在淘宝上淘了一个二手的，半价，成色稍微差点，不过只要成像好，旧就旧点吧。

还好老婆对我的各种败家行为，一直非常宽容，当然我也很支持她的各种败家行为。
哥玩得不是摄影，是寂寞！
&amp;#8211;EOF&amp;#8211; голова болит секс голова болит секс

голова болит секс

  голова болит секс&lt;img src="http://www1.feedsky.com/t1/294016642/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/09/sigma_30_f14.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016642/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016642/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>一地鸡毛</category><category>摄影</category><pubDate>Fri, 04 Sep 2009 18:36:17 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/09/sigma_30_f14.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1067</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/09/sigma_30_f14.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016642/5126880</fs:itemid></item><item><title>青岛</title><link>http://www.hellodba.net/2009/08/qingdao.html</link><content:encoded>&lt;p&gt;青岛两日游，天公不作美，不是阴天就是下雨，没有去更多的地方。不过我还是在瑟瑟寒风萧萧冷雨中，跳进大海中与他搏斗了一番，这是我的风格！&lt;/p&gt;
&lt;p&gt;&lt;a class="tt-flickr tt-flickr-Medium" title="栈桥" href="http://www.flickr.com/photos/hellodba/3873311854/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2472/3873311854_55f24b1d77.jpg" alt="栈桥" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="奥帆中心" href="http://www.flickr.com/photos/hellodba/3872523533/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2492/3872523533_7233188ece.jpg" alt="奥帆中心" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="青岛" href="http://www.flickr.com/photos/hellodba/3873305092/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2600/3873305092_4490e9a5db.jpg" alt="青岛" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="海军博物馆" href="http://www.flickr.com/photos/hellodba/3872529107/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2629/3872529107_0bf690e91c.jpg" alt="海军博物馆" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="八大关" href="http://www.flickr.com/photos/hellodba/3872570749/"&gt;&lt;img class="alignnone" src="http://farm4.static.flickr.com/3459/3872570749_a53e40624e.jpg" alt="八大关" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="街头CS" href="http://www.flickr.com/photos/hellodba/3872570733/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2609/3872570733_d1ec0d6d67.jpg" alt="街头CS" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="青啤陈列室的小雕塑" href="http://www.flickr.com/photos/hellodba/3872570659/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2458/3872570659_d604420f33.jpg" alt="青啤陈列室的小雕塑" width="500" height="333" /&gt;&lt;/a&gt; &lt;a class="tt-flickr tt-flickr-Medium" title="百年青啤" href="http://www.flickr.com/photos/hellodba/3873301636/"&gt;&lt;img class="alignnone" src="http://farm3.static.flickr.com/2517/3873301636_d753d261b0.jpg" alt="百年青啤" width="500" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016644/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/qingdao.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016644/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016644/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/qingdao.html/feed</wfw:commentRss><description>青岛两日游，天公不作美，不是阴天就是下雨，没有去更多的地方。不过我还是在瑟瑟寒风萧萧冷雨中，跳进大海中与他搏斗了一番，这是我的风格！
       
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016644/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/qingdao.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016644/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016644/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>摄影</category><category>边走边拍</category><pubDate>Mon, 31 Aug 2009 11:14:00 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/qingdao.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1060</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/qingdao.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016644/5126880</fs:itemid></item><item><title>Oracle ACFS</title><link>http://www.hellodba.net/2009/08/oracle-acfs.html</link><content:encoded>&lt;p&gt;Oracle 11g rR2发布在即，我最关注的是Oracle ACFS(Oracle ASM cluster file system)。它将ASM扩展为cluster file system，这样ASM就不仅仅可以为Oracle数据库提供服务，而且成为了一个通用的存储解决方案。&lt;/p&gt;
&lt;p&gt;最让人兴奋的是ACFS终于提供了snapshot功能，采用copy-on-write技术（还有一种snapshot的技术是write-on-redirect，Netapp采用这个技术，在写的性能上要比copy-on-write好），最多可以提供63份snapshot。利用这个功能，我们可以搭建出很多有意思的解决方案。&lt;/p&gt;
&lt;p&gt;我现在的主要工作就是用Oracle，MySQL和其他技术搭建解决方案，用最低廉的成本解决现实工作中的问题。另外的工作是研究Oracle各种机制的实现原理，并且用最简单的语言描述出来，其实好多原理都可以应用在我们自己的项目中。&lt;/p&gt;
&lt;p&gt;期待Oracle 11g R2.&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016655/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/oracle-acfs.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016655/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016655/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/oracle-acfs.html/feed</wfw:commentRss><description>Oracle 11g rR2发布在即，我最关注的是Oracle ACFS(Oracle ASM cluster file system)。它将ASM扩展为cluster file system，这样ASM就不仅仅可以为Oracle数据库提供服务，而且成为了一个通用的存储解决方案。
最让人兴奋的是ACFS终于提供了snapshot功能，采用copy-on-write技术（还有一种snapshot的技术是write-on-redirect，Netapp采用这个技术，在写的性能上要比copy-on-write好），最多可以提供63份snapshot。利用这个功能，我们可以搭建出很多有意思的解决方案。
我现在的主要工作就是用Oracle，MySQL和其他技术搭建解决方案，用最低廉的成本解决现实工作中的问题。另外的工作是研究Oracle各种机制的实现原理，并且用最简单的语言描述出来，其实好多原理都可以应用在我们自己的项目中。
期待Oracle 11g R2.
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016655/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/oracle-acfs.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016655/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016655/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>ORACLE</category><category>大话技术</category><pubDate>Thu, 27 Aug 2009 11:27:49 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/oracle-acfs.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1052</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/oracle-acfs.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016655/5126880</fs:itemid></item><item><title>该死的twitter</title><link>http://www.hellodba.net/2009/08/twitter.html</link><content:encoded>&lt;p&gt;twitter一直没有更新了，因为账号被封了，我也不知道违反了什么规则，发了若干封邮件申诉，至今仍然没有恢复。&lt;/p&gt;
&lt;p&gt;只好继续每天一封邮件申诉下去，如果还不成，就再也不用twitter了。&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016657/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/twitter.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016657/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016657/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/twitter.html/feed</wfw:commentRss><description>twitter一直没有更新了，因为账号被封了，我也不知道违反了什么规则，发了若干封邮件申诉，至今仍然没有恢复。
只好继续每天一封邮件申诉下去，如果还不成，就再也不用twitter了。
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016657/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/twitter.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016657/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016657/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>一地鸡毛</category><category>twitter</category><pubDate>Thu, 27 Aug 2009 09:16:31 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/twitter.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1049</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/twitter.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016657/5126880</fs:itemid></item><item><title>sequential和scattered的含义</title><link>http://www.hellodba.net/2009/08/sequentialscattered.html</link><content:encoded>&lt;p&gt;sequential read（顺序读）一般发生在index range scan中，也被称为单块读，scattered read（离散读）一般发生在FTS中，也被称为多块读。对于sequential和scattered这两个词的含义，往往会造成一些困惑。因为从IO的角度去看，sequential read因为是单块读，在IO子系统上是离散读。而scattered read因为是多块读，在IO子系统上是顺序读。&lt;/p&gt;
&lt;p&gt;因为所谓的sequential和scattered是从Oracle的角度去看，而不是从IO子系统的角度去看。sequential的含义是指Oracle请求IO是顺序的，比如index range scan，就必须是先读root，再读branch，然后读leaf，最后读data block，这个过程是顺序，串行和同步的。而scattered read是指Oracle请求IO是离散的，比如在做FTS时，可以向操作系统同时请求多个IO，而且不必等到返回，就可以请求下一个IO，所以是异步的过程。所以我说scattered read是局部并行，全局串行的过程。&lt;/p&gt;
&lt;p&gt;Oracle的顺序读在IO子系统上是离散的，而Oracle的离散度在IO子系统上是连续的，之所以这么命名是因为Oracle和IO子系统站在自己的角度观察的结果。&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016669/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/sequentialscattered.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016669/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016669/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/sequentialscattered.html/feed</wfw:commentRss><description>sequential read（顺序读）一般发生在index range scan中，也被称为单块读，scattered read（离散读）一般发生在FTS中，也被称为多块读。对于sequential和scattered这两个词的含义，往往会造成一些困惑。因为从IO的角度去看，sequential read因为是单块读，在IO子系统上是离散读。而scattered read因为是多块读，在IO子系统上是顺序读。
因为所谓的sequential和scattered是从Oracle的角度去看，而不是从IO子系统的角度去看。sequential的含义是指Oracle请求IO是顺序的，比如index range scan，就必须是先读root，再读branch，然后读leaf，最后读data block，这个过程是顺序，串行和同步的。而scattered read是指Oracle请求IO是离散的，比如在做FTS时，可以向操作系统同时请求多个IO，而且不必等到返回，就可以请求下一个IO，所以是异步的过程。所以我说scattered read是局部并行，全局串行的过程。
Oracle的顺序读在IO子系统上是离散的，而Oracle的离散度在IO子系统上是连续的，之所以这么命名是因为Oracle和IO子系统站在自己的角度观察的结果。
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016669/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/sequentialscattered.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016669/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016669/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>ORACLE</category><category>大话技术</category><pubDate>Tue, 25 Aug 2009 17:07:33 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/sequentialscattered.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1042</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/sequentialscattered.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016669/5126880</fs:itemid></item><item><title>我对存储的一些认识</title><link>http://www.hellodba.net/2009/08/storage.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;磁盘&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个IO的访问，大致分为三个步骤，第一是磁头到指定的磁道（寻道），第二是等待需要读取的数据随盘片旋转到磁头（延迟），第三是读取数据。相比较前两个时间，读取数据的时间可以忽略不计，所以一个IO的响应时间等于寻道时间+延迟时间决定，寻道时间由于是机械的动作，所以很难得到大幅度提高，但是可以通过提高磁盘转速来提高延迟时间。所以转速越高的盘，可以承载更多的IOPS。磁盘的IOPS由磁盘的转速决定，比如15000RPM的磁盘，一般可以承受150个IOPS。&lt;/p&gt;
&lt;p&gt;吞吐量，则由磁盘的转速和接口决定，转速决定了内部传输率，接口则决定了外部传输率，很明显前者肯定低于后者。常见的接口有ATA，SCCI，SATA，SAS，FC等等。FC接口一般在高端存储中比较常见，而SAS和SATA多在服务器或者中低端存储中常见。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;存储&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于一个存储系统来说，IOPS主要决定于cache的算法，以及磁盘的数量。有时候我们往往会被厂商的数据给忽悠了，第一是cache命中率，厂商利用了某种手段，让cache命中率非常高，IOPS几乎可以随心所欲。另外一个因素就是磁盘的数量，厂家的数据是同型号1000块磁盘的测试结果，而我们实际的系统只有100块磁盘。&lt;/p&gt;
&lt;p&gt;购买存储时，应该避免买高端的存储，而只配数量很少的磁盘，厂商非常喜欢你买一个高端的BOX，告诉你扩展性好，现在用不着可以少买点盘，以后可以扩容等等，这完全是忽悠。建议不要超前消费，如果确实对性能追求很高，可以选用容量小一些的磁盘，而磁盘的数量多一些。&lt;/p&gt;
&lt;p&gt;磁盘的数量可以计算得出，我们的经验，一般OLTP应用的cache命中率在20%左右，剩下的IO还是要到磁盘上的，根据磁盘的转速和类型，就可以知道一块盘能够承载的IOPS，磁盘数量就可以估算出来了，为了得到比较好的响应时间，建议每块磁盘的IOPS不要超过100。&lt;/p&gt;
&lt;p&gt;影响吞吐量的因素稍微复杂些，由磁盘的数量和存储的架构决定，当磁盘到达一定的数量后，吞吐量主要受限于存储的架构。比如某高端存储，吞吐量最大就是1.4GB，这是由它内部的架构所决定的。另外还要注意存储与主机的接口，比如HBA卡，有4Gb和2Gb（这里是bit，而不是Byte），一般主机和存储都配有多块HBA卡。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RAID&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;RAID一般比较常见的就是RAID10和RAID5，对性能要求比较高的数据库应用一般都采用RAID10，RAID5也可以用，但是别把redo放在RAID5上，因为RAID5的对于redo这种小IO，性能非常差，很容易造成log file sync的等待。一个RAID group中的磁盘数量不宜过多，不要超过10块，原因是RAID group中磁盘数量越多，坏盘的概率就越大（概率问题）。一些高端存储对于RAID group中的磁盘数量都是固定的，这主要和存储的架构有关。使用存储的过程中，你会发现，越是高端的东西，就越是死板，而中低端存储则非常灵活，并不是说高端存储不好，而是说架构决定一切。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stripe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Stripe的作用就是尽可能的分散IO，它在有些存储上是可以调节的，但是很多存储是不可以调节的，一般在128K-512K之间。有一个错误的说法是，我在存储上做了stripe，数据库的一个IO，所有的磁盘都会响应这个IO。这个说法是错误的，对于Oracle来说，一个随机IO的大小是8K，一般条带的大小要比8K大得多，所以Oracle一个随机IO永远只会落在一块磁盘上。一块磁盘在同一个时刻只能响应一个IO，也就是说磁盘没有并发IO的概念，但是从整个系统来看，不同的磁盘响应不同的IO，宏观上IO还是分散的，所以我们看到一个数据库在运行时，所有的磁盘都在忙，实际上每块磁盘是为不同的IO服务。对于顺序IO，Oracle的默认设置是128K，最大值由OS决定，一般是1M，如果顺序IO的大小大于stripe，那么一个IO可能会有几块盘同时响应，但是很多存储的stripe都大于128K，这时一个IO还是只有一块磁盘响应，由于读是一个顺序的过程，所以要在数据库这个级别加上并发，才可以真正达到提高吞吐量的目的。&lt;/p&gt;
&lt;p&gt;有人要问，stripe到底多大合适？如果我把stripe做得很小，这样不是很好吗？一个IO同时可以读很多块盘，大大提高了吞吐量。我们假设stripe为1K，Oracle一个IO要分布在8块不同的磁盘上，但是这时问题就出现了，一块磁盘是不具备并发IO能力的，如果每个IO都占用很多块盘，这样整个系统的并发IO能力就下降了，而且一个8K的IO如果在一块盘上读，和从8块盘上并行读，不会有很大的差别（也许在一块盘上读还要更快），所以stripe不能做的很小。stripe到底设多大，我的观点是大比小好，不要小于256K，数据仓库应用可以设置的更大一些。ASM对于数据文件的stripe默认是1M，我曾经觉得1M太大，将其改为128K，结果发现1M的性能更好，Oracle也推荐用1M。这说明对于数据库应用来说，stripe size要稍微大一点，而不是我们想的越细或者越分散越好。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;存储划分&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;划分好的LUN输出到主机后，我们怎么用？这个就比较灵活多变，首先要看我们的用途，我们是追求IOPS还是吞吐量？我们用file system，raw devices，ASM？存储输出的LUN跨在多少块盘上？一般的存储没有虚拟化功能，则输出的LUN只跨在一个RAID group上，这时往往需要利用OS上的LVM来再次划分一次，看下面的示意图。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hellodba.net/wp-content/uploads/2009/08/lvm.jpg"&gt;&lt;img class="alignnone size-full wp-image-1034" title="lvm" src="http://www.hellodba.net/wp-content/uploads/2009/08/lvm.jpg" alt="" width="500" height="287" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;每个RAID goup有四块磁盘，建立两个LUN，输出到主机后，用蓝色的一组和红色的一组LUN分别创建两个VG，然后再创建LV（stripe），这下每个LV就完全跨在了所有的磁盘上。实际中考虑的问题要更多，有时候不仅仅要考虑磁盘，还要考虑将负载分配在不同的控制器，前端卡后端卡和多路径的问题，相当复杂。有些存储本身有虚拟化的功能，甚至可以输出一个LUN，比如3PAR就可以输出一个虚拟卷，这个卷已经跨在所有的磁盘上，我们直接使用就可以了（但实际工作中这么使用的比较少见）。&lt;/p&gt;
&lt;p&gt;Oracle有了ASM，问题就更加复杂了，我的建议是如果可以的话，存储只做RAID1，stripe交给ASM去做。如果有些存储必须要做stripe，也没问题。存储划分是一个很有技术含量的工作，必须建立在对存储，主机和数据库深入了解的基础上，才有可能做出一个好的规划。&lt;/p&gt;
&lt;p&gt;这里主要探讨了存储使用过程中的一些误区，随着SSD的逐步普及，我觉得将对整个存储市场格局带来很大的变化，下次我们再讨论一下SSD带给我们的机遇。&lt;/p&gt;
&lt;p&gt;后记：存储是系统的最底层，因为非常重要，现在市场基本被几个大厂商所垄断，每个厂家都有一些忽悠人的名词或者商业上的炒作，所以我们要擦亮眼睛，谨防被忽悠。&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;
&lt;p&gt;更正：这篇文章中有一个错误的假设，认为Oracle scattered read是完全串行的过程，实际上在不同的multiblock read之间，存在一定程度的并行。Oracle每次同时向OS发送若干个multiblock read IO请求，然后把返回的结果合并排序。整个scattered read应该是局部并行，宏观串行的过程。&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016671/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/storage.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016671/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016671/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/storage.html/feed</wfw:commentRss><description>磁盘
一个IO的访问，大致分为三个步骤，第一是磁头到指定的磁道（寻道），第二是等待需要读取的数据随盘片旋转到磁头（延迟），第三是读取数据。相比较前两个时间，读取数据的时间可以忽略不计，所以一个IO的响应时间等于寻道时间+延迟时间决定，寻道时间由于是机械的动作，所以很难得到大幅度提高，但是可以通过提高磁盘转速来提高延迟时间。所以转速越高的盘，可以承载更多的IOPS。磁盘的IOPS由磁盘的转速决定，比如15000RPM的磁盘，一般可以承受150个IOPS。
吞吐量，则由磁盘的转速和接口决定，转速决定了内部传输率，接口则决定了外部传输率，很明显前者肯定低于后者。常见的接口有ATA，SCCI，SATA，SAS，FC等等。FC接口一般在高端存储中比较常见，而SAS和SATA多在服务器或者中低端存储中常见。
存储
对于一个存储系统来说，IOPS主要决定于cache的算法，以及磁盘的数量。有时候我们往往会被厂商的数据给忽悠了，第一是cache命中率，厂商利用了某种手段，让cache命中率非常高，IOPS几乎可以随心所欲。另外一个因素就是磁盘的数量，厂家的数据是同型号1000块磁盘的测试结果，而我们实际的系统只有100块磁盘。
购买存储时，应该避免买高端的存储，而只配数量很少的磁盘，厂商非常喜欢你买一个高端的BOX，告诉你扩展性好，现在用不着可以少买点盘，以后可以扩容等等，这完全是忽悠。建议不要超前消费，如果确实对性能追求很高，可以选用容量小一些的磁盘，而磁盘的数量多一些。
磁盘的数量可以计算得出，我们的经验，一般OLTP应用的cache命中率在20%左右，剩下的IO还是要到磁盘上的，根据磁盘的转速和类型，就可以知道一块盘能够承载的IOPS，磁盘数量就可以估算出来了，为了得到比较好的响应时间，建议每块磁盘的IOPS不要超过100。
影响吞吐量的因素稍微复杂些，由磁盘的数量和存储的架构决定，当磁盘到达一定的数量后，吞吐量主要受限于存储的架构。比如某高端存储，吞吐量最大就是1.4GB，这是由它内部的架构所决定的。另外还要注意存储与主机的接口，比如HBA卡，有4Gb和2Gb（这里是bit，而不是Byte），一般主机和存储都配有多块HBA卡。
RAID
RAID一般比较常见的就是RAID10和RAID5，对性能要求比较高的数据库应用一般都采用RAID10，RAID5也可以用，但是别把redo放在RAID5上，因为RAID5的对于redo这种小IO，性能非常差，很容易造成log file sync的等待。一个RAID group中的磁盘数量不宜过多，不要超过10块，原因是RAID group中磁盘数量越多，坏盘的概率就越大（概率问题）。一些高端存储对于RAID group中的磁盘数量都是固定的，这主要和存储的架构有关。使用存储的过程中，你会发现，越是高端的东西，就越是死板，而中低端存储则非常灵活，并不是说高端存储不好，而是说架构决定一切。
Stripe
Stripe的作用就是尽可能的分散IO，它在有些存储上是可以调节的，但是很多存储是不可以调节的，一般在128K-512K之间。有一个错误的说法是，我在存储上做了stripe，数据库的一个IO，所有的磁盘都会响应这个IO。这个说法是错误的，对于Oracle来说，一个随机IO的大小是8K，一般条带的大小要比8K大得多，所以Oracle一个随机IO永远只会落在一块磁盘上。一块磁盘在同一个时刻只能响应一个IO，也就是说磁盘没有并发IO的概念，但是从整个系统来看，不同的磁盘响应不同的IO，宏观上IO还是分散的，所以我们看到一个数据库在运行时，所有的磁盘都在忙，实际上每块磁盘是为不同的IO服务。对于顺序IO，Oracle的默认设置是128K，最大值由OS决定，一般是1M，如果顺序IO的大小大于stripe，那么一个IO可能会有几块盘同时响应，但是很多存储的stripe都大于128K，这时一个IO还是只有一块磁盘响应，由于读是一个顺序的过程，所以要在数据库这个级别加上并发，才可以真正达到提高吞吐量的目的。
有人要问，stripe到底多大合适？如果我把stripe做得很小，这样不是很好吗？一个IO同时可以读很多块盘，大大提高了吞吐量。我们假设stripe为1K，Oracle一个IO要分布在8块不同的磁盘上，但是这时问题就出现了，一块磁盘是不具备并发IO能力的，如果每个IO都占用很多块盘，这样整个系统的并发IO能力就下降了，而且一个8K的IO如果在一块盘上读，和从8块盘上并行读，不会有很大的差别（也许在一块盘上读还要更快），所以stripe不能做的很小。stripe到底设多大，我的观点是大比小好，不要小于256K，数据仓库应用可以设置的更大一些。ASM对于数据文件的stripe默认是1M，我曾经觉得1M太大，将其改为128K，结果发现1M的性能更好，Oracle也推荐用1M。这说明对于数据库应用来说，stripe size要稍微大一点，而不是我们想的越细或者越分散越好。
存储划分
划分好的LUN输出到主机后，我们怎么用？这个就比较灵活多变，首先要看我们的用途，我们是追求IOPS还是吞吐量？我们用file system，raw devices，ASM？存储输出的LUN跨在多少块盘上？一般的存储没有虚拟化功能，则输出的LUN只跨在一个RAID group上，这时往往需要利用OS上的LVM来再次划分一次，看下面的示意图。

每个RAID goup有四块磁盘，建立两个LUN，输出到主机后，用蓝色的一组和红色的一组LUN分别创建两个VG，然后再创建LV（stripe），这下每个LV就完全跨在了所有的磁盘上。实际中考虑的问题要更多，有时候不仅仅要考虑磁盘，还要考虑将负载分配在不同的控制器，前端卡后端卡和多路径的问题，相当复杂。有些存储本身有虚拟化的功能，甚至可以输出一个LUN，比如3PAR就可以输出一个虚拟卷，这个卷已经跨在所有的磁盘上，我们直接使用就可以了（但实际工作中这么使用的比较少见）。
Oracle有了ASM，问题就更加复杂了，我的建议是如果可以的话，存储只做RAID1，stripe交给ASM去做。如果有些存储必须要做stripe，也没问题。存储划分是一个很有技术含量的工作，必须建立在对存储，主机和数据库深入了解的基础上，才有可能做出一个好的规划。
这里主要探讨了存储使用过程中的一些误区，随着SSD的逐步普及，我觉得将对整个存储市场格局带来很大的变化，下次我们再讨论一下SSD带给我们的机遇。
后记：存储是系统的最底层，因为非常重要，现在市场基本被几个大厂商所垄断，每个厂家都有一些忽悠人的名词或者商业上的炒作，所以我们要擦亮眼睛，谨防被忽悠。
&amp;#8211;EOF&amp;#8211;
更正：这篇文章中有一个错误的假设，认为Oracle scattered read是完全串行的过程，实际上在不同的multiblock read之间，存在一定程度的并行。Oracle每次同时向OS发送若干个multiblock read IO请求，然后把返回的结果合并排序。整个scattered read应该是局部并行，宏观串行的过程。&lt;img src="http://www1.feedsky.com/t1/294016671/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/storage.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016671/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016671/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>存储</category><category>大话技术</category><pubDate>Fri, 07 Aug 2009 22:50:56 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/storage.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1025</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/storage.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016671/5126880</fs:itemid></item><item><title>11g ASM新特性</title><link>http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html</link><content:encoded>&lt;p&gt;Oracle 11g的ASM有两个有意思的特性，我们看看他们能带给我们什么？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.Fast mirror resync&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;原来当diskgroup中的盘发生故障时，Oracle会将这个盘标记为offline状态，并在一定的时间内从diskgroup中drop掉这块磁盘。如果disk只是临时性的故障，那么当故障恢复时，需要同步这块盘的全部内容，尤其是当某个failure group的全部磁盘都出现问题，比如我们的存储某个节点临时性断电，这时要重新build整个failure group中的所有磁盘，这个操作会非常耗费系统的资源，而是同步的过程会很长。&lt;/p&gt;
&lt;p&gt;fast mirror resync这个特性在发生故障时，记录数据变化，然后当磁盘恢复时，只需要同步这些变化内容，让同步的时间变得很短。&lt;code&gt;DISK_REPAIR_TIME&lt;/code&gt;这个参数控制可以恢复的时间长短，如果故障超过这个时间，Oracle将从diskgroup中drop这块盘。&lt;/p&gt;
&lt;p&gt;比较有意思的问题，第一个是&lt;strong&gt;Oracle如何记录这些变化&lt;/strong&gt;？文档中并没有明确说明，但是我猜测是用&lt;strong&gt;位图&lt;/strong&gt;方式来实现，即用位图来标识哪个extent发生了变化，然后当故障恢复时同步这个extent即可，因为位图占用的空间很小，这样就可以记录很长时间的变化。第二个是如果整个磁盘都坏掉，换了一块新的磁盘，这时必须同步这个磁盘的所有内容，fast mirror resync就失效了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.Preferred mirror read &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ASM中mirror有primary copy和secondary copy，ASM总是读primary copy的内容，但是ASM会将不同extent的primary和secondary copy放在不同的failure group中，比如extent 1的primary在failgroup1，secondary在failgroup2，而extent2则刚好相反，用这种方式来实现负载均衡。&lt;/p&gt;
&lt;p&gt;Preferred mirror read可以控制Oracle优先读取某个failure group上的copy，这个特性在RAC上很有用，我们可以控制RAC的节点优先读取离自己最“近”的存储，我突发奇想，设计一个两节点的RAC系统，利用iscsi来共享自己的磁盘给对方，然后利用这个特性，控制每个节点去读自己的本地磁盘。&lt;/p&gt;
&lt;p&gt;下图这个方案，我们选用两台PC server，没有共享的存储，每台PC24块盘，如果追求吞吐量，用SAS/SATA盘，如果追求IOPS，可以用ssd盘。用iscsi将本地磁盘输出给地方节点，形成共享存储，RAC节点间互连可以用直连或交换方式。ASM中分别将两个PC的磁盘定位为单独的failgroup，利用preferred mirror read，让每个节点优先读取自己的本地failgroup中的extent copy.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hellodba.net/wp-content/uploads/2009/08/rac21.jpg"&gt;&lt;img class="alignnone size-full wp-image-1023" title="rac21" src="http://www.hellodba.net/wp-content/uploads/2009/08/rac21.jpg" alt="" width="500" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以上方案未经测试，纯属虚构，如果谁有兴趣，可以搭一个验证是否可行。&lt;/p&gt;
&lt;p&gt;将山寨进行到底。&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src="http://www1.feedsky.com/t1/294016673/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016673/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016673/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html/feed</wfw:commentRss><description>Oracle 11g的ASM有两个有意思的特性，我们看看他们能带给我们什么？
1.Fast mirror resync
原来当diskgroup中的盘发生故障时，Oracle会将这个盘标记为offline状态，并在一定的时间内从diskgroup中drop掉这块磁盘。如果disk只是临时性的故障，那么当故障恢复时，需要同步这块盘的全部内容，尤其是当某个failure group的全部磁盘都出现问题，比如我们的存储某个节点临时性断电，这时要重新build整个failure group中的所有磁盘，这个操作会非常耗费系统的资源，而是同步的过程会很长。
fast mirror resync这个特性在发生故障时，记录数据变化，然后当磁盘恢复时，只需要同步这些变化内容，让同步的时间变得很短。DISK_REPAIR_TIME这个参数控制可以恢复的时间长短，如果故障超过这个时间，Oracle将从diskgroup中drop这块盘。
比较有意思的问题，第一个是Oracle如何记录这些变化？文档中并没有明确说明，但是我猜测是用位图方式来实现，即用位图来标识哪个extent发生了变化，然后当故障恢复时同步这个extent即可，因为位图占用的空间很小，这样就可以记录很长时间的变化。第二个是如果整个磁盘都坏掉，换了一块新的磁盘，这时必须同步这个磁盘的所有内容，fast mirror resync就失效了。
2.Preferred mirror read 
ASM中mirror有primary copy和secondary copy，ASM总是读primary copy的内容，但是ASM会将不同extent的primary和secondary copy放在不同的failure group中，比如extent 1的primary在failgroup1，secondary在failgroup2，而extent2则刚好相反，用这种方式来实现负载均衡。
Preferred mirror read可以控制Oracle优先读取某个failure group上的copy，这个特性在RAC上很有用，我们可以控制RAC的节点优先读取离自己最“近”的存储，我突发奇想，设计一个两节点的RAC系统，利用iscsi来共享自己的磁盘给对方，然后利用这个特性，控制每个节点去读自己的本地磁盘。
下图这个方案，我们选用两台PC server，没有共享的存储，每台PC24块盘，如果追求吞吐量，用SAS/SATA盘，如果追求IOPS，可以用ssd盘。用iscsi将本地磁盘输出给地方节点，形成共享存储，RAC节点间互连可以用直连或交换方式。ASM中分别将两个PC的磁盘定位为单独的failgroup，利用preferred mirror read，让每个节点优先读取自己的本地failgroup中的extent copy.

以上方案未经测试，纯属虚构，如果谁有兴趣，可以搭一个验证是否可行。
将山寨进行到底。
&amp;#8211;EOF&amp;#8211;&lt;img src="http://www1.feedsky.com/t1/294016673/hellodba/feedsky/s.gif?r=http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html" border="0" height="0" width="0" style="position:absolute" /&gt;&lt;p class="fswww1"&gt;&lt;a href="http://www1.feedsky.com/r/l/feedsky/hellodba/294016673/art01.html" target="_blank"&gt;&lt;img border="0" ismap="ismap" src="http://www1.feedsky.com/r/i/feedsky/hellodba/294016673/art01.gif" onerror="this.style.display='none'" /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>ORACLE</category><category>大话技术</category><pubDate>Wed, 05 Aug 2009 19:25:58 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=1016</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/08/oracle_11g_asm_new_features.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/294016673/5126880</fs:itemid></item></channel></rss>
