<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky6.xsl' type='text/xsl' ?><!--这是一个由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><atom:link href="http://feed.feedsky.com/hellodba" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/hellodba" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 08 Jan 2009 05:01:10 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>Thu, 08 Jan 2009 09:01:46 GMT</pubDate><item><title>我喜欢的blog和blogger</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158921269/5126880/1/item.html</link><content:encoded>&lt;p&gt;每天早上到公司，上厕所，泡茶，开电脑，看新浪体育，网易新闻，然后就在我的Google Reader上看朋友的Blog，就象网易说“无更贴，不新闻”，大师说“无灌水，不网络“一样，对我而言，每天看朋友的blog也是生活的一件乐事。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DBA notes&lt;/strong&gt;(dbanotes.net)：冯大辉的blog，在圈里很有名气，我也是他的忠实粉丝，主要内容是讲新技术，架构和思路。虽然是技术类的blog，但是文笔犀利，图文并茂，这哥们还喜欢摇滚，偶尔也愤两句。不管你是不是挨踢人士，这里的内容都值得一读。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alibaba DBA&lt;/strong&gt;（alidba.net）：俺们部门的blog，有兴趣可以去看看。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Taobao DBA&lt;/strong&gt;（taobaodba.com）：Taobao DBA的官方blog。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;人生就是如此&lt;/strong&gt;：biti_rainy的blog，搞Oracle的人应该都知道，Oracle ACE，Alibaba首席DBA，经常在ITPUB灌水。他现在已经少写技术方面的内容了，主要都是八卦和小道消息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oracle &amp;amp; Starcraft&lt;/strong&gt;：（orawh.com）：汪海(七公)的blog，个人觉得他对Oracle internal的东西非常有研究，但是做人很低调，很随和。前不久他获得了Oracle 的 “IT Manager of the Year” 奖。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DBA Story&lt;/strong&gt;（ixdba.com）：piner的blog，他对主机存储数据库OS都有广泛的研究，前不久写了一本书《Oracle高可用环境》，我觉得写得很不错，几乎涵盖了数据库的各个方面。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Eygle&lt;/strong&gt;（eygle.com）：关于他我就不多说了，他的每本书我基本都读过，虽然只有一面之缘，但他给我的感觉很好。这么多年他对Oracle一直报有极大的热情，始终不一的研究Oracle的技术，非常的努力和勤奋。读他的blog，也是对自己的一种鞭策。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;blue_prince&lt;/strong&gt;：他在网络上的头像是巴乔，我们都叫他巴乔。女DBA杀手，摄影达人，忽悠高手。在他的忽悠下，我买了单反相机，在他的忽悠下，我又买了一个镜头。他现在负责数据仓库方面的应用，所以blog中比较多的介绍了这方面的内容。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ningoo&lt;/strong&gt;（ningoo.net）：ningoo的blog，精通各种主机，存储和数据库，写的文章都很有深度，反正都是我没干过的事。如果把人分为菜鸟，菜人，人，牛人，不是人这五个级别的话，我估计他应该在第四级别。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;朝阳的天空&lt;/strong&gt;（jianzhaoyang.com）：mysql数据库高手，正在写一本有关mysql的书，想学mysql的朋友这里不能错过。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BOBO&lt;/strong&gt;（free2way.net）：原来在珠海时很要好的朋友，Oracle和DB2都很厉害，但是人低调的厉害，现在在北京混，虽然少有联系，但是通过blog我们还可以相互了解对方的近况。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;喜马拉雅&lt;/strong&gt;（myhimalayas.blog.sohu.com）：高中大学同学，很开朗的女生，喜欢旅游摄影，可以算是红颜知己吧，很喜欢她拍的照片，现在人在上海。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;稻泥&lt;/strong&gt;（flickr.com/photos/grassbell）：原来有名的grassbell，现在迷上了摄影，准备从DBA向专业摄影师方向转型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;苏老邪的桃花岛&lt;/strong&gt;：简称So，也算是俺的老乡，摄影达人，也开一辆蓝色的标志206。他的blog以生活和摄影为主，写得幽默有趣。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Neo&lt;/strong&gt;（neowang.com）：同事，驴友，摄影爱好者。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;南瓜@虾米&lt;/strong&gt;（livehouse.cn）：我以前的同事，摇滚青年，音乐达人，辞职创办了虾米网（高品质音乐互动社区，网站很不错，推荐大家去看看）。我觉得IT人和音乐人不可能融合在一起，在他身上是个特例。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;谭理想&lt;/strong&gt;（hi.baidu.com/redthink123）：未曾见面的网友，也是通过blog认识的，年纪轻轻就是某公司的技术总监了，是我的blog的忠实读者之一。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;知道分子&lt;/strong&gt;（hutuworm.blogspot.com）：冯大忽悠的blog，架构师，他的blog我基本上看不懂。BTW：发现我身边姓冯的人都很能忽悠。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;爱枣报&lt;/strong&gt;：新闻还不错，年终特刊-2008大盘点《撼动中国》，写的挺逗。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hellodba.net/wp-content/uploads/2009/01/blog.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-460&quot; title=&quot;blog&quot; src=&quot;http://www.hellodba.net/wp-content/uploads/2009/01/blog.jpg&quot; alt=&quot;&quot; width=&quot;256&quot; height=&quot;682&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/01/blog.html/feed</wfw:commentRss><description>每天早上到公司，上厕所，泡茶，开电脑，看新浪体育，网易新闻，然后就在我的Google Reader上看朋友的Blog，就象网易说“无更贴，不新闻”，大师说“无灌水，不网络“一样，对我而言，每天看朋友的blog也是生活的一件乐事。
DBA notes(dbanotes.net)：冯大辉的blog，在圈里很有名气，我也是他的忠实粉丝，主要内容是讲新技术，架构和思路。虽然是技术类的blog，但是文笔犀利，图文并茂，这哥们还喜欢摇滚，偶尔也愤两句。不管你是不是挨踢人士，这里的内容都值得一读。
Alibaba DBA（alidba.net）：俺们部门的blog，有兴趣可以去看看。
Taobao DBA（taobaodba.com）：Taobao DBA的官方blog。
人生就是如此：biti_rainy的blog，搞Oracle的人应该都知道，Oracle ACE，Alibaba首席DBA，经常在ITPUB灌水。他现在已经少写技术方面的内容了，主要都是八卦和小道消息。
Oracle &amp;#38; Starcraft：（orawh.com）：汪海(七公)的blog，个人觉得他对Oracle internal的东西非常有研究，但是做人很低调，很随和。前不久他获得了Oracle 的 “IT Manager of the Year” 奖。
DBA Story（ixdba.com）：piner的blog，他对主机存储数据库OS都有广泛的研究，前不久写了一本书《Oracle高可用环境》，我觉得写得很不错，几乎涵盖了数据库的各个方面。
Eygle（eygle.com）：关于他我就不多说了，他的每本书我基本都读过，虽然只有一面之缘，但他给我的感觉很好。这么多年他对Oracle一直报有极大的热情，始终不一的研究Oracle的技术，非常的努力和勤奋。读他的blog，也是对自己的一种鞭策。
blue_prince：他在网络上的头像是巴乔，我们都叫他巴乔。女DBA杀手，摄影达人，忽悠高手。在他的忽悠下，我买了单反相机，在他的忽悠下，我又买了一个镜头。他现在负责数据仓库方面的应用，所以blog中比较多的介绍了这方面的内容。
ningoo（ningoo.net）：ningoo的blog，精通各种主机，存储和数据库，写的文章都很有深度，反正都是我没干过的事。如果把人分为菜鸟，菜人，人，牛人，不是人这五个级别的话，我估计他应该在第四级别。
朝阳的天空（jianzhaoyang.com）：mysql数据库高手，正在写一本有关mysql的书，想学mysql的朋友这里不能错过。
BOBO（free2way.net）：原来在珠海时很要好的朋友，Oracle和DB2都很厉害，但是人低调的厉害，现在在北京混，虽然少有联系，但是通过blog我们还可以相互了解对方的近况。
喜马拉雅（myhimalayas.blog.sohu.com）：高中大学同学，很开朗的女生，喜欢旅游摄影，可以算是红颜知己吧，很喜欢她拍的照片，现在人在上海。
稻泥（flickr.com/photos/grassbell）：原来有名的grassbell，现在迷上了摄影，准备从DBA向专业摄影师方向转型。
苏老邪的桃花岛：简称So，也算是俺的老乡，摄影达人，也开一辆蓝色的标志206。他的blog以生活和摄影为主，写得幽默有趣。
Neo（neowang.com）：同事，驴友，摄影爱好者。
南瓜@虾米（livehouse.cn）：我以前的同事，摇滚青年，音乐达人，辞职创办了虾米网（高品质音乐互动社区，网站很不错，推荐大家去看看）。我觉得IT人和音乐人不可能融合在一起，在他身上是个特例。
谭理想（hi.baidu.com/redthink123）：未曾见面的网友，也是通过blog认识的，年纪轻轻就是某公司的技术总监了，是我的blog的忠实读者之一。
知道分子（hutuworm.blogspot.com）：冯大忽悠的blog，架构师，他的blog我基本上看不懂。BTW：发现我身边姓冯的人都很能忽悠。
爱枣报：新闻还不错，年终特刊-2008大盘点《撼动中国》，写的挺逗。</description><category>一地鸡毛</category><category>it's my life</category><pubDate>Thu, 08 Jan 2009 13:01:10 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/01/blog.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=430</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/01/blog.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158921269/5126880</fs:itemid></item><item><title>Oracle 11g的小技巧</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158876611/5126880/1/item.html</link><content:encoded>&lt;p&gt;最近上了一套11g的应用，发现了几个需要注意的地方：&lt;/p&gt;
&lt;p&gt;1.alert文件的位置和以前不同，通过diagnostic_dest参数设置，Oracle现在除了传统的文本形式的alert，还会生成一个xml格式的，我还是习惯旧的文本形式的alert.log&lt;/p&gt;
&lt;p&gt;3.11g standby的real time apply很好用，恢复的同时就可以提供read only的功能，不过我们同事发现在某些情况下有bug（频繁truncate表，然后再插入，在standby端读取会出错），Oracle还没给出解释。&lt;/p&gt;
&lt;p&gt;4.log_archive_dest_n参数，没有了lgwr和arch的选项，默认都是通过lgwr传输，如果standby端没有standby redo log，那么RFS将直接redo stream写入到archive log文件中（经过测试，发现9i,10g也是如此)，这个archive log的大小和redo log一样，当日志切换时，才产生真正的archive log（文件的大小会发生改变)。需要注意的是，如果没有standby redo log将不能实现real time apply.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hellodba.net/wp-content/uploads/2009/01/sbydb042.gif&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-451&quot; title=&quot;sbydb042&quot; src=&quot;http://www.hellodba.net/wp-content/uploads/2009/01/sbydb042.gif&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;142&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.以下参数已经过时，具体请参阅Oracle的文档&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BACKGROUND_DUMP_DEST&lt;/code&gt; (replaced by &lt;code&gt;DIAGNOSTIC_DEST&lt;/code&gt;)&lt;br /&gt;
&lt;code&gt;COMMIT_WRITE&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;CURSOR_SPACE_FOR_TIME&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;INSTANCE_GROUPS&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;LOG_ARCHIVE_LOCAL_FIRST&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;PLSQL_DEBUG&lt;/code&gt; (replaced by &lt;code&gt;PLSQL_OPTIMIZE_LEVEL&lt;/code&gt;)&lt;br /&gt;
&lt;code&gt;PLSQL_V2_COMPATIBILITY&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;REMOTE_OS_AUTHENT&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;RESOURCE_MANAGER_CPU_ALLOCATION&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;STANDBY_ARCHIVE_DEST&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;TRANSACTION_LAG&lt;/code&gt; attribute (of the &lt;code&gt;CQ_NOTIFICATION$_REG_INFO&lt;/code&gt; object)&lt;br /&gt;
&lt;code&gt;USER_DUMP_DEST&lt;/code&gt; (replaced by &lt;code&gt;DIAGNOSTIC_DEST&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;BTW：Oracle除了数据库以外，其他的东西做的真难用，比如ERP，还有我们在使用的Peoplesoft，metalink本来就够难用的了，现在出了个新版本，还不如以前。11g的文档也明显不如9i的详细。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/01/oracle11g.html/feed</wfw:commentRss><description>最近上了一套11g的应用，发现了几个需要注意的地方：
1.alert文件的位置和以前不同，通过diagnostic_dest参数设置，Oracle现在除了传统的文本形式的alert，还会生成一个xml格式的，我还是习惯旧的文本形式的alert.log
3.11g standby的real time apply很好用，恢复的同时就可以提供read only的功能，不过我们同事发现在某些情况下有bug（频繁truncate表，然后再插入，在standby端读取会出错），Oracle还没给出解释。
4.log_archive_dest_n参数，没有了lgwr和arch的选项，默认都是通过lgwr传输，如果standby端没有standby redo log，那么RFS将直接redo stream写入到archive log文件中（经过测试，发现9i,10g也是如此)，这个archive log的大小和redo log一样，当日志切换时，才产生真正的archive log（文件的大小会发生改变)。需要注意的是，如果没有standby redo log将不能实现real time apply.

2.以下参数已经过时，具体请参阅Oracle的文档
BACKGROUND_DUMP_DEST (replaced by DIAGNOSTIC_DEST)
COMMIT_WRITE
CURSOR_SPACE_FOR_TIME
INSTANCE_GROUPS
LOG_ARCHIVE_LOCAL_FIRST
PLSQL_DEBUG (replaced by PLSQL_OPTIMIZE_LEVEL)
PLSQL_V2_COMPATIBILITY
REMOTE_OS_AUTHENT
RESOURCE_MANAGER_CPU_ALLOCATION
STANDBY_ARCHIVE_DEST
TRANSACTION_LAG attribute (of the CQ_NOTIFICATION$_REG_INFO object)
USER_DUMP_DEST (replaced by DIAGNOSTIC_DEST)
BTW：Oracle除了数据库以外，其他的东西做的真难用，比如ERP，还有我们在使用的Peoplesoft，metalink本来就够难用的了，现在出了个新版本，还不如以前。11g的文档也明显不如9i的详细。</description><category>ORACLE</category><category>大话技术</category><pubDate>Thu, 08 Jan 2009 10:34:02 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/01/oracle11g.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=448</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/01/oracle11g.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158876611/5126880</fs:itemid></item><item><title>关于shared_pool_size</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158671404/5126880/1/item.html</link><content:encoded>&lt;p&gt;今天发现一个奇怪的现象，一个数据库的shared_pool_size设置为50m，但是启动后Variable Size非常大&lt;/p&gt;
&lt;pre&gt;Total System Global Area  253199856 bytes
Fixed Size                   742896 bytes
&lt;span style=&quot;color: #ff0000;&quot;&gt;Variable Size             100663296 bytes&lt;/span&gt;
Database Buffers          150994944 bytes
Redo Buffers                 798720 bytes

查询v$sgastat
POOL        NAME                            BYTES
----------- -------------------------- ----------
            fixed_sga                      743856
            buffer_cache                536870912
            log_buffer                     787456
shared pool branch                        1180120
shared pool enqueue                       5673320
shared pool DML lock                      2822816
shared pool KGK heap                        64600
shared pool SEQ S.O.                       475920
shared pool db_files                      1060600
shared pool messages                       624000
shared pool sessions                      8936720
shared pool sql area                        44144
shared pool 1M buffer                     1056768
shared pool processes                     3912000
shared pool db_handles                    3480000
shared pool constraints                    824960
&lt;span style=&quot;color: #ff0000;&quot;&gt;shared pool free memory                 220200968&lt;/span&gt;
shared pool transaction                   5957952
shared pool enqueue_hash                   318960
shared pool FileOpenBlock                16607024
shared pool library cache                 2200360
shared pool miscellaneous                11748488
shared pool PLS non-lib hp                   1304
shared pool channel handle                 780672
shared pool joxs heap init                   4240
shared pool Checkpoint queue             10242560
shared pool dictionary cache              3229952
shared pool qmps connections              1401320
shared pool enqueue resources             2154232
shared pool ksm_file2sga region            370496
shared pool ktlbk state objects           1948360
shared pool KSXR receive buffers          1034000
shared pool character set object           274528
shared pool FileIdentificatonBlock        2247328
shared pool message pool freequeue         771984
shared pool KSXR pending messages que      853952
shared pool Temporary Tables State Ob      775488
shared pool UNDO INFO SEGMENTED ARRAY      649856
shared pool event statistics per sess    37386160
shared pool fixed allocation callback         664
shared pool replication session stats     1004720
large pool  free memory                  33554432&lt;/pre&gt;
&lt;p&gt;发现Oracle会根据参数的设置，当你的shared_pool设置的过小时，会自动预留出一定的空间，我原来设置的processes为3000，所以Oracle根据需要预留了200多M的空间，当我把processes参数降为200，发现shared pool的大小也降下来了。根据v$sgastat，以下几个参数可能影响shared pool大小：&lt;/p&gt;
&lt;p&gt;db_files&lt;br /&gt;
dml_locks&lt;br /&gt;
enqueue_resources&lt;br /&gt;
open_cursors&lt;br /&gt;
open_links&lt;br /&gt;
open_links_per_instance&lt;br /&gt;
processes&lt;br /&gt;
session_cached_cursors&lt;br /&gt;
session_max_open_files&lt;br /&gt;
sessions&lt;br /&gt;
transactions&lt;/p&gt;
&lt;p&gt;但是到了10g，你会发现如果shared_pool_size设置的过小，Oracle将报告shared pool过小，不能启动。但是9i则不然，你甚至可以把shared_pool_size设置为1M，数据库也可以正常启动，实际上Oracle已经为shared pool预留了足够的空间。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2009/01/shared_pool.html/feed</wfw:commentRss><description>今天发现一个奇怪的现象，一个数据库的shared_pool_size设置为50m，但是启动后Variable Size非常大
Total System Global Area  253199856 bytes
Fixed Size                   742896 bytes
Variable Size             100663296 bytes
Database Buffers          150994944 [...]</description><category>ORACLE</category><category>大话技术</category><pubDate>Wed, 07 Jan 2009 20:44:07 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2009/01/shared_pool.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=442</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2009/01/shared_pool.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158671404/5126880</fs:itemid></item><item><title>我的2008</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286543/5126880/1/item.html</link><content:encoded>&lt;p&gt;2008大事记，烦心的事都不说，就说高兴的吧。&lt;/p&gt;
&lt;p&gt;宝贝儿子降生：这是今年最重大的事情了，堪比北京奥运会和神七飞船上天。儿子的出生给我们带来了数不尽的欢乐，数据说话，根据国家统计局的数据，儿子出生后，我和LP吵架的概率下降了33.33%，快乐指数和幸福指数分别上升了19.99%和29.99%，不过也有下降的，比如睡眠指数，我和LP分别下降了1%和30%.&lt;/p&gt;
&lt;p&gt;收房：昨天去把房子给收了，所到之处，保安立正敬礼，售房小姐满脸堆笑，装修公司的人更是恨不得叫你一声大爷，让俺充分的体验了一把上帝的感觉。这也难怪，现在是他求我，以后等到我求他的时候，他就是我大爷了。我这人要求不高，觉得房子质量还行，不歪不斜不裂缝，只要房子里面用的是钢筋水泥不是竹片，我就满足了。整个过程就是交钱拿钥匙走人，下一步开始走上了漫漫装修路。&lt;/p&gt;
&lt;p&gt;工作：今年没出啥大故障，水平也没怎么长进。俺们周围牛人一箩筐，你要不写本书，BLOG订阅数不过万，你都不好意思和别人打招呼。俺好像还达不到这个水平，还是老老实实先做好工作，经济危机了，先保住饭碗。明年领导让我去带一个小团队，我觉得还没做好准备，一是技术上还需要继续提高，二是对管理还没有太多想法，管人比管数据库可麻烦多了。不过，既然领导信任，同事们又说俺EQ高，那咱就别推脱了，反正对自己也是个挑战，现在干嘛都讲究战略转型，我也转型了。&lt;/p&gt;
&lt;p&gt;学习：浙大的研究生还在读，累的够呛，还在咬牙坚持。学东西就不指望了，混个文凭罢了。我现在有两个东西特烂，第一是字烂，小学基础没打好（老爸是见一次骂一次，实在抬不起头啊），先把“阅”，“同意”，“批准”，还有我的名字给练好了，买了一支钢笔，没事的时候开始练字。第二是英语烂，好像从来就没学好过，现在依然不知道如何学好，虽然我也知道英语很有用。&lt;/p&gt;
&lt;p&gt;业余爱好：摄影水平还是那样，不过我的摄影理念是：记录生活，而不是为了炫耀镜头和摄影技术。自行车从买来到现在只骑过两次，想起当初，信誓旦旦要锻炼身体的谎话，难免有些脸红。不过明年公司搬家了，我就可以骑自行车上班了。&lt;/p&gt;
&lt;p&gt;2008年，特别感谢我LP，白天要上班，晚上还要看孩子（我一般都睡得不省人事）。还有我的父母，虽然身体都不好，还要帮我们做饭，看小孩，真的非常辛苦。&lt;/p&gt;
&lt;p&gt;2009年，希望家里老的小的都身体健康，一切平安，我就知足了。不给自己太多目标，知足常乐。&lt;/p&gt;
&lt;p&gt;simple life , enjoy life , it&amp;#8217;s my life !&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/12/2008.html/feed</wfw:commentRss><description>2008大事记，烦心的事都不说，就说高兴的吧。
宝贝儿子降生：这是今年最重大的事情了，堪比北京奥运会和神七飞船上天。儿子的出生给我们带来了数不尽的欢乐，数据说话，根据国家统计局的数据，儿子出生后，我和LP吵架的概率下降了33.33%，快乐指数和幸福指数分别上升了19.99%和29.99%，不过也有下降的，比如睡眠指数，我和LP分别下降了1%和30%.
收房：昨天去把房子给收了，所到之处，保安立正敬礼，售房小姐满脸堆笑，装修公司的人更是恨不得叫你一声大爷，让俺充分的体验了一把上帝的感觉。这也难怪，现在是他求我，以后等到我求他的时候，他就是我大爷了。我这人要求不高，觉得房子质量还行，不歪不斜不裂缝，只要房子里面用的是钢筋水泥不是竹片，我就满足了。整个过程就是交钱拿钥匙走人，下一步开始走上了漫漫装修路。
工作：今年没出啥大故障，水平也没怎么长进。俺们周围牛人一箩筐，你要不写本书，BLOG订阅数不过万，你都不好意思和别人打招呼。俺好像还达不到这个水平，还是老老实实先做好工作，经济危机了，先保住饭碗。明年领导让我去带一个小团队，我觉得还没做好准备，一是技术上还需要继续提高，二是对管理还没有太多想法，管人比管数据库可麻烦多了。不过，既然领导信任，同事们又说俺EQ高，那咱就别推脱了，反正对自己也是个挑战，现在干嘛都讲究战略转型，我也转型了。
学习：浙大的研究生还在读，累的够呛，还在咬牙坚持。学东西就不指望了，混个文凭罢了。我现在有两个东西特烂，第一是字烂，小学基础没打好（老爸是见一次骂一次，实在抬不起头啊），先把“阅”，“同意”，“批准”，还有我的名字给练好了，买了一支钢笔，没事的时候开始练字。第二是英语烂，好像从来就没学好过，现在依然不知道如何学好，虽然我也知道英语很有用。
业余爱好：摄影水平还是那样，不过我的摄影理念是：记录生活，而不是为了炫耀镜头和摄影技术。自行车从买来到现在只骑过两次，想起当初，信誓旦旦要锻炼身体的谎话，难免有些脸红。不过明年公司搬家了，我就可以骑自行车上班了。
2008年，特别感谢我LP，白天要上班，晚上还要看孩子（我一般都睡得不省人事）。还有我的父母，虽然身体都不好，还要帮我们做饭，看小孩，真的非常辛苦。
2009年，希望家里老的小的都身体健康，一切平安，我就知足了。不给自己太多目标，知足常乐。
simple life , enjoy life , it&amp;#8217;s my life !</description><category>一地鸡毛</category><category>it's my life</category><pubDate>Wed, 31 Dec 2008 11:34:38 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/12/2008.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=412</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/12/2008.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286543/5126880</fs:itemid></item><item><title>招聘Oracle MySQL DBA</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286544/5126880/1/item.html</link><content:encoded>&lt;p&gt;招聘Oracle DBA（主要是开发DBA)，MySQL DBA，争取年前把明年的招标都招全了，有兴趣的抓紧了。可以现在面试，年后拿了奖金来上班。今年公司大力招聘，机会难得。&lt;/p&gt;
&lt;p&gt;公司：alibaba.com，什么？不知道？那淘宝，支付宝，总知道吧。&lt;/p&gt;
&lt;p&gt;待遇：主要看水平，我觉得还行，据说也有人降薪都要来的，不知道为什么。&lt;/p&gt;
&lt;p&gt;学习环境：牛人一箩筐，你想找谁单挑都没问题，机器什么的就不说了，你能想象的环境这里都有。&lt;/p&gt;
&lt;p&gt;工作地点：杭州&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oracle开发DBA职位描述：&lt;/strong&gt;&lt;br /&gt;
1.评估，跟踪，支持开发项目&lt;br /&gt;
2.数据库变更管理&lt;br /&gt;
3.schema设计与审核&lt;br /&gt;
4.数据库开发性能优化&lt;br /&gt;
5.开发、测试环境管理与维护&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;岗位要求：&lt;/strong&gt;&lt;br /&gt;
1.精通SQL,PL/SQL&lt;br /&gt;
2.精通SQL Tuning&lt;br /&gt;
3.精通数据库建模&lt;br /&gt;
4.熟悉Oracle基本管理&lt;br /&gt;
5.有开发经验者优先&lt;br /&gt;
6.良好的沟通技能、团队合作能力&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MySQL DBA职位描述：&lt;/strong&gt;&lt;br /&gt;
1.管理MySQL数据库&lt;br /&gt;
2.开发项目支持与优化&lt;br /&gt;
3.MySQL数据库性能优化&lt;br /&gt;
4.高级MySQL数据库特性测试，优化与实践(可选)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;岗位要求：&lt;/strong&gt;&lt;br /&gt;
1.精通SQL&lt;br /&gt;
2.熟悉SQL Tuning&lt;br /&gt;
3.熟悉MySQL数据库架构与管理&lt;br /&gt;
4.熟悉MySQL Replication与cluster的原理&lt;br /&gt;
5.熟悉LINUX操作系统&lt;br /&gt;
6.熟悉shell,perl(掌握一门)&lt;br /&gt;
7.良好的沟通技能、团队合作能力&lt;br /&gt;
8.熟悉unix环境下C语言编程优先&lt;/p&gt;
&lt;div&gt;除了上述的岗位，我们还招三种类型的DBA：&lt;/div&gt;
&lt;div&gt;1.大牛类型（架构师）：精通各种东西，比如：主机，存储，Oracle MySQL internal，UNIX开发等等，只要你够牛，小学没毕业都没关系。&lt;/div&gt;
&lt;div&gt;2.有潜质的人才：我曾经带了一个徒弟，应届毕业生，通过一两年的培养和他自身的努力，现在成了资深的DBA。所以只要你有潜质，肯学习，在我们的环境下，成长为牛人只是个时间问题。&lt;/div&gt;
&lt;div&gt;3.美女DBA：这个是应广大光棍的要求，水平高低没关系。&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;有兴趣的直接发邮件给我：jacky.zhangr@alibaba-inc.com&lt;/strong&gt;&lt;/div&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/12/zhaopin.html/feed</wfw:commentRss><description>招聘Oracle DBA（主要是开发DBA)，MySQL DBA，争取年前把明年的招标都招全了，有兴趣的抓紧了。可以现在面试，年后拿了奖金来上班。今年公司大力招聘，机会难得。
公司：alibaba.com，什么？不知道？那淘宝，支付宝，总知道吧。
待遇：主要看水平，我觉得还行，据说也有人降薪都要来的，不知道为什么。
学习环境：牛人一箩筐，你想找谁单挑都没问题，机器什么的就不说了，你能想象的环境这里都有。
工作地点：杭州
Oracle开发DBA职位描述：
1.评估，跟踪，支持开发项目
2.数据库变更管理
3.schema设计与审核
4.数据库开发性能优化
5.开发、测试环境管理与维护
岗位要求：
1.精通SQL,PL/SQL
2.精通SQL Tuning
3.精通数据库建模
4.熟悉Oracle基本管理
5.有开发经验者优先
6.良好的沟通技能、团队合作能力
MySQL DBA职位描述：
1.管理MySQL数据库
2.开发项目支持与优化
3.MySQL数据库性能优化
4.高级MySQL数据库特性测试，优化与实践(可选)
岗位要求：
1.精通SQL
2.熟悉SQL Tuning
3.熟悉MySQL数据库架构与管理
4.熟悉MySQL Replication与cluster的原理
5.熟悉LINUX操作系统
6.熟悉shell,perl(掌握一门)
7.良好的沟通技能、团队合作能力
8.熟悉unix环境下C语言编程优先
除了上述的岗位，我们还招三种类型的DBA：
1.大牛类型（架构师）：精通各种东西，比如：主机，存储，Oracle MySQL internal，UNIX开发等等，只要你够牛，小学没毕业都没关系。
2.有潜质的人才：我曾经带了一个徒弟，应届毕业生，通过一两年的培养和他自身的努力，现在成了资深的DBA。所以只要你有潜质，肯学习，在我们的环境下，成长为牛人只是个时间问题。
3.美女DBA：这个是应广大光棍的要求，水平高低没关系。

有兴趣的直接发邮件给我：jacky.zhangr@alibaba-inc.com</description><category>招聘</category><category>IT江湖</category><pubDate>Fri, 26 Dec 2008 17:17:13 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/12/zhaopin.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=401</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/12/zhaopin.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286544/5126880</fs:itemid></item><item><title>宏村齐云山</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286545/5126880/1/item.html</link><content:encoded>&lt;p&gt;周末去了宏村，齐云山，拍了一些照片。&lt;/p&gt;
&lt;p&gt;狗头怎么照都不得劲，标头手动对焦很容易糊，看来还得入个趁手的头，锁定腾龙的17-50mm F2.8，还有一直念念不忘的适马30mm F1.4&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;Me&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095628584/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3156/3095628584_c59955f0b1.jpg&quot; alt=&quot;Me&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;宏村&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095581168/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3087/3095581168_b3f8d88a3d.jpg&quot; alt=&quot;宏村&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;宏村&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095581186/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3294/3095581186_9c0bca031c.jpg&quot; alt=&quot;宏村&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;宏村&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095581184/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3275/3095581184_cf8faebec8.jpg&quot; alt=&quot;宏村&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;齐云山&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095628570/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3062/3095628570_9ae9e94971.jpg&quot; alt=&quot;齐云山&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;齐云山&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095628566/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3027/3095628566_ea5cdfd303.jpg&quot; alt=&quot;齐云山&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;老街随拍&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095581154/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3255/3095581154_fb83a8c29d.jpg&quot; alt=&quot;老街随拍&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;tt-flickr tt-flickr-Medium&quot; title=&quot;晒太阳的猫猫&quot; href=&quot;http://www.flickr.com/photos/hellodba/3095581162/&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://farm4.static.flickr.com/3284/3095581162_530ed6be2a.jpg&quot; alt=&quot;晒太阳的猫猫&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/12/hongcun.html/feed</wfw:commentRss><description>周末去了宏村，齐云山，拍了一些照片。
狗头怎么照都不得劲，标头手动对焦很容易糊，看来还得入个趁手的头，锁定腾龙的17-50mm F2.8，还有一直念念不忘的适马30mm F1.4</description><category>摄影</category><category>边走边拍</category><pubDate>Tue, 09 Dec 2008 22:57:01 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/12/hongcun.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=383</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/12/hongcun.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286545/5126880</fs:itemid></item><item><title>高手犯的低级错误</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286546/5126880/1/item.html</link><content:encoded>&lt;p&gt;昨天在做一些数据处理的时候，一不小心把归档空间给撑爆了，按道理这种低级错误是不应该发生的，第一磁盘空间我们有监控，到达一定的阀值会短信报警。第二归档路径我设置了alternate路径，第一个归档路径不可用，会切换到第二个路径。&lt;/p&gt;
&lt;p&gt;但是事情还是发生了，磁盘监控的频率太低，导致报警还没有发出，磁盘就爆了。alternate路径没有起作用，可能和我们的设置有关（reopen=60,max_failure=5)，这样可能要5分钟以后才可以切换，可是5分钟对于一个繁忙的系统显然太漫长了，最终导致的结果是系统挂起了5分钟左右。今天让监控部门调整了监控的频率，并且修改了log_archive_dest的参数为reopen=5,max_failure=3.&lt;/p&gt;
&lt;p&gt;这个事情让我想起了《东成西就》里面的王重阳，闭关修炼数十年，终于神功练成，不巧刚出关就被欧阳峰一靴子给砸死了。证明了一个道理：高手一般都不是死在惊涛骇浪的大海里或是威严险峻的山峰上，高手都栽在小河沟里或小土堆上。我今天就在栽在一个小水坑里，虽然我还不是高手。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/12/oracle_archive_error.html/feed</wfw:commentRss><description>昨天在做一些数据处理的时候，一不小心把归档空间给撑爆了，按道理这种低级错误是不应该发生的，第一磁盘空间我们有监控，到达一定的阀值会短信报警。第二归档路径我设置了alternate路径，第一个归档路径不可用，会切换到第二个路径。
但是事情还是发生了，磁盘监控的频率太低，导致报警还没有发出，磁盘就爆了。alternate路径没有起作用，可能和我们的设置有关（reopen=60,max_failure=5)，这样可能要5分钟以后才可以切换，可是5分钟对于一个繁忙的系统显然太漫长了，最终导致的结果是系统挂起了5分钟左右。今天让监控部门调整了监控的频率，并且修改了log_archive_dest的参数为reopen=5,max_failure=3.
这个事情让我想起了《东成西就》里面的王重阳，闭关修炼数十年，终于神功练成，不巧刚出关就被欧阳峰一靴子给砸死了。证明了一个道理：高手一般都不是死在惊涛骇浪的大海里或是威严险峻的山峰上，高手都栽在小河沟里或小土堆上。我今天就在栽在一个小水坑里，虽然我还不是高手。</description><category>ORACLE</category><category>大话技术</category><pubDate>Wed, 03 Dec 2008 10:38:02 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/12/oracle_archive_error.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=379</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/12/oracle_archive_error.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286546/5126880</fs:itemid></item><item><title>Oracle index structure</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286547/5126880/1/item.html</link><content:encoded>&lt;p&gt;今天早上有人问我，索引中相同的key是不是按照rowid排序的？我们都知道索引中是按照key的值来进行排序的，但是对于相同的key是如何排序的，我并不是很确定，所以做了一些测试。&lt;/p&gt;
&lt;p&gt;构造一张表，每个key都在不同的block上，方便测试。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;create table test (id number,name varchar2(10));&lt;br /&gt;create index test_id_ind on test(id);&lt;br /&gt;insert into test values(1,'block1');&lt;br /&gt;insert into test values(2,'block1');&lt;br /&gt;insert into test values(3,'block1');&lt;br /&gt;&lt;br /&gt;alter table test minimize records_per_block;&lt;br /&gt;&lt;br /&gt;insert into test values(1,'block2');&lt;br /&gt;insert into test values(2,'block2');&lt;br /&gt;insert into test values(3,'block2');&lt;br /&gt;insert into test values(1,'block3');&lt;br /&gt;insert into test values(2,'block3');&lt;br /&gt;insert into test values(3,'block3');&lt;br /&gt;&lt;br /&gt;select DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) block,id from test;&lt;br /&gt;&lt;br /&gt;BLOCK         ID&lt;br /&gt;---------- ----------&lt;br /&gt;80698          1&lt;br /&gt;80698          2&lt;br /&gt;80698          3&lt;br /&gt;80699          1&lt;br /&gt;80699          1&lt;br /&gt;80699          3&lt;br /&gt;80700          1&lt;br /&gt;80700          2&lt;br /&gt;80700          3&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;如何找到leaf block对应的file#和block#，通过object_id dump出索引的结构信息&lt;/p&gt;
&lt;p&gt;ALTER SESSION SET EVENTS  &amp;#8216;immediate trace name TREEDUMP level object_id&amp;#8217;;&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8211; begin tree dump&lt;br /&gt;
leaf: 0&amp;#215;4013cfa&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;67190010&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt; &lt;/span&gt;(0: nrow: 9 rrow: 9)&lt;br /&gt;
&amp;#8212;&amp;#8211; end tree dump&lt;/p&gt;
&lt;p&gt;因为索引很小，只有一个block即leaf block&lt;/p&gt;
&lt;p&gt;select dbms_utility.data_block_address_file(67190010) file#,&lt;br /&gt;
dbms_utility.data_block_address_block(67190010) block# from dual&lt;/p&gt;
&lt;p&gt;FILE#     BLOCK#&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;- &amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
16      81146&lt;/p&gt;
&lt;p&gt;alter system dump datafile 16 block 81146;&lt;/p&gt;
&lt;p&gt;row#0[8020] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 00&lt;/span&gt;&lt;br /&gt;
row#1[7984] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 00&lt;br /&gt;
row#2[7948] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 00&lt;br /&gt;
row#3[8008] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 01&lt;br /&gt;
row#4[7972] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 01&lt;br /&gt;
row#5[7936] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 01&lt;br /&gt;
row#6[7996] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 02&lt;br /&gt;
row#7[7960] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 02&lt;br /&gt;
row#8[7924] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 02&lt;/p&gt;
&lt;p&gt;我们可以看到是按照key和rowid排序的，我们再做一个update操作，看看效果如何。&lt;/p&gt;
&lt;p&gt;update test set id=1 where id=2 and name=&amp;#8217;block2&amp;#8242;;&lt;/p&gt;
&lt;p&gt;row#0[8020] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 00&lt;br /&gt;
row#1[7984] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 00&lt;/span&gt;&lt;br /&gt;
row#2[7912] flag: &amp;#8212;&amp;#8211;, lock: 2&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 01&lt;/span&gt;&lt;br /&gt;
row#3[7948] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 02&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 00&lt;br /&gt;
row#4[8008] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 01&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;row#5[7972] flag: &amp;#8212;D-, lock: 2&lt;/span&gt;&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 01&lt;br /&gt;
row#6[7936] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 03&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 01&lt;br /&gt;
row#7[7996] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3a 00 02&lt;br /&gt;
row#8[7960] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3b 00 02&lt;br /&gt;
row#9[7924] flag: &amp;#8212;&amp;#8211;, lock: 0&lt;br /&gt;
col 0; len 2; (2):  c1 04&lt;br /&gt;
col 1; len 6; (6):  04 01 3b 3c 00 02&lt;/p&gt;
&lt;p&gt;可以看到原来的一行被删除，并在适当的位置新插入了一条（注意红色部分），这样就证明索引中相同的key是按照rowid排序的，后来在文档中也找到了这个问题的证明：&lt;span style=&quot;color: #ff0000;&quot;&gt;Multiple rows with identical values are sorted in ascending order by rowid.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Oracle这样做会带来什么好处？我们理所当然的会想到，对于相同的key又在同一个block中的column，那么只需要访问这个block一次就可以了。而不需要每行访问block一次，这样就可以在某些情况下降低逻辑读，打开autotrace很容易得到证明。&lt;/p&gt;
&lt;p&gt;后来在网上搜了一下，才发现七公早就对这个问题做过测试了，非常详细。有兴趣的可以去看：&lt;a title=&quot;Permanent Link to &amp;quot;non-unique index branch and leaf block structure&amp;quot;&quot; rel=&quot;bookmark&quot; href=&quot;http://www.orawh.com/134.html&quot;&gt;non-unique index branch and  leaf block structure&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/11/oracle_index.html/feed</wfw:commentRss><description>今天早上有人问我，索引中相同的key是不是按照rowid排序的？我们都知道索引中是按照key的值来进行排序的，但是对于相同的key是如何排序的，我并不是很确定，所以做了一些测试。
构造一张表，每个key都在不同的block上，方便测试。
create table test (id number,name varchar2(10));create index test_id_ind on test(id);insert into test values(1,'block1');insert into test values(2,'block1');insert into test values(3,'block1');alter table test minimize records_per_block;insert into test values(1,'block2');insert into test values(2,'block2');insert into test values(3,'block2');insert into test values(1,'block3');insert into test values(2,'block3');insert into test values(3,'block3');select DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) block,id from test;BLOCK         ID---------- ----------80698          180698          280698          380699          180699          180699          380700          180700          280700          [...]</description><category>ORACLE</category><category>大话技术</category><pubDate>Thu, 27 Nov 2008 15:12:48 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/11/oracle_index.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=359</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/11/oracle_index.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286547/5126880</fs:itemid></item><item><title>Oracle dump命令</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286548/5126880/1/item.html</link><content:encoded>&lt;p&gt;Oracle常用dump命令，备查。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-356&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;一.Memory Dumps&lt;/p&gt;
&lt;p&gt;1).Global Area&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name global_area level n’;&lt;br /&gt;
1 包含PGA&lt;br /&gt;
2 包含SGA&lt;br /&gt;
4 包含UGA&lt;br /&gt;
8 包含indrect memory&lt;/p&gt;
&lt;p&gt;2).Library Cache&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name library_cache level n’;&lt;br /&gt;
1 library cache统计信息&lt;br /&gt;
2 包含hash table histogram&lt;br /&gt;
3 包含object handle&lt;br /&gt;
4 包含object结构（Heap 0）&lt;/p&gt;
&lt;p&gt;3).Row Cache&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name row_cache level n’;&lt;br /&gt;
1 row cache统计信息&lt;br /&gt;
2 包含hash table histogram&lt;br /&gt;
8 包含object结构&lt;/p&gt;
&lt;p&gt;4).Buffers&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name buffers level n’;&lt;br /&gt;
1 buffer header&lt;br /&gt;
2 level 1 + block header&lt;br /&gt;
3 level 2 + block contents&lt;br /&gt;
4 level 1 + hash chain&lt;br /&gt;
5 level 2 + hash chain&lt;br /&gt;
6 level 3 + hash chain&lt;br /&gt;
8 level 4 + users/waiters&lt;br /&gt;
9 level 5 + users/waiters&lt;br /&gt;
10 level 6 + users/waiters&lt;/p&gt;
&lt;p&gt;5).Buffer&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name buffer level n’;&lt;br /&gt;
n为某个指定block的rdba，该命令可以转储某个block在buffer中的所有版本。&lt;/p&gt;
&lt;p&gt;6).Heap&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name heapdump level level’;&lt;br /&gt;
1 PGA摘要&lt;br /&gt;
2 SGA摘要&lt;br /&gt;
4 UGA摘要&lt;br /&gt;
8 Current call(CGA)摘要&lt;br /&gt;
16 User call(CGA)摘要&lt;br /&gt;
32 Large call(LGA)摘要&lt;br /&gt;
1025 PGA内容&lt;br /&gt;
2050 SGA内容&lt;br /&gt;
4100 UGA内容&lt;br /&gt;
8200 Current call内容&lt;br /&gt;
16400 User call内容&lt;br /&gt;
32800 Large call内容&lt;/p&gt;
&lt;p&gt;7).Sub Heap&lt;br /&gt;
Oracle 9.0.1版本之前&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name heapdump_addr level n’;&lt;br /&gt;
若n为subheap的地址，转储的是subheap的摘要信息&lt;br /&gt;
若n为subheap的地址+1，转储的则是subheap的内容&lt;br /&gt;
Oracle 9.2.0版本之后&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name heapdump_addr level n, addr m’;&lt;br /&gt;
其中m为subheap的地址&lt;br /&gt;
n为1转储subheap的摘要，n为2转储subheap的内容&lt;/p&gt;
&lt;p&gt;8).Process State&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name processstate level n’;&lt;/p&gt;
&lt;p&gt;9).System State&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name systemstate level n’;&lt;/p&gt;
&lt;p&gt;10).Error State&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name errorstack level n’;&lt;br /&gt;
0 Error stack&lt;br /&gt;
1 level 0 + function call stack&lt;br /&gt;
2 level 1 + process state&lt;br /&gt;
3 level 2 + context area&lt;br /&gt;
11).Hang Analysis&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name hanganalyze level n’;&lt;/p&gt;
&lt;p&gt;12).Work Area&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name workareatab_dump level n’;&lt;br /&gt;
1 SGA信息&lt;br /&gt;
2 Workarea Table摘要信息&lt;br /&gt;
3 Workarea Table详细信息&lt;/p&gt;
&lt;p&gt;13).Latches&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name latches level n’;&lt;br /&gt;
1 latch信息&lt;br /&gt;
2 统计信息&lt;/p&gt;
&lt;p&gt;14).Events&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name events level n’;&lt;br /&gt;
1 session&lt;br /&gt;
2 process&lt;br /&gt;
3 system&lt;/p&gt;
&lt;p&gt;15).Locks&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name locks level n’;&lt;/p&gt;
&lt;p&gt;16).Shared Server Process&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name shared_server_state level n’;&lt;br /&gt;
n取值为1~14&lt;/p&gt;
&lt;p&gt;17).Background Messages&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name bg_messages level n’;&lt;br /&gt;
n为pid+1&lt;/p&gt;
&lt;p&gt;二.File Dumps&lt;/p&gt;
&lt;p&gt;1).Block&lt;br /&gt;
Oracle 7之前&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name blockdump level n’;&lt;br /&gt;
n为block的rdba&lt;br /&gt;
Oracle8以后&lt;br /&gt;
ALTER SYSTEM DUMP DATAFILE file# BLOCK block#;&lt;br /&gt;
ALTER SYSTEM DUMP DATAFILE file#&lt;br /&gt;
BLOCK MIN minimum_block#&lt;br /&gt;
BLOCK MAX maximum_block#;&lt;/p&gt;
&lt;p&gt;2).Tree Dump&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name treedump level n’;&lt;br /&gt;
n为object_id&lt;/p&gt;
&lt;p&gt;3).Undo Segment Header&lt;br /&gt;
ALTER SYSTEM DUMP UNDO_HEADER ’segment_name’;&lt;/p&gt;
&lt;p&gt;4).Undo for a Transaction&lt;br /&gt;
ALTER SYSTEM DUMP UNDO BLOCK ’segment_name’ XID xidusn xidslot xidsqn;&lt;/p&gt;
&lt;p&gt;5).File Header&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name file_hdrs level n’;&lt;br /&gt;
1 控制文件中的文件头信息&lt;br /&gt;
2 level 1 + 文件头信息&lt;br /&gt;
3 level 2 + 数据文件头信息&lt;br /&gt;
10 level 3&lt;/p&gt;
&lt;p&gt;6).Control file&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name controlf level n’;&lt;br /&gt;
1 文件头信息&lt;br /&gt;
2 level 1 + 数据库信息 + 检查点信息&lt;br /&gt;
3 level 2 + 可重用节信息&lt;br /&gt;
10 level 3&lt;/p&gt;
&lt;p&gt;7).Redo log Header&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name redohdr level n’;&lt;br /&gt;
1 控制文件中的redo log信息&lt;br /&gt;
2 level 1 + 文件头信息&lt;br /&gt;
3 level 2 + 日志文件头信息&lt;br /&gt;
10 level 3&lt;/p&gt;
&lt;p&gt;8).Redo log&lt;br /&gt;
ALTER SYSTEM DUMP LOGFILE ‘FileName’;&lt;br /&gt;
ALTER SYSTEM DUMP LOGFILE ‘FileName’&lt;br /&gt;
SCN MIN MinimumSCN&lt;br /&gt;
SCN MAX MaximumSCN&lt;br /&gt;
TIME MIN MinimumTime&lt;br /&gt;
TIME MAX MaximumTime&lt;br /&gt;
LAYER Layer&lt;br /&gt;
OPCODE Opcode&lt;br /&gt;
DBA MIN FileNumber . BlockNumber&lt;br /&gt;
DBA MAX FileNumber . BlockNumber&lt;br /&gt;
RBA MIN LogFileSequenceNumber . BlockNumber&lt;br /&gt;
RBA MAX LogFileSequenceNumber . BlockNumber;&lt;br /&gt;
其中time = (((((yyyy - 1988)) * 12 + mm - 1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;&lt;/p&gt;
&lt;p&gt;9).Loghist&lt;br /&gt;
ALTER SESSION SET EVENTS ‘immediate trace name loghist level n’;&lt;br /&gt;
1 dump控制文件中最早和最迟的日志历史项&lt;br /&gt;
1 dump 2^n个日志历史项&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/11/oracle_dump.html/feed</wfw:commentRss><description>Oracle常用dump命令，备查。

一.Memory Dumps
1).Global Area
ALTER SESSION SET EVENTS ‘immediate trace name global_area level n’;
1 包含PGA
2 包含SGA
4 包含UGA
8 包含indrect memory
2).Library Cache
ALTER SESSION SET EVENTS ‘immediate trace name library_cache level n’;
1 library cache统计信息
2 包含hash table histogram
3 包含object handle
4 包含object结构（Heap 0）
3).Row Cache
ALTER SESSION SET EVENTS ‘immediate trace name row_cache level n’;
1 row cache统计信息
2 包含hash table histogram
8 包含object结构
4).Buffers
ALTER SESSION SET EVENTS [...]</description><category>ORACLE</category><category>大话技术</category><pubDate>Thu, 27 Nov 2008 13:01:43 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/11/oracle_dump.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=356</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/11/oracle_dump.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286548/5126880</fs:itemid></item><item><title>大话存储技术</title><link>http://item.feedsky.com/~feedsky/hellodba/~7018878/158286549/5126880/1/item.html</link><content:encoded>&lt;p&gt;今天参加了一个EMC技术的讲座，主要内容是介绍EMC的一些新产品，实质内容不多，大部分是忽悠的。只有两个信息点值得关注：&lt;/p&gt;
&lt;p&gt;1.固态硬盘(SSD)：数据上看性能非常好，IOPS和响应时间将不再是问题，EMC的测试表明替换SSD后，存储的整体性能提升至少在十倍以上（IO的类型和cache的命中率都对这个数据有影响）。关于可靠性的问题，虽然每个厂家的技术有些差异，但是基本上都宣称解决了这个问题。EMC的供货商是STEC（一家以色列公司，专门研发高可靠性的固态硬盘），EMC对外宣称每个位至少可以提供10万次以上的读写访问。而且还采用了两种额外的技术保证可靠性，第一，冗余容量，73G和146G的硬盘实际容量为128G和256G，这样可以保证硬盘不会被写满，并且可以提供容量替换的功能。第二，IO分散技术，同一个数据，每次读写后的位置是不同的，这样就避免出现经常写某个位置而造成的损坏。流云同学妄图通过自己写的小程序对SSD的同一个位置进行频繁的写操作，以此来验证SSD的可靠性的方法，恐怕不太靠谱，因为在底层SSD会自动做IO分散。&lt;/p&gt;
&lt;p&gt;这个技术绝对属于激进型的变革，一定会导致存储技术的巨大革新，可能某些企业会死掉，比如传统的磁介质的厂商，也可能有很多企业会因为这个技术而崛起。个人认为这个技术的门槛甚至比传统的磁介质存储要低，对于国内的厂商来说是个巨大的机会。稍早些时候，我们已经拿到了华为的SSD硬盘，并进行了测试，虽然性能比intel逊色，但是还是要支持国产厂商，只有他们有产品，EMC也许才能把价格降下来。（这里要BS那些动不动就对国产设备说三道四的人，如果没有华为这些厂家，现在的很多设备估计都要卖到天价。有些扯远了）。&lt;/p&gt;
&lt;p&gt;EMC现在的DMX上可以支持SSD和FC混插，CX4也可以支持SSD（但是最多只能插16块，因为如果超过16块，SSD的价格可能比整个CX4还贵）。但是我认为这种混插的方式一定是个临时性的解决方案，随着SSD的技术不断成熟，价格不断降低，存储的架构一定会发生巨大的变化。如果未来SSD的容量不再是问题，也许几块SSD就可以满足我们性能的需要，完全不需要DMX这么复杂的一个存储架构来支持，所以我觉得DMX上混插SSD，仅仅是EMC对于现在已经有DMX，又对性能有高要求的用户提供了一个临时的解决方案。&lt;/p&gt;
&lt;p&gt;2.云存储：EMC的云存储产品Atmos，它是一个包含了硬件设备，软件产品的一个云存储的解决方案，对于这个产品本身我们不用太多去关注。但是我们有必要了解下什么是云计算，云存储。&lt;/p&gt;
&lt;p&gt;云计算顾名思义是云里雾里的计算，大概的意思就是在云里雾里，你什么也看不清，云会给你想要的一切，包括计算能力和存储空间，你不再需要知道云里雾里到底是怎么实现的。就象应用的架构经历从mainframe，C/S到现在的B/S模式。云计算也是分布式处理，并行处理，网格计算发展的产物。它透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序，再交由多台服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。通过云计算技术，网络服务提供者可以在数秒之内，处理数以千万计甚至亿计的信息，达到和”超级计算机”同样强大的网络服务。&lt;/p&gt;
&lt;p&gt;云存储是在云计算概念上延伸和发展出来的一个新的概念，是指通过集群应用、网格技术或分布式文件系统等功能，将网络中大量各种不同类型的存储设备通过 应用软件集合起来协同工作，共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时，云计算系统中就需要配置大量的存储设备，那么云计算系统就转变成为一个云存储系统，所以云存储是 一个以数据存储和管理为核心的云计算系统。说白了，云存储就是偏向于提供存储服务的云计算系统，或者是配置了大容量存储空间的云计算系统。&lt;/p&gt;
&lt;p&gt;既然云计算是由google提出来的，google是如何实现的呢？请看google的三件宝：&lt;/p&gt;
&lt;p&gt;1.GFS（Google File System）。一个分布式文件系统，隐藏下层负载均衡，冗余复制等细节，对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它 进行了特别优化，包括：超大文件的访问，读操作比例远超过写操作，PC机极易发生故障造成节点失效等。GFS把文件分成64MB的块，分布在集群的机器 上，使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个Master节点，根据文件索引，找寻文件块。&lt;br /&gt;
2.MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分 解成中间的Key/Value对，Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给系统，下层设施把Map和 Reduce操作分布在集群上运行，并把结果存储在GFS上。&lt;br /&gt;
3.BigTable。一个大型的分布式数据库，这个数据库不是关系式的数据库。像它的名字一样，就是一个巨大的表格，用来存储结构化的数据。&lt;/p&gt;
&lt;p&gt;今天上课时，有人提到了hadoop，它到底是什么？hadoop用JAVA实现了MapReduce和一个分布式的文件系统(HDFS)，我们也可以把它看成是一个云计算或者云存储系统，目前Yahoo在支持Hadoop.&lt;/p&gt;
&lt;p&gt;说了半天，估计大家还是在云里雾里，其实我也不怎么明白。这篇文章属于山寨货，是从网上四处抄来的。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.hellodba.net/2008/11/cloud_storage.html/feed</wfw:commentRss><description>今天参加了一个EMC技术的讲座，主要内容是介绍EMC的一些新产品，实质内容不多，大部分是忽悠的。只有两个信息点值得关注：
1.固态硬盘(SSD)：数据上看性能非常好，IOPS和响应时间将不再是问题，EMC的测试表明替换SSD后，存储的整体性能提升至少在十倍以上（IO的类型和cache的命中率都对这个数据有影响）。关于可靠性的问题，虽然每个厂家的技术有些差异，但是基本上都宣称解决了这个问题。EMC的供货商是STEC（一家以色列公司，专门研发高可靠性的固态硬盘），EMC对外宣称每个位至少可以提供10万次以上的读写访问。而且还采用了两种额外的技术保证可靠性，第一，冗余容量，73G和146G的硬盘实际容量为128G和256G，这样可以保证硬盘不会被写满，并且可以提供容量替换的功能。第二，IO分散技术，同一个数据，每次读写后的位置是不同的，这样就避免出现经常写某个位置而造成的损坏。流云同学妄图通过自己写的小程序对SSD的同一个位置进行频繁的写操作，以此来验证SSD的可靠性的方法，恐怕不太靠谱，因为在底层SSD会自动做IO分散。
这个技术绝对属于激进型的变革，一定会导致存储技术的巨大革新，可能某些企业会死掉，比如传统的磁介质的厂商，也可能有很多企业会因为这个技术而崛起。个人认为这个技术的门槛甚至比传统的磁介质存储要低，对于国内的厂商来说是个巨大的机会。稍早些时候，我们已经拿到了华为的SSD硬盘，并进行了测试，虽然性能比intel逊色，但是还是要支持国产厂商，只有他们有产品，EMC也许才能把价格降下来。（这里要BS那些动不动就对国产设备说三道四的人，如果没有华为这些厂家，现在的很多设备估计都要卖到天价。有些扯远了）。
EMC现在的DMX上可以支持SSD和FC混插，CX4也可以支持SSD（但是最多只能插16块，因为如果超过16块，SSD的价格可能比整个CX4还贵）。但是我认为这种混插的方式一定是个临时性的解决方案，随着SSD的技术不断成熟，价格不断降低，存储的架构一定会发生巨大的变化。如果未来SSD的容量不再是问题，也许几块SSD就可以满足我们性能的需要，完全不需要DMX这么复杂的一个存储架构来支持，所以我觉得DMX上混插SSD，仅仅是EMC对于现在已经有DMX，又对性能有高要求的用户提供了一个临时的解决方案。
2.云存储：EMC的云存储产品Atmos，它是一个包含了硬件设备，软件产品的一个云存储的解决方案，对于这个产品本身我们不用太多去关注。但是我们有必要了解下什么是云计算，云存储。
云计算顾名思义是云里雾里的计算，大概的意思就是在云里雾里，你什么也看不清，云会给你想要的一切，包括计算能力和存储空间，你不再需要知道云里雾里到底是怎么实现的。就象应用的架构经历从mainframe，C/S到现在的B/S模式。云计算也是分布式处理，并行处理，网格计算发展的产物。它透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序，再交由多台服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。通过云计算技术，网络服务提供者可以在数秒之内，处理数以千万计甚至亿计的信息，达到和”超级计算机”同样强大的网络服务。
云存储是在云计算概念上延伸和发展出来的一个新的概念，是指通过集群应用、网格技术或分布式文件系统等功能，将网络中大量各种不同类型的存储设备通过 应用软件集合起来协同工作，共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时，云计算系统中就需要配置大量的存储设备，那么云计算系统就转变成为一个云存储系统，所以云存储是 一个以数据存储和管理为核心的云计算系统。说白了，云存储就是偏向于提供存储服务的云计算系统，或者是配置了大容量存储空间的云计算系统。
既然云计算是由google提出来的，google是如何实现的呢？请看google的三件宝：
1.GFS（Google File System）。一个分布式文件系统，隐藏下层负载均衡，冗余复制等细节，对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它 进行了特别优化，包括：超大文件的访问，读操作比例远超过写操作，PC机极易发生故障造成节点失效等。GFS把文件分成64MB的块，分布在集群的机器 上，使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个Master节点，根据文件索引，找寻文件块。
2.MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分 解成中间的Key/Value对，Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给系统，下层设施把Map和 Reduce操作分布在集群上运行，并把结果存储在GFS上。
3.BigTable。一个大型的分布式数据库，这个数据库不是关系式的数据库。像它的名字一样，就是一个巨大的表格，用来存储结构化的数据。
今天上课时，有人提到了hadoop，它到底是什么？hadoop用JAVA实现了MapReduce和一个分布式的文件系统(HDFS)，我们也可以把它看成是一个云计算或者云存储系统，目前Yahoo在支持Hadoop.
说了半天，估计大家还是在云里雾里，其实我也不怎么明白。这篇文章属于山寨货，是从网上四处抄来的。</description><category>云计算</category><category>存储</category><category>云存储</category><category>大话技术</category><category>IT江湖</category><pubDate>Tue, 25 Nov 2008 23:39:37 +0800</pubDate><author>jacky</author><comments>http://www.hellodba.net/2008/11/cloud_storage.html#comments</comments><guid isPermaLink="false">http://www.hellodba.net/?p=336</guid><dc:creator>jacky</dc:creator><fs:srclink>http://www.hellodba.net/2008/11/cloud_storage.html</fs:srclink><fs:srcfeed>http://www.hellodba.net/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/hellodba/~7018878/158286549/5126880</fs:itemid></item></channel></rss>