<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://rss.ningoo.net/styles/feedsky1.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:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://rss.ningoo.net" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/NinGoo" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 03 Jul 2008 02:13:44 GMT</lastBuildDate><title>NinGoo@Net</title><description>A guy focuses on Oracle,Data warehouse &amp; Business Intelligence</description><image><url>http://www.feedsky.com/feed/NinGoo/sc/gif</url><title>NinGoo@Net</title><link>http://www.ningoo.net</link></image><link>http://www.ningoo.net</link><atom:link href="http://www.ningoo.net/feed/" rel="self" type="application/rss+xml"></atom:link><language>en</language><pubDate>Thu, 03 Jul 2008 06:44:53 GMT</pubDate><dc:date>2008-07-03T06:44:53Z</dc:date><dc:language>en</dc:language><item><title>AIX平台升级到Oracle10.2.0.4的几个问题</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/89683136/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;最近将AIX5306上一个Oracle从9.2.0.6升级到了&lt;strong&gt;10.2.0.4&lt;/strong&gt;，虽然最终升级顺利完成，不过还是碰到了几个小问题，在这里记录一下。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. plan_table的问题&lt;/strong&gt;&lt;br /&gt;
如果在9i的sys用户下手动执行过&lt;strong&gt;$ORACLE_HOME/rdbms/admin/utlxplan.sql&lt;/strong&gt;脚本建立plan_table，则升级前必须删除。否则执行完升级脚本&lt;strong&gt;catupgrd.sql&lt;/strong&gt;会发现Oracle Database Packages and Types组件一直是invalid的，并且升级脚本的log中有如下错误：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
118/44   PL/SQL: ORA-00904: &amp;#8220;OTHER_XML&amp;#8221;: invalid identifier&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;遇到该错误后，删除plan_table重建也还来得及：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
@?/rdbms/admin/utlxplan&lt;br /&gt;
@?/rdbms/admin/prvtspao.plb&lt;br /&gt;
@?/rdbms/admin/utlrp&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
2.lock_sga的问题&lt;/strong&gt;&lt;br /&gt;
Oracle10.2.0.4在AIX平台分配共享内存的机制有了一点变化。原来9i使用lock_sga=true是正常的，但是10.2.0.4则无法启动instance，报错：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
SQL&gt; startup&lt;br /&gt;
ORA-27126: unable to lock shared memory segment in core&lt;br /&gt;
IBM AIX RISC System/6000 Error: 1: Not owner&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;看起来像是权限问题，但是即使给Oracle用户加system组也没有用。后来Oracle解释说需要给Oracle用户赋予两个capability：&lt;strong&gt;CAP_BYPASS_RAC_VMM&lt;/strong&gt;和&lt;strong&gt;CAP_PROPAGATE&lt;/strong&gt;，但这两个capabilities是采用大页内存时才需要设置的，这样说10.2.0.4如果lock_sga的话，默认是要采用大页内存的。当然，大页内存的使用还需要os上设置相关参数的，如果os没有设置，oracle应该还是要采用4k的内存页。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
#chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle&lt;br /&gt;
#lsuser -a capabilities oracle&lt;br /&gt;
oracle capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.dba_segments和dba_free_space空间计算不一致的问题&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select sum(bytes)/1024/1024/1024 from dba_data_files;&lt;/p&gt;
&lt;p&gt;SUM(BYTES)/1024/1024/1024&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
468.554688&lt;/p&gt;
&lt;p&gt;select sum(bytes)/1024/1024/1024 from dba_free_space;&lt;/p&gt;
&lt;p&gt;SUM(BYTES)/1024/1024/1024&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
63.3510742&lt;/p&gt;
&lt;p&gt;select sum(bytes)/1024/1024/1024 from dba_segments;&lt;/p&gt;
&lt;p&gt;SUM(BYTES)/1024/1024/1024&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
381.477112&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;显然，468.554688-63.3510742=405.203614，这比从dba_segments算出来的总占用空间381.477112大了20多G，并且这个差距在不断拉大，每天大概相差4G左右。这个问题还在跟Oracle扯皮，不知道他们是否会承认这个是bug。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/aix_encounters_tns_12531.html&quot; title=&quot;AIX下遭遇TNS-12531&quot;&gt;AIX下遭遇TNS-12531&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_asm_discovery_disk.html&quot; title=&quot;ASM如何识别磁盘&quot;&gt;ASM如何识别磁盘&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html&quot; title=&quot;Oracle数据库如何识别ASM磁盘组&quot;&gt;Oracle数据库如何识别ASM磁盘组&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html&quot; title=&quot;Oracle10gR2 Logical Standby(六)逻辑备库的Failover&quot;&gt;Oracle10gR2 Logical Standby(六)逻辑备库的Failover&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_switchover.html&quot; title=&quot;Oracle10gR2 Logical Standby(五)逻辑备库的Switchover&quot;&gt;Oracle10gR2 Logical Standby(五)逻辑备库的Switchover&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_convert_to_logical_standby_database.html&quot; title=&quot;Oracle10gR2 Logical Standby(四)转换逻辑备库的过程&quot;&gt;Oracle10gR2 Logical Standby(四)转换逻辑备库的过程&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html'&gt;http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html&amp;title=AIX%E5%B9%B3%E5%8F%B0%E5%8D%87%E7%BA%A7%E5%88%B0Oracle10.2.0.4%E7%9A%84%E5%87%A0%E4%B8%AA%E9%97%AE%E9%A2%98&amp;tags=AIX, oracle, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/55fd8b328200c4cda917dd1e1699324c&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/55fd8b328200c4cda917dd1e1699324c/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 最近将AIX5306上一个Oracle从9.2.0.6升级到了10.2.0.4，虽然最终升级顺利完成，不过还是碰到了几个小问题，在这里记录一下。
1. plan_table的问题
如果在9i的sys用户下手动执...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/55fd8b328200c4cda917dd1e1699324c&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/55fd8b328200c4cda917dd1e1699324c/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>AIX</category><category>oracle</category><category>数据库</category><pubDate>Thu, 03 Jul 2008 10:13:44 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=386</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/89683136/1237504</fs:itemid></item><item><title>MySQL命令行的几个用法</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236612/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;MySQL的客户端命令行工具，有很多方便使用者的特性，某些方面甚至可以说比Oracle的&lt;a href=&quot;http://www.ningoo.net/html/tag/sqlplus&quot;&gt;sqlplus&lt;/a&gt;更加人性化。当然从整体来说，还是sqlplus更加方便些，这么说或许是我对sqlplus更加熟悉吧。这里记录下MySQL命令行几个比较常用的特性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.使用\G按行垂直显示结果&lt;/strong&gt;&lt;br /&gt;
如果一行很长，需要这行显示的话，看起结果来就非常的难受。在SQL语句或者命令后使用\G而不是分号结尾，可以将每一行的值垂直输出。这个可能也是大家对于MySQL最熟悉的区别于其他数据库工具的一个特性了。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; select * from db_archivelog\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
        id: 1&lt;br /&gt;
 check_day: 2008-06-26&lt;br /&gt;
   db_name: TBDB1&lt;br /&gt;
  arc_size: 137&lt;br /&gt;
   arc_num: 166&lt;br /&gt;
per_second: 1.6&lt;br /&gt;
  avg_time: 8.7&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.使用pager设置显示方式&lt;/strong&gt;&lt;br /&gt;
如果select出来的结果集超过几个屏幕，那么前面的结果一晃而过无法看到。使用pager可以设置调用os的more或者less等显示查询结果，和在os中使用more或者less查看大文件的效果一样。&lt;br /&gt;
使用more&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; pager more&lt;br /&gt;
PAGER set to &amp;#8216;more&amp;#8217;&lt;br /&gt;
mysql&gt; \P more&lt;br /&gt;
PAGER set to &amp;#8216;more&amp;#8217;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
使用less&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; pager less&lt;br /&gt;
PAGER set to &amp;#8216;less&amp;#8217;&lt;br /&gt;
mysql&gt; \P less&lt;br /&gt;
PAGER set to &amp;#8216;less&amp;#8217;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
还原成stdout&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; nopager&lt;br /&gt;
PAGER set to stdout&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.使用tee保存运行结果到文件&lt;/strong&gt;&lt;br /&gt;
这个类似于sqlplus的spool功能，可以将命令行中的结果保存到外部文件中。如果指定已经存在的文件，则结果会附加到文件中。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; tee output.txt&lt;br /&gt;
Logging to file &amp;#8216;output.txt&amp;#8217;&lt;br /&gt;
或者&lt;br /&gt;
mysql&gt; \T output.txt&lt;br /&gt;
Logging to file &amp;#8216;output.txt&amp;#8217;&lt;/p&gt;
&lt;p&gt;mysql&gt; notee&lt;br /&gt;
Outfile disabled.&lt;br /&gt;
或者&lt;br /&gt;
mysql&gt; \t&lt;br /&gt;
Outfile disabled.&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.执行OS命令&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; system uname&lt;br /&gt;
Linux&lt;br /&gt;
mysql&gt; \! uname&lt;br /&gt;
Linux&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5.执行SQL文件&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; source test.sql&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| current_date() |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| 2008-06-28     |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
或者&lt;br /&gt;
mysql&gt; \. test.sql&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| current_date() |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| 2008-06-28     |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;其他还有一些功能，可以通过help或者?获得MySQL命令行支持的一些命令。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&quot; title=&quot;用HSCALE实现MySQL的数据分布式存储&quot;&gt;用HSCALE实现MySQL的数据分布式存储&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&quot; title=&quot;卸载rpm包遭遇error: specifies multiple packages&quot;&gt;卸载rpm包遭遇error: specifies multiple packages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_conv_function.html&quot; title=&quot;MySQL的conv函数&quot;&gt;MySQL的conv函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&quot; title=&quot;MySQL的benchmark函数&quot;&gt;MySQL的benchmark函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&quot; title=&quot;MySQL压力测试工具mysqlslap&quot;&gt;MySQL压力测试工具mysqlslap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/open_source_and_sun_mysql.html&quot; title=&quot;开源，是一种精神&quot;&gt;开源，是一种精神&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html'&gt;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&amp;title=MySQL%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%9A%84%E5%87%A0%E4%B8%AA%E7%94%A8%E6%B3%95&amp;tags=cmdline, MySQL, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/dcdafc76e33f073b1dd7abb6741d4a2e&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/dcdafc76e33f073b1dd7abb6741d4a2e/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net MySQL的客户端命令行工具，有很多方便使用者的特性，某些方面甚至可以说比Oracle的sqlplus更加人性化。当然从整体来说，还是sqlplus更加方便些，这么说或许是我对sqlpl...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/dcdafc76e33f073b1dd7abb6741d4a2e&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/dcdafc76e33f073b1dd7abb6741d4a2e/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>cmdline</category><category>MySQL</category><category>数据库</category><pubDate>Sat, 28 Jun 2008 02:35:11 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=385</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236612/1237504</fs:itemid></item><item><title>ASM如何识别磁盘</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236613/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/how_asm_discovery_disk.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;在ASM中，要创建diskgroup或者往已有的diskgroup里添加新的disk，则该disk必须已经识别，也就是要在v$asm_disk里有记录。ASM会根据&lt;strong&gt;asm_diskstring&lt;/strong&gt;指定的路径去检查所有的磁盘。另外，查询v$asm_diskgroup和v$asm_disk也会导致这个识别磁盘动作的发生，所以平时最好查询&lt;strong&gt;v$asm_disk_stat&lt;/strong&gt;来替代v$asm_disk。&lt;/p&gt;
&lt;p&gt;Oracle也提供了一个工具来手工识别磁盘，就是&lt;strong&gt;KFOD&lt;/strong&gt;，注意不是&lt;a href=&quot;http://www.ningoo.net/html/2008/using_kfed_dump_asm_disk_header.html&quot;&gt;KFED&lt;/a&gt;哦。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$kfod -h&lt;br /&gt;
_asm_a/llow_only_raw_disks              KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]&lt;br /&gt;
_asm_l/ibraries         ASM Libraries[_asm_libraries=&amp;#8217;lib1&amp;#8242;,&amp;#8217;lib2&amp;#8242;,&amp;#8230;]&lt;br /&gt;
_asms/id                ASM Instance[_asmsid=sid]&lt;br /&gt;
a/sm_diskstring         ASM Diskstring [asm_diskstring=&amp;#8217;discoverystring&amp;#8217;, &amp;#8216;discoverystring&amp;#8217; &amp;#8230;]&lt;br /&gt;
d/isks          Disks to discover [disks=raw,asm,all]&lt;br /&gt;
g/roup          Group discover [group=controlfile]&lt;br /&gt;
n/ohdr          KFOD header suppression [nohdr=TRUE/(FALSE)]&lt;br /&gt;
o/p             KFOD options type [OP=DISKS/GROUPS/ALL]&lt;br /&gt;
p/file          ASM parameter file [pfile=&amp;#8217;parameterfile&amp;#8217;]&lt;br /&gt;
s/tatus         Include disk header status [status=TRUE/(FALSE)]&lt;br /&gt;
v/erbose                KFOD verbose errors [verbose=TRUE/(FALSE)]&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;可以看到&lt;strong&gt;KFOD&lt;/strong&gt;使用起来还是比较简单的。一个实际执行的例子如下：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$kfod disks=all status=true&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
 Disk          Size Header    Path&lt;br /&gt;
==========================================================&lt;br /&gt;
   1:       1023 Mb FOREIGN   /dev/raw/raw1&lt;br /&gt;
   2:     273708 Mb MEMBER    /dev/raw/raw10&lt;br /&gt;
   3:     273708 Mb MEMBER    /dev/raw/raw11&lt;br /&gt;
   4:     273708 Mb MEMBER    /dev/raw/raw12&lt;br /&gt;
&amp;#8230;&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
ORACLE_SID ORACLE_HOME&lt;br /&gt;
=========================================================&lt;br /&gt;
     +ASM4 /u01/oracle/product/10g/db&lt;br /&gt;
     +ASM3 /u01/oracle/product/10g/db&lt;br /&gt;
     +ASM2 /u01/oracle/product/10g/db&lt;br /&gt;
     +ASM1 /u01/oracle/product/10g/db&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html&quot; title=&quot;Oracle数据库如何识别ASM磁盘组&quot;&gt;Oracle数据库如何识别ASM磁盘组&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/install_oracle10g_rac_on_vmware_issue.html&quot; title=&quot;安装Oracle10g Clusterware遇到的一点问题&quot;&gt;安装Oracle10g Clusterware遇到的一点问题&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/dba_under_pressure.html&quot; title=&quot;有压力，要坚持&quot;&gt;有压力，要坚持&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_kfed_dump_asm_disk_header.html&quot; title=&quot;使用kfed工具查看ASM disk header信息&quot;&gt;使用kfed工具查看ASM disk header信息&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/using_file_simulate_asm.html&quot; title=&quot;使用普通文件也能玩转ASM&quot;&gt;使用普通文件也能玩转ASM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html&quot; title=&quot;AIX平台升级到Oracle10.2.0.4的几个问题&quot;&gt;AIX平台升级到Oracle10.2.0.4的几个问题&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/how_asm_discovery_disk.html'&gt;http://www.ningoo.net/html/2008/how_asm_discovery_disk.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/how_asm_discovery_disk.html#comment'&gt;Add Comments(4)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/how_asm_discovery_disk.html&amp;title=ASM%E5%A6%82%E4%BD%95%E8%AF%86%E5%88%AB%E7%A3%81%E7%9B%98&amp;tags=ASM, kfod, oracle, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/0856607f024a44f99160755238056225&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/0856607f024a44f99160755238056225/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/how_asm_discovery_disk.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 在ASM中，要创建diskgroup或者往已有的diskgroup里添加新的disk，则该disk必须已经识别，也就是要在v$asm_disk里有记录。ASM会根据asm_diskstring指定的路径去检查所有的磁盘。...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/0856607f024a44f99160755238056225&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/0856607f024a44f99160755238056225/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>ASM</category><category>kfod</category><category>oracle</category><category>存储</category><category>数据库</category><pubDate>Sun, 22 Jun 2008 14:56:01 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/how_asm_discovery_disk.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=383</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/how_asm_discovery_disk.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236613/1237504</fs:itemid></item><item><title>Oracle数据库如何识别ASM磁盘组</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236614/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;假如使用ASM做为Oracle数据库的数据存储方式，那么Oracle数据库是怎么来识别ASM的diskgroup的呢，也就是数据库的instanc和ASM的instance之间是如何沟通的呢？简单的说，就是&lt;strong&gt;ocssd(Oracle Cluster Support Services daemon)&lt;/strong&gt;。本文假设为Linux环境下的RAC+ASM系统。&lt;/p&gt;
&lt;p&gt;对于ASM来说，ocssd是必须的，所以在使用dbca创建ASM Instance的时候，就会提示要先安装ocssd。如果是单机，执行$ORACLE_HOME/bin/localconfig add安装ocssd。ocssd通过inittab自动启动，在安装的时候就会在&lt;strong&gt;/etc/inittab&lt;/strong&gt;中加入以下条目(rac环境)：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
h2:35:respawn:/etc/init.d/init.cssd fatal &gt;/dev/null 2&gt;&amp;#038;1 &lt;/dev/null&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;其中，35表示在os的运行级别(runlevel)为3或者5的时候启动/etc/init.d/init.cssd&lt;br /&gt;
&lt;strong&gt;respawn&lt;/strong&gt;表示init.cssd进程如果异常终止，则自动重新启动&lt;/p&gt;
&lt;p&gt;ocssd进程启动后会打开一系列的文件(通过&lt;strong&gt;/proc/&lt;em&gt;pid&lt;/em&gt;/fd&lt;/strong&gt;或者&lt;strong&gt;lsof -a -p &lt;em&gt;pid&lt;/em&gt;&lt;/strong&gt;可以获得filedescriptor的信息)：&lt;br /&gt;
消息文件&lt;br /&gt;
&amp;#8211; $CRS_HOME/srvm/mesg/procus.msb&lt;br /&gt;
&amp;#8211; $CRS_HOME/css/mesg/clssus.msb&lt;br /&gt;
&amp;#8211; $CRS_HOME/has/mesg/clsdus.msb&lt;br /&gt;
日志文件&lt;br /&gt;
&amp;#8211; $CRS_HOME/log/&lt;em&gt;hostname&lt;/em&gt;/cssd/cssdOUT.log&lt;br /&gt;
&amp;#8211; $CRS_HOME/log/&lt;em&gt;hostname&lt;/em&gt;/cssd/ocssd.log&lt;br /&gt;
&amp;#8211; $CRS_HOME/log/&lt;em&gt;hostname&lt;/em&gt;/alert&lt;em&gt;SID&lt;/em&gt;.log&lt;br /&gt;
OCR(Oracle Cluster Registry)，本例中在裸设备上，如果是单机也可能在本地文件系统中，典型路径$ORACLE_HOME/cdata/localhost/local.ocr&lt;br /&gt;
&amp;#8211; /dev/raw/raw1&lt;br /&gt;
&amp;#8211; /dev/raw/raw2&lt;br /&gt;
以及一些socket端口&lt;br /&gt;
&amp;#8211; socket:[578057]&lt;br /&gt;
&amp;#8211; socket:[578062]&lt;br /&gt;
&amp;#8230;&lt;/p&gt;
&lt;p&gt;ASM instace启动以后，通过gmon进程和osccd通信，将ASM的一些信息告诉给ocssd，而数据库则从ocssd获得这些信息，也就是说，ocssd是ASM Instance和Database之间的纽带。&lt;/p&gt;
&lt;p&gt;ASM/ocssd/database之间具体通信的步骤，可以参考&lt;a href=&quot;http://frits.homelinux.com/wordpress/?p=34&quot;&gt;这里&lt;/a&gt;。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_asm_discovery_disk.html&quot; title=&quot;ASM如何识别磁盘&quot;&gt;ASM如何识别磁盘&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/install_oracle10g_rac_on_vmware_issue.html&quot; title=&quot;安装Oracle10g Clusterware遇到的一点问题&quot;&gt;安装Oracle10g Clusterware遇到的一点问题&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/dba_under_pressure.html&quot; title=&quot;有压力，要坚持&quot;&gt;有压力，要坚持&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_kfed_dump_asm_disk_header.html&quot; title=&quot;使用kfed工具查看ASM disk header信息&quot;&gt;使用kfed工具查看ASM disk header信息&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/using_file_simulate_asm.html&quot; title=&quot;使用普通文件也能玩转ASM&quot;&gt;使用普通文件也能玩转ASM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html&quot; title=&quot;AIX平台升级到Oracle10.2.0.4的几个问题&quot;&gt;AIX平台升级到Oracle10.2.0.4的几个问题&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html'&gt;http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html#comment'&gt;Add Comments(4)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html&amp;title=Oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A6%82%E4%BD%95%E8%AF%86%E5%88%ABASM%E7%A3%81%E7%9B%98%E7%BB%84&amp;tags=ASM, oracle, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/a4036272dc638672789dbb3b3a65613d&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/a4036272dc638672789dbb3b3a65613d/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 假如使用ASM做为Oracle数据库的数据存储方式，那么Oracle数据库是怎么来识别ASM的diskgroup的呢，也就是数据库的instanc和ASM的instance之间是如何沟通的呢？简单的说，就是...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/a4036272dc638672789dbb3b3a65613d&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/a4036272dc638672789dbb3b3a65613d/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>ASM</category><category>oracle</category><category>数据库</category><pubDate>Sun, 22 Jun 2008 11:57:16 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=382</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236614/1237504</fs:itemid></item><item><title>转载：恕道</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236615/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&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;/p&gt;
&lt;p&gt;    这就是以道德自命的人应该守的分寸。&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;转载的分割线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;范美忠&lt;/strong&gt;，&lt;strong&gt;郭松民&lt;/strong&gt;，&lt;strong&gt;余秋雨&lt;/strong&gt;，大地震后红遍全国(当然余大师成名已久，这次只能算友情演出)，但是范美忠你最多不欣赏不赞同，最多去指责去批判，于你本人不会有大多危害，甚至还能让你带一点优越感。而后面两位，却让我觉得就像在黑夜里地球突然沉向宇宙深处一样无助，恐惧感四面八方汹涌而来。尤其是看了余大师blog上的那些转载的帖子，才发现二三十年来时差一直没有倒过来。&lt;/p&gt;
&lt;p&gt;正是：皇帝可以穿新衣，小民切勿做童声；大师含泪劝世人，和谐盛世迎奥运。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/shanghai_passer_by.html&quot; title=&quot;上海过客&quot;&gt;上海过客&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/jiu_yin_zhen_jing.html&quot; title=&quot;重温《九阴真经》&quot;&gt;重温《九阴真经》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/taobao_dba_dw_outing_tonglu.html&quot; title=&quot;周末部门outing：桐庐大奇山&quot;&gt;周末部门outing：桐庐大奇山&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/2008_sichuan_earthquake.html&quot; title=&quot;2008，老天保佑&quot;&gt;2008，老天保佑&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/cpi_and_life.html&quot; title=&quot;肉包变成了小笼包&quot;&gt;肉包变成了小笼包&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/an_accident_in_zhejiang_university.html&quot; title=&quot;小心慢行，安全第一&quot;&gt;小心慢行，安全第一&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html'&gt;http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html#comment'&gt;Add Comments(1)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html&amp;title=%E8%BD%AC%E8%BD%BD%EF%BC%9A%E6%81%95%E9%81%93&amp;tags=life, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/665b5b0d53025fda9a93c475a9b77d2b&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/665b5b0d53025fda9a93c475a9b77d2b/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 作者：王鼎均
    你必须有理想，但是不要公然鄙视那些鼠目寸光的人。你必须有操守，但是不要公然抨击那些蝇营狗苟的人。你必须培养高尚的趣味，但是不要公然...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/665b5b0d53025fda9a93c475a9b77d2b&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/665b5b0d53025fda9a93c475a9b77d2b/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>life</category><category>杂记</category><pubDate>Fri, 20 Jun 2008 21:39:02 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=381</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/zz_shu_dao_and_earthquake.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236615/1237504</fs:itemid></item><item><title>在FireFox3中使用不兼容的插件</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236616/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.spreadfirefox.com/zh-CN/worldrecord/&quot;&gt;&lt;strong&gt;FireFox3&lt;/strong&gt;&lt;/a&gt;正式发布了，其实从&lt;a href=&quot;http://www.ningoo.net/html/2008/transfer_to_firefox3_beta4.html&quot;&gt;beta4&lt;/a&gt;开始就从FireFox2换成3了。在内存使用和浏览速度方面，FireFox3确实改进不少。不过有些插件一直不更新，比如Gladder等，导致在FireFox3中由于不兼容而不能使用，有点烦人。不过这个兼容性检查，其实只是check了一下插件的兼容版本号，大部分旧版本的插件，其功能在FireFox3其实还是可以使用的。那么就有两个办法来绕过这个兼容性检查，一是修改插件的可以支持的版本号，二是设置FireFox3不执行插件兼容性检查。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一、修改插件&lt;/strong&gt;&lt;br /&gt;
首先将插件下载到本地。FireFox的插件扩展名是&lt;strong&gt;xpi&lt;/strong&gt;，其实是一个zip压缩打包文件，用winrar等可以打开。找到里面的&lt;strong&gt;install.rdf&lt;/strong&gt;文件，可以找到如下内容：&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
&lt;em:targetApplication&gt;&lt;br /&gt;
			&lt;Description&gt;&lt;br /&gt;
				&lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;&lt;br /&gt;
				&lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;&lt;br /&gt;
				&lt;em:maxVersion&gt;3.0b3pre&lt;/em:maxVersion&gt;&lt;br /&gt;
			&lt;/Description&gt;&lt;br /&gt;
&lt;/em:targetApplication&gt;&lt;/p&gt;
&lt;p&gt;&lt;/coolcode&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;发现了没(通过rss阅读的朋友可能看不到上面的代码，请移步到&lt;a href=&quot;http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html&quot;&gt;这里&lt;/a&gt;)，&lt;strong&gt;minVersion&lt;/strong&gt;和&lt;strong&gt;maxVersion&lt;/strong&gt;就定义了该插件可以支持的FireFox版本，将3.0b3pre改成3.0，保存后重新安装插件即可。嗯，怎么修改？把install.rdf拖出来整完再拖回去；怎么重新安装？再把xpi拖进FireFox，搞定收工。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二、设置FireFox&lt;/strong&gt;&lt;br /&gt;
在FireFox3地址栏输入&lt;strong&gt;about:config&lt;/strong&gt;，出来一个警告页面，不理他，“我保证我会小心”。然后点右键，选择“新建”-&gt;“布尔”，创建一个布尔变量&lt;strong&gt;extensions.checkCompatibility&lt;/strong&gt;，值为false，表示不检查扩展插件的兼容性。同样的步骤再创建一个布尔变量&lt;strong&gt;extensions.checkUpdateSecurity&lt;/strong&gt;，值为false，不检查安全更新。重启，搞定。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/transfer_to_firefox3_beta4.html&quot; title=&quot;彻底放弃FireFox2转向FireFox3&quot;&gt;彻底放弃FireFox2转向FireFox3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/start_to_use_fireforx3.html&quot; title=&quot;开始使用FireFox 3 Beta 2&quot;&gt;开始使用FireFox 3 Beta 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html'&gt;http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html#comment'&gt;Add Comments(3)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html&amp;title=%E5%9C%A8FireFox3%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%85%BC%E5%AE%B9%E7%9A%84%E6%8F%92%E4%BB%B6&amp;tags=addon, FireFox, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/96ce73f714d2c9e6a354bfc9f3d40760&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/96ce73f714d2c9e6a354bfc9f3d40760/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net FireFox3正式发布了，其实从beta4开始就从FireFox2换成3了。在内存使用和浏览速度方面，FireFox3确实改进不少。不过有些插件一直不更新，比如Gladder等，导致在FireFox3中由...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/96ce73f714d2c9e6a354bfc9f3d40760&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/96ce73f714d2c9e6a354bfc9f3d40760/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>FireFox</category><category>互联网</category><category>addon</category><pubDate>Fri, 20 Jun 2008 13:34:01 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=380</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/using_incompatiable_addon_on_firefox3.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236616/1237504</fs:itemid></item><item><title>用HSCALE实现MySQL的数据分布式存储</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236617/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;针对单个表过大造成的性能问题，MySQL在5.1开始引入了分区表(&lt;strong&gt;partition&lt;/strong&gt;)，可以将数据在内部拆分存储，对应用透明，但是分区表只能将表在同一个数据库内部分解，而且对于表的维护(比如执行alter table)还是比较麻烦。手工分表也是一个解决方法，手工分表还有一个好处是可以将表分布到不同的服务器中，实现分布式存储。但是手工分表要求应用程序做相应的改写，以支持从不同的表中来存取数据。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hscale.org/display/HSCALE/Home&quot;&gt;&lt;strong&gt;HSCALE&lt;/strong&gt;&lt;/a&gt;简单来说就是一个支持手工分表的中间层，对于应用来说看起来还是一个表，而由HSCALE来负责底层子表的数据存取。HSCALE是基于&lt;a href=&quot;http://forge.mysql.com/wiki/MySQL_Proxy&quot;&gt;&lt;strong&gt;MySQL Proxy&lt;/strong&gt;&lt;/a&gt;的一个插件应用，通过MySQL Proxy的&lt;strong&gt;&lt;a href=&quot;http://www.lua.org&quot;&gt;lua&lt;/a&gt;&lt;/strong&gt;脚本拦截分拆对应的SQL语句来实现数据的分布存储，而且使用lua脚本可以自由定制分表策略，比起MySQL自己的partition更加灵活些。现在版本还是0.2，功能有限，只能实现同库分表，但是基于MySQL Proxy的架构，未来要实现示分库分表也不是什么难事。&lt;/p&gt;
&lt;p&gt;作者利用&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&quot;&gt;&lt;strong&gt;mysqlslap&lt;/strong&gt;&lt;/a&gt;对HSCALE和MySQL Proxy做了几组性能测试，结果参考&lt;a href=&quot;http://pero.blogs.aprilmayjune.org/2008/05/05/benchmark-mysql-proxy-and-hscale/&quot;&gt;这里&lt;/a&gt;，还有&lt;a href=&quot;http://pero.blogs.aprilmayjune.org/2008/05/05/update-benchmark-hscale-with-mysql-proxy-070-svn-against-061/&quot;&gt;这里&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;当然，现在MySQL Proxy和HSCALE都是刚刚起步，要在产品库中应用还有很长的一段路要走，从上面的性能测试中可以看到基于最新的MySQL Proxy 0.7版的HSCALE性能有了较大的提升，期待后续版本有更好的表现。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_mysql_proxy_works.html&quot; title=&quot;MySQL Proxy工作机制浅析&quot;&gt;MySQL Proxy工作机制浅析&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_mysql_proxy_for_read_write_splitting.html&quot; title=&quot;使用MySQL Proxy和MySQL Replication实现读写分离&quot;&gt;使用MySQL Proxy和MySQL Replication实现读写分离&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&quot; title=&quot;MySQL命令行的几个用法&quot;&gt;MySQL命令行的几个用法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&quot; title=&quot;卸载rpm包遭遇error: specifies multiple packages&quot;&gt;卸载rpm包遭遇error: specifies multiple packages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_conv_function.html&quot; title=&quot;MySQL的conv函数&quot;&gt;MySQL的conv函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&quot; title=&quot;MySQL的benchmark函数&quot;&gt;MySQL的benchmark函数&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html'&gt;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&amp;title=%E7%94%A8HSCALE%E5%AE%9E%E7%8E%B0MySQL%E7%9A%84%E6%95%B0%E6%8D%AE%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8&amp;tags=HSCALE, MySQL, MySQL Proxy, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/416fde805075c295a8b6fe951febe4b1&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/416fde805075c295a8b6fe951febe4b1/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 针对单个表过大造成的性能问题，MySQL在5.1开始引入了分区表(partition)，可以将数据在内部拆分存储，对应用透明，但是分区表只能将表在同一个数据库内部分解，而...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/416fde805075c295a8b6fe951febe4b1&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/416fde805075c295a8b6fe951febe4b1/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>MySQL Proxy</category><category>MySQL</category><category>HSCALE</category><category>数据库</category><pubDate>Thu, 19 Jun 2008 12:35:12 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=379</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236617/1237504</fs:itemid></item><item><title>什么是CDN</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236618/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/what_is_cdn.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;CDN(Content Delivery Network)&lt;/strong&gt;内容分发网络，简单的说就是通过在不同地点缓存内容，然后通过负载平衡等技术将用户请求定向到最近的缓存服务器上获取内容，提高用户访问网站的响应速度。和简单的内容镜像不同，&lt;strong&gt;CDN&lt;/strong&gt;通过用户就近性和服务器负载的判断，以一种更为高效的方式为用户的请求提供服务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CDN&lt;/strong&gt;包括&lt;strong&gt;分布式存储&lt;/strong&gt;、&lt;strong&gt;负载均衡&lt;/strong&gt;、&lt;strong&gt;网络请求的重定向&lt;/strong&gt;和&lt;strong&gt;内容管理&lt;/strong&gt;，其中内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。内容服务基于缓存服务器，也称作&lt;strong&gt;代理缓存(Surrogate)&lt;/strong&gt;，这样的缓存服务器分布在各地，为就近用户提供服务，缓存内容从数据中心自动获取，对用户透明。据说采用&lt;strong&gt;CDN&lt;/strong&gt;技术能处理整个网站页面的 &lt;strong&gt;70%～95％&lt;/strong&gt;的内容访问量，对于一些大型网站来说，没有&lt;strong&gt;CDN&lt;/strong&gt;，单靠数据中心支撑所有访问量是不可想象的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CDN&lt;/strong&gt;中的关键技术包含以下几个方面；&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内容发布：借助于建立索引、缓存、流分裂、组播（Multicast）等技术，将内容发布或投递到距离用户最近的远程服务点（POP）处；&lt;/li&gt;
&lt;li&gt;内容路由：整体性的网络负载均衡技术，通过内容路由器中的重定向（DNS）机制，在多个远程POP上均衡用户的请求，以使用户请求得到最近内容源的响应；&lt;/li&gt;
&lt;li&gt;内容交换：根据内容的可用性、服务器的可用性以及用户的背景，在POP的缓存服务器上，利用应用层交换、流分裂、重定向（ICP、WCCP）等技术，智能地平衡负载流量；&lt;/li&gt;
&lt;li&gt;性能管理：通过内部和外部监控系统，获取网络部件的状况信息，测量内容发布的端到端性能（如包丢失、延时、平均带宽、启动时间、帧速率等），保证网络处于最佳的运行状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;部署&lt;strong&gt;CDN&lt;/strong&gt;后，用户访问网站的流程如下图：&lt;br /&gt;
&lt;img src=&quot;http://www.ningoo.net/wp-content/uploads/2008/06/index_133.jpg&quot; alt=&quot;CDN&quot; title=&quot;CDN_flow&quot; class=&quot;alignnone size-medium wp-image-378&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用户请求页面，域名解析的请求发送到网站的DNS域名解析服务器；&lt;/li&gt;
&lt;li&gt;网站的DNS服务器将请求指向到智能DNS负载均衡系统；&lt;/li&gt;
&lt;li&gt;智能DNS负载均衡系统对域名进行智能解析，将响应速度最快的CDN节点IP返回给用户；&lt;/li&gt;
&lt;li&gt;浏览器向速度最快的CDN节点发出访问请求；&lt;/li&gt;
&lt;li&gt;如果请求的内容是第一次访问，CDN节点将回到数据中心获取用户请求的数据，缓存并发给用户；&lt;/li&gt;
&lt;li&gt;当有其他用户再次访问同样内容时，CDN将直接将缓存数据返回给客户，完成请求/服务过程。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从以上流程可以看到，&lt;strong&gt;CDN&lt;/strong&gt;其实也没有什么特别的，主要是通过&lt;strong&gt;负载均衡&lt;/strong&gt;，&lt;strong&gt;访问路由转向&lt;/strong&gt;和&lt;strong&gt;本地代理缓存&lt;/strong&gt;来加速网站访问，同时对于用户访问来说是透明的，用户端无须进行任何设置。&lt;/p&gt;
&lt;p&gt;对于CDN一无所知，从网上找了点资料，主要内容参考的&lt;a href=&quot;http://www.51cdn.com/cdn/cdngainian.html&quot;&gt;这里&lt;/a&gt;。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;暂无相关日志&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/what_is_cdn.html'&gt;http://www.ningoo.net/html/2008/what_is_cdn.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/what_is_cdn.html#comment'&gt;Add Comments(2)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/what_is_cdn.html&amp;title=%E4%BB%80%E4%B9%88%E6%98%AFCDN&amp;tags=CDN, 网络, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/9e88eabad4737cf87d4ddcd03d27e5e3&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/9e88eabad4737cf87d4ddcd03d27e5e3/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/what_is_cdn.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net CDN(Content Delivery Network)内容分发网络，简单的说就是通过在不同地点缓存内容，然后通过负载平衡等技术将用户请求定向到最近的缓存服务器上获取内容，提高用户访...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/9e88eabad4737cf87d4ddcd03d27e5e3&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/9e88eabad4737cf87d4ddcd03d27e5e3/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>网络</category><category>互联网</category><category>CDN</category><pubDate>Wed, 18 Jun 2008 14:49:45 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/what_is_cdn.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=377</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/what_is_cdn.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236618/1237504</fs:itemid></item><item><title>Google Reader如何查找已经读过的文章</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236619/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/reader&quot;&gt;Google Reader&lt;/a&gt;&lt;/strong&gt;无疑是一款非常优秀的在线&lt;strong&gt;RSS&lt;/strong&gt;阅读器，我用它订阅了100多个Blog，读到了很多有用有趣的文章，用Google Reader读取最新的Blog基本成了日常工作。Google Reader有很多不错的功能，这里&lt;a href=&quot;http://googlesystem.blogspot.com/2008/06/search-read-items-in-google-reader.html&quot;&gt;有篇文章&lt;/a&gt;给了一个不错的技巧来查找已经读过的文章。&lt;/p&gt;
&lt;p&gt;如果你已经登陆&lt;strong&gt;Google Reader&lt;/strong&gt;，可以&lt;a href=&quot;http://www.google.com/reader/view/user/-/state/com.google/read&quot;&gt;点击这里&lt;/a&gt;打开已读文章列表。实际上这个列表也有一个专门的Feed地址，只是要获得这个地址需要一点小技巧。首先要获得你在Google的USER_ID，登陆&lt;strong&gt;Google Reader&lt;/strong&gt;后在地址栏输入下面的javascript代码并回车：&lt;/p&gt;
&lt;p&gt;&lt;coolcode&gt;&lt;br /&gt;
javascript:prompt(&amp;#8221;User ID&amp;#8221;, _USER_ID);void(0);&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;在弹出的对话框中就是你的USER_ID，其实也不用如此高科技，Google Reader有一个分享阅读(Shared Items)的功能，点进去后可以发现里面关于你的共享阅读的几个链接(比如：See your shared items page in a new window.)里都有一长串数字，那就是你的USER_ID。&lt;/p&gt;
&lt;p&gt;那么你已读过的文章列表的Feed地址就是&lt;strong&gt;http://www.google.com/reader/atom/user/USERID/state/com.google/read&lt;/strong&gt;，将其中的USERID替换成你实际的USER_ID，用Google Reader订阅该地址，然后在搜索框后面的下拉列表中，选择这个Feed进行查找，就可以在你已经读过的所有文章中进行查找啦。注意这个Feed必须使用对应的帐号登陆以后才有效，在其他帐号中是没有权限读取的。&lt;/p&gt;
&lt;p&gt;你还没用过&lt;strong&gt;Google Reader&lt;/strong&gt;？那赶快体验一下，用&lt;a href=&quot;http://www.google.com/ig/add?feedurl=http://rss.ningoo.net&quot;&gt;Google Reader订阅&lt;/a&gt;我的Blog吧^_^&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/bloggermap_city_widget.html&quot; title=&quot;BloggerMap发布同城地图Widget&quot;&gt;BloggerMap发布同城地图Widget&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html&quot; title=&quot;编写插件修改Wordpress的RSS输出&quot;&gt;编写插件修改Wordpress的RSS输出&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_to_build_your_own_domain_blog.html&quot; title=&quot;如何建立独立域名的个人Blog&quot;&gt;如何建立独立域名的个人Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/this_blog_lives_one_year.html&quot; title=&quot;Blog一周年&quot;&gt;Blog一周年&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_google_hangding_large_datasets.html&quot; title=&quot;Google的高可扩展架构与海量数据处理&quot;&gt;Google的高可扩展架构与海量数据处理&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/alexa_ranking_changed.html&quot; title=&quot;Alexa排名算法大幅度修改&quot;&gt;Alexa排名算法大幅度修改&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html'&gt;http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html&amp;title=Google+Reader%E5%A6%82%E4%BD%95%E6%9F%A5%E6%89%BE%E5%B7%B2%E7%BB%8F%E8%AF%BB%E8%BF%87%E7%9A%84%E6%96%87%E7%AB%A0&amp;tags=blog, Google, Goole Reader, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/366bf72fe0b1f73ecb683413f9279468&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/366bf72fe0b1f73ecb683413f9279468/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net Google Reader无疑是一款非常优秀的在线RSS阅读器，我用它订阅了100多个Blog，读到了很多有用有趣的文章，用Google Reader读取最新的Blog基本成了日常工作。Google Reader有很...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/366bf72fe0b1f73ecb683413f9279468&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/366bf72fe0b1f73ecb683413f9279468/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>Goole Reader</category><category>互联网</category><category>Google</category><category>blog</category><pubDate>Tue, 17 Jun 2008 22:42:21 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=376</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/search_read_items_in_google_reader.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236619/1237504</fs:itemid></item><item><title>卸载rpm包遭遇error: specifies multiple packages</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236620/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;准备在&lt;strong&gt;Redhat Linux&lt;/strong&gt;系统上安装&lt;strong&gt;MySQL5.1&lt;/strong&gt;，先卸载自带的低版本MySQL，结果不知怎么搞的，同一个package出现了两次，版本也都是一样的：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
rpm -qa | grep mysql&lt;br /&gt;
mysqlclient10-3.23.58-4.RHEL4.1&lt;br /&gt;
mysql-4.1.20-2.RHEL4.1&lt;br /&gt;
mysql-4.1.20-2.RHEL4.1&lt;br /&gt;
mysqlclient10-3.23.58-4.RHEL4.1&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;尝试卸载：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
rpm -e mysqlclient10-3.23.58-4.RHEL4.1&lt;br /&gt;
error: &amp;#8220;mysqlclient10-3.23.58-4.RHEL4.1&amp;#8243; specifies multiple packages&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;通过&lt;strong&gt;man rpm&lt;/strong&gt;，发现&lt;strong&gt;&amp;#8211;allmatches&lt;/strong&gt;应该可以解决这个问题：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8211;allmatches&lt;br /&gt;
Remove all versions of the package which match PACKAGE_NAME. Normally an error is issued  if  PACKAGE_NAME  matches&lt;br /&gt;
              multiple packages.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;coolcode&gt;&lt;br /&gt;
rpm -e &amp;#8211;allmatches mysqlclient10-3.23.58-4.RHEL4.1&lt;br /&gt;
rpm -e &amp;#8211;allmatches mysql-4.1.20-2.RHEL4.1&lt;br /&gt;
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;ok，系统自带的旧版本MySQL卸载完成。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&quot; title=&quot;MySQL命令行的几个用法&quot;&gt;MySQL命令行的几个用法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&quot; title=&quot;用HSCALE实现MySQL的数据分布式存储&quot;&gt;用HSCALE实现MySQL的数据分布式存储&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_conv_function.html&quot; title=&quot;MySQL的conv函数&quot;&gt;MySQL的conv函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&quot; title=&quot;MySQL的benchmark函数&quot;&gt;MySQL的benchmark函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&quot; title=&quot;MySQL压力测试工具mysqlslap&quot;&gt;MySQL压力测试工具mysqlslap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/open_source_and_sun_mysql.html&quot; title=&quot;开源，是一种精神&quot;&gt;开源，是一种精神&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html'&gt;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&amp;title=%E5%8D%B8%E8%BD%BDrpm%E5%8C%85%E9%81%AD%E9%81%87error%3A+specifies+multiple+packages&amp;tags=MySQL, RPM, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/b9058ce2f47dd29f6eabbc94a237b579&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/b9058ce2f47dd29f6eabbc94a237b579/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 准备在Redhat Linux系统上安装MySQL5.1，先卸载自带的低版本MySQL，结果不知怎么搞的，同一个package出现了两次，版本也都是一样的：

rpm -qa &amp;#124; grep mysql
mysqlclient10-3.23.58...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/b9058ce2f47dd29f6eabbc94a237b579&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/b9058ce2f47dd29f6eabbc94a237b579/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>操作系统</category><category>MySQL</category><category>RPM</category><pubDate>Mon, 16 Jun 2008 17:44:51 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=375</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236620/1237504</fs:itemid></item><item><title>MySQL的conv函数</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236621/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/mysql_conv_function.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;继续学习&lt;strong&gt;MySQL&lt;/strong&gt;，这篇记录下&lt;strong&gt;conv函数&lt;/strong&gt;。conv函数用于数字的进制转换，共有三个参数：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
CONV(N,from_base,to_base)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;N是要转换的数据，from_base是原进制，to_base是目标进制。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select conv(16,10,16);&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| conv(16,10,16) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| 10       |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
1 row in set (0.04 sec)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;如果N是有符号数字，则to_base要以负数的形式提供，否则会将N当作无符号数&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; select conv(-16,10,16);&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
| conv(-16,10,16)  |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
| FFFFFFFFFFFFFFF0 |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
1 row in set (0.00 sec)&lt;/p&gt;
&lt;p&gt;mysql&gt; select conv(-16,10,-16);&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
| conv(-16,10,-16) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
| -10        |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;除了conv，还有几个特定进制转换的函数，如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hex(N)相当于conv(N,10,16)&lt;/li&gt;
&lt;li&gt;oct(N)相当于conv(N,10,8)&lt;/li&gt;
&lt;li&gt;bin(N)相当于conv(N,10,2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;另外还有一个&lt;strong&gt;convert&lt;/strong&gt;函数用于转换不同的数据类型的，不要和conv搞混淆了。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&quot; title=&quot;MySQL命令行的几个用法&quot;&gt;MySQL命令行的几个用法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&quot; title=&quot;用HSCALE实现MySQL的数据分布式存储&quot;&gt;用HSCALE实现MySQL的数据分布式存储&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&quot; title=&quot;卸载rpm包遭遇error: specifies multiple packages&quot;&gt;卸载rpm包遭遇error: specifies multiple packages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&quot; title=&quot;MySQL的benchmark函数&quot;&gt;MySQL的benchmark函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&quot; title=&quot;MySQL压力测试工具mysqlslap&quot;&gt;MySQL压力测试工具mysqlslap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/open_source_and_sun_mysql.html&quot; title=&quot;开源，是一种精神&quot;&gt;开源，是一种精神&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/mysql_conv_function.html'&gt;http://www.ningoo.net/html/2008/mysql_conv_function.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/mysql_conv_function.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/mysql_conv_function.html&amp;title=MySQL%E7%9A%84conv%E5%87%BD%E6%95%B0&amp;tags=conv, function, MySQL, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/64ed2b949b2c64da5027e67a61b21a61&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/64ed2b949b2c64da5027e67a61b21a61/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/mysql_conv_function.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 继续学习MySQL，这篇记录下conv函数。conv函数用于数字的进制转换，共有三个参数：

CONV(N,from_base,to_base)

N是要转换的数据，from_base是原进制，to_base是目标进制。

selec...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/64ed2b949b2c64da5027e67a61b21a61&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/64ed2b949b2c64da5027e67a61b21a61/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>conv</category><category>function</category><category>MySQL</category><category>数据库</category><pubDate>Mon, 16 Jun 2008 17:25:42 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/mysql_conv_function.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=374</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/mysql_conv_function.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236621/1237504</fs:itemid></item><item><title>Linux中如何将文件dump成16进制值</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236622/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;在&lt;strong&gt;linux&lt;/strong&gt;中有多种方式可以将文件dump成16进制显示，也可以将16进制值再反向成文件。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$ hexdump test.txt&lt;br /&gt;
0000000 524f 2d41 3030 3036 0a30 524f 2d41 3030&lt;br /&gt;
0000010 3630 0a30&lt;br /&gt;
0000014&lt;/p&gt;
&lt;p&gt;$ od -x test.txt&lt;br /&gt;
0000000 524f 2d41 3030 3036 0a30 524f 2d41 3030&lt;br /&gt;
0000020 3630 0a30&lt;br /&gt;
0000024&lt;/p&gt;
&lt;p&gt;$ xxd test.txt&lt;br /&gt;
0000000: 4f52 412d 3030 3630 300a 4f52 412d 3030  ORA-00600.ORA-00&lt;br /&gt;
0000010: 3036 300a                     060.&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;注意到&lt;strong&gt;hexdump&lt;/strong&gt;和&lt;strong&gt;od&lt;/strong&gt;出来的结果都是按实际存储的字节序，因为基于x86的linux是&lt;strong&gt;little-endian&lt;/strong&gt;的，也就是高低字节是颠倒了的。但是&lt;strong&gt;xxd&lt;/strong&gt;的结果是将字节序调整过了的。而IBM的Power CPU是&lt;strong&gt;big-endian&lt;/strong&gt;的，所以在AIX上od的结果如下：&lt;/p&gt;
&lt;p&gt;&lt;coolcode&gt;&lt;br /&gt;
$od -x test.txt&lt;br /&gt;
0000000  4f52 412d 3030 3630 300a 4f52 412d 3030&lt;br /&gt;
0000020  3036 300a&lt;br /&gt;
0000024&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;xxd还可以实现从16进制反向生成文件，只需要加上-r选现即可。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
xxd test.txt | xxd -r&lt;br /&gt;
ORA-00600&lt;br /&gt;
ORA-00060&lt;/p&gt;
&lt;p&gt;$ echo 0000000: 4f52 412d 3030 3630 300a 4f52 412d 3030 | xxd -r&lt;br /&gt;
ORA-00600&lt;br /&gt;
ORA-00&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;但是要注意xxd接受的是big-endian格式的16进制值，如果输入的是little-endian的，则生成的文件字符(包括换行符)是两两颠倒的。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$ od -x test.txt | xxd -r&lt;br /&gt;
RO-A0006&lt;br /&gt;
0RO-A0060&lt;br /&gt;
0&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;在&lt;strong&gt;vi&lt;/strong&gt;编辑器中可以使用&lt;strong&gt;:%!xxd &lt;/strong&gt;调用xxd来将文件转换成16机制编辑模式，编辑完成后再调用&lt;strong&gt;:%!xxd -r&lt;/strong&gt;转换文件模式，从而使得vi具有16进制编辑的功能，:%!其实就是调用外部shell命令，需要注意的是xxd的字节序是big-endian的，不要搞错了。&lt;/p&gt;
&lt;p&gt;如果你的Linux系统中找不到xxd命令，那么检查下是否有安装&lt;strong&gt;vim-common&lt;/strong&gt;包&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
rpm -qa | grep vim&lt;br /&gt;
vim-enhanced-6.3.046-0.40E.7&lt;br /&gt;
vim-X11-6.3.046-0.40E.7&lt;br /&gt;
vim-minimal-6.3.046-0.40E.7&lt;br /&gt;
vim-common-6.3.046-0.40E.7&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_to_define_redhat_linux_user_login.html&quot; title=&quot;Redhat Linux如何设置用户默认属性&quot;&gt;Redhat Linux如何设置用户默认属性&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mulit_listener_process_on_oracle_10204_linux64.html&quot; title=&quot;Oracle10.2.0.4 Linux64版本监听存在多个子进程&quot;&gt;Oracle10.2.0.4 Linux64版本监听存在多个子进程&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_to_eable_aio_for_oracle_on_redhat_linux.html&quot; title=&quot;Redhat Linux上Oracle如何启用AIO&quot;&gt;Redhat Linux上Oracle如何启用AIO&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_to_use_rawdevice_on_linux.html&quot; title=&quot;Linux上如何使用裸设备&quot;&gt;Linux上如何使用裸设备&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/redhat_linux_network_configuration_and_bond.html&quot; title=&quot;Redhat Linux网卡配置与绑定&quot;&gt;Redhat Linux网卡配置与绑定&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/using_stty_change_tty_setting.html&quot; title=&quot;使用stty修改终端设置&quot;&gt;使用stty修改终端设置&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html'&gt;http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html&amp;title=Linux%E4%B8%AD%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E4%BB%B6dump%E6%88%9016%E8%BF%9B%E5%88%B6%E5%80%BC&amp;tags=dump, hex, hexdump, linux, od, xxd, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/8924c1cc8a56cc74cbf6b1852c056c88&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/8924c1cc8a56cc74cbf6b1852c056c88/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 在linux中有多种方式可以将文件dump成16进制显示，也可以将16进制值再反向成文件。

$ hexdump test.txt
0000000 524f 2d41 3030 3036 0a30 524f 2d41 3030
0000010 3630 0a30
0000014
$ od -x test.tx...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/8924c1cc8a56cc74cbf6b1852c056c88&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/8924c1cc8a56cc74cbf6b1852c056c88/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>od</category><category>linux</category><category>操作系统</category><category>hex</category><category>xxd</category><category>dump</category><category>hexdump</category><pubDate>Sun, 15 Jun 2008 21:08:02 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=373</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/how_to_dump_file_to_hex_and_reverse.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236622/1237504</fs:itemid></item><item><title>编写插件修改Wordpress的RSS输出</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236623/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Wordpress&lt;/strong&gt;是一款著名的开源blog平台，基于&lt;strong&gt;php&lt;/strong&gt;，其灵活的模板(theme)和插件(plugin)架构，使得扩展性非常的好，通过模板可以随心所欲的变化前端展示，通过插件则可以实现额外的功能。比如可以通过插件修改rss输出，在其中加上诸如版权声明，相关文章等功能。另外，强烈建议在rss全文输出内容，经常在Google Reader中看到一篇好文章却只有摘要，点过去发现网站又无法打开，这种感觉真让人抓狂。&lt;/p&gt;
&lt;p&gt;将&lt;a href=&quot;http://www.ningoo.net/wp-content/uploads/2008/06/mywordpressfeed.txt&quot;&gt;MyWordpressFeed.txt&lt;/a&gt;下载后另存为MyWordpressFeed.php，修改FeedRelatedPost函数中相应的地方，传到wp-content/plugins目录，到后台管理激活MyWordpressFeed插件，即可获得和我的blog一样的&lt;a href=&quot;http://www.google.com/ig/add?feedurl=http://rss.ningoo.net&quot;&gt;rss输出效果&lt;/a&gt;。php我只是略知皮毛，代码贴出来给有需要的朋友参考（&lt;strong&gt;Update：&lt;/strong&gt;贴了半天代码，发现&lt;a href=&quot;http://www.coolcode.cn/show-26-1.html&quot;&gt;coolcode插件&lt;/a&gt;无法解析这种php里又输出html的代码，只好打包成txt文件，&lt;a href=&quot;http://www.ningoo.net/wp-content/uploads/2008/06/mywordpressfeed.txt&quot;&gt;点击这里&lt;/a&gt;可查看或者下载）。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_to_build_your_own_domain_blog.html&quot; title=&quot;如何建立独立域名的个人Blog&quot;&gt;如何建立独立域名的个人Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/update_to_wordpress_25.html&quot; title=&quot;升级到wordpress 2.5&quot;&gt;升级到wordpress 2.5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/active_wordpress_plugin_cos_html_cache.html&quot; title=&quot;启用wordpress静态化插件cos-html-cache2.3&quot;&gt;启用wordpress静态化插件cos-html-cache2.3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/wordpress_plugin_today_in_history.html&quot; title=&quot;Wordpress插件：历史上的今天&quot;&gt;Wordpress插件：历史上的今天&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/ob_gzhandler_warning.html&quot; title=&quot;打开wordpress压缩选项导致warning&quot;&gt;打开wordpress压缩选项导致warning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/adjust_blog_theme.html&quot; title=&quot;模板颜色调整完毕&quot;&gt;模板颜色调整完毕&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html'&gt;http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html#comment'&gt;Add Comments(5)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html&amp;title=%E7%BC%96%E5%86%99%E6%8F%92%E4%BB%B6%E4%BF%AE%E6%94%B9Wordpress%E7%9A%84RSS%E8%BE%93%E5%87%BA&amp;tags=blog, php, plugin, rss, wordpress, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/90a867260b20cc28b6fc9e6d4e81d6ba&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/90a867260b20cc28b6fc9e6d4e81d6ba/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net Wordpress是一款著名的开源blog平台，基于php，其灵活的模板(theme)和插件(plugin)架构，使得扩展性非常的好，通过模板可以随心所欲的变化前端展示，通过插件则可以实...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/90a867260b20cc28b6fc9e6d4e81d6ba&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/90a867260b20cc28b6fc9e6d4e81d6ba/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>wordpress</category><category>php</category><category>互联网</category><category>rss</category><category>plugin</category><category>blog</category><pubDate>Sun, 15 Jun 2008 19:27:59 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=371</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/write_plugin_format_wordpress_rss.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236623/1237504</fs:itemid></item><item><title>MySQL的benchmark函数</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236624/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/mysql_benchmark_function.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MySQL&lt;/strong&gt;实现了很多独特的函数，有时候使用起来是非常的方便，或许这就是开源的好处吧。这里记录一下&lt;strong&gt;benchmark&lt;/strong&gt;函数，一个用于测试MySQL函数性能的函数。benchmark函数只有两个参数，第一个是执行次数，第二个是要测试的函数或者表达式。返回的结果始终是0，执行时间才是我们需要的结果：&lt;/p&gt;
&lt;p&gt;&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; select benchmark(1e8,current_date());&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
| benchmark(1e8,current_date()) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
|              0 |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-+&lt;br /&gt;
1 row in set (31.08 sec)&lt;/p&gt;
&lt;p&gt;mysql&gt; select benchmark(1e8,abs(1));&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
| benchmark(1e8,abs(1)) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
|          0 |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
1 row in set (1.31 sec)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;除法的效率明显不如乘法：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
mysql&gt; select benchmark(1e8,1*1);&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
| benchmark(1e8,1*1) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
|        0 |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
1 row in set (1.45 sec)&lt;/p&gt;
&lt;p&gt;mysql&gt; select benchmark(1e8,1/1);&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
| benchmark(1e8,1/1) |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
|        0 |&lt;br /&gt;
+&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;+&lt;br /&gt;
1 row in set (19.47 sec)&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&quot; title=&quot;MySQL压力测试工具mysqlslap&quot;&gt;MySQL压力测试工具mysqlslap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&quot; title=&quot;MySQL命令行的几个用法&quot;&gt;MySQL命令行的几个用法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&quot; title=&quot;用HSCALE实现MySQL的数据分布式存储&quot;&gt;用HSCALE实现MySQL的数据分布式存储&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&quot; title=&quot;卸载rpm包遭遇error: specifies multiple packages&quot;&gt;卸载rpm包遭遇error: specifies multiple packages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_conv_function.html&quot; title=&quot;MySQL的conv函数&quot;&gt;MySQL的conv函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/open_source_and_sun_mysql.html&quot; title=&quot;开源，是一种精神&quot;&gt;开源，是一种精神&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/mysql_benchmark_function.html'&gt;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/mysql_benchmark_function.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/mysql_benchmark_function.html&amp;title=MySQL%E7%9A%84benchmark%E5%87%BD%E6%95%B0&amp;tags=benchmark, MySQL, 测试, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/6a5c9fdef93c47bd05d911f5d29817bd&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/6a5c9fdef93c47bd05d911f5d29817bd/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/mysql_benchmark_function.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net MySQL实现了很多独特的函数，有时候使用起来是非常的方便，或许这就是开源的好处吧。这里记录一下benchmark函数，一个用于测试MySQL函数性能的函数。benchmark函数只...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/6a5c9fdef93c47bd05d911f5d29817bd&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/6a5c9fdef93c47bd05d911f5d29817bd/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>MySQL</category><category>测试</category><category>benchmark</category><category>数据库</category><pubDate>Sun, 15 Jun 2008 17:22:11 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/mysql_benchmark_function.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=370</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/mysql_benchmark_function.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236624/1237504</fs:itemid></item><item><title>Oracle11g部分新特性移植到9i和10g</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236625/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Oracle10.2.0.4出来的时候包含了属于Oracle11g的新特性&lt;strong&gt;Real Application Testing&lt;/strong&gt;，现在，通过patch，可以在9i～10g各版本中获得包括&lt;strong&gt;SQL Performance Analyzer&lt;/strong&gt;和&lt;strong&gt;Database Replay&lt;/strong&gt;在内的Oracle11g新特性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SQL Performance Analyzer&lt;/strong&gt;可用于诊断由于系统改变等引起的SQL性能问题，通过在做出改变前后收集一个性能统计报告，然后比较得到性能改变的主要原因。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Database Replay&lt;/strong&gt;则可以捕获产品数据库的压力等，在测试数据库中进行重演，可以更加准确的模拟产品库的压力对应用进行测试，这也是Oracle11g主推的Real Application Testing的主要功能。&lt;/p&gt;
&lt;p&gt;要获得这两个新特性，需要安装Patch，对应的Patch请参考：&lt;strong&gt;Metalink Note:560977.1&lt;/strong&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle11g_new_feature_active_database_duplicate.html&quot; title=&quot;Oracle11g新特性：Active Database Duplicate&quot;&gt;Oracle11g新特性：Active Database Duplicate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle11g_new_feature_automatic_memory_management.html&quot; title=&quot;Oracle11g新特性：Automatic Memory Management(AMM)&quot;&gt;Oracle11g新特性：Automatic Memory Management(AMM)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle11g_new_feature_virtual_column.html&quot; title=&quot;Oracle11g新特性：虚拟列virtual column&quot;&gt;Oracle11g新特性：虚拟列virtual column&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle11g_new_feature_rman_compression_backup.html&quot; title=&quot;Oracle11g新特性：RMAN压缩备份&quot;&gt;Oracle11g新特性：RMAN压缩备份&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle11g_new_feature_server_result_cache3.html&quot; title=&quot;Oracle11g新特性：server result cache续二&quot;&gt;Oracle11g新特性：server result cache续二&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2007/oracle_11g_new_feature_flashback_data_archive.html&quot; title=&quot;Oracle11g新特性：Flashback Data Archive&quot;&gt;Oracle11g新特性：Flashback Data Archive&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html'&gt;http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html#comment'&gt;Add Comments(2)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html&amp;title=Oracle11g%E9%83%A8%E5%88%86%E6%96%B0%E7%89%B9%E6%80%A7%E7%A7%BB%E6%A4%8D%E5%88%B09i%E5%92%8C10g&amp;tags=Oracle11g, 新特性, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/cff858af9006ea0ae32f59987969a8cc&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/cff858af9006ea0ae32f59987969a8cc/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net Oracle10.2.0.4出来的时候包含了属于Oracle11g的新特性Real Application Testing，现在，通过patch，可以在9i～10g各版本中获得包括SQL Performance Analyzer和Database Replay在内的Oracle11g新...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/cff858af9006ea0ae32f59987969a8cc&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/cff858af9006ea0ae32f59987969a8cc/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>新特性</category><category>数据库</category><category>Oracle11g</category><pubDate>Sun, 15 Jun 2008 11:12:24 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=369</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/oracle11g_real_application_testing_available_earlier_releases.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236625/1237504</fs:itemid></item><item><title>MySQL压力测试工具mysqlslap</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236626/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;MySQL从5.1.4版开始带有一个压力测试工具&lt;strong&gt;mysqlslap&lt;/strong&gt;，通过模拟多个并发客户端访问mysql来执行测试，使用起来非常的简单。通过mysqlslap &amp;#8211;help可以获得可用的选项，这里列一些主要的参数，更详细的说明参考&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html&quot;&gt;官方手册&lt;/a&gt;。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&amp;#8211;auto-generate-sql, -a&lt;br /&gt;
自动生成测试表和数据&lt;/p&gt;
&lt;p&gt;&amp;#8211;auto-generate-sql-load-type=type&lt;br /&gt;
测试语句的类型。取值包括：read，key，write，update和mixed(默认)。&lt;/p&gt;
&lt;p&gt;&amp;#8211;number-char-cols=N, -x N&lt;br /&gt;
自动生成的测试表中包含多少个字符类型的列，默认1&lt;/p&gt;
&lt;p&gt;&amp;#8211;number-int-cols=N, -y N&lt;br /&gt;
自动生成的测试表中包含多少个数字类型的列，默认1&lt;/p&gt;
&lt;p&gt;&amp;#8211;number-of-queries=N&lt;br /&gt;
总的测试查询次数&lt;/p&gt;
&lt;p&gt;&amp;#8211;query=name,-q&lt;br /&gt;
使用自定义脚本执行测试，例如可以调用自定义的一个存储过程或者sql语句来执行测试。&lt;/p&gt;
&lt;p&gt;&amp;#8211;create-schema&lt;br /&gt;
测试的schema，MySQL中schema也就是database&lt;/p&gt;
&lt;p&gt;&amp;#8211;commint=N&lt;br /&gt;
多少条DML后提交一次&lt;/p&gt;
&lt;p&gt;&amp;#8211;compress, -C&lt;br /&gt;
如果服务器和客户端支持都压缩，则压缩信息传递&lt;/p&gt;
&lt;p&gt;&amp;#8211;concurrency=N, -c N&lt;br /&gt;
并发量，也就是模拟多少个客户端同时执行select。可指定多个值，以逗号或者&amp;#8211;delimiter参数指定的值做为分隔符&lt;/p&gt;
&lt;p&gt;&amp;#8211;engine=engine_name, -e engine_name&lt;br /&gt;
创建测试表所使用的存储引擎，可指定多个&lt;/p&gt;
&lt;p&gt;&amp;#8211;iterations=N, -i N&lt;br /&gt;
测试执行的迭代次数&lt;/p&gt;
&lt;p&gt;&amp;#8211;detach=N&lt;br /&gt;
执行N条语句后断开重连&lt;/p&gt;
&lt;p&gt;&amp;#8211;debug-info, -T&lt;br /&gt;
打印内存和CPU的信息&lt;/p&gt;
&lt;p&gt;&amp;#8211;only-print&lt;br /&gt;
只打印测试语句而不实际执行&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;测试的过程需要生成测试表，插入测试数据，这个mysqlslap可以自动生成，默认生成一个mysqlslap的schema，如果已经存在则先删除，这里要注意了，不要用&amp;#8211;create-schema指定已经存在的库，否则后果可能很严重。可以用&amp;#8211;only-print来打印实际的测试过程：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$mysqlslap -a &amp;#8211;only-print&lt;br /&gt;
DROP SCHEMA IF EXISTS `mysqlslap`;&lt;br /&gt;
CREATE SCHEMA `mysqlslap`;&lt;br /&gt;
use mysqlslap;&lt;br /&gt;
CREATE TABLE `t1` (intcol1 INT(32) ,charcol1 VARCHAR(128));&lt;br /&gt;
INSERT INTO t1 VALUES (1804289383,&amp;#8217;mxvtvmC9127qJNm06sGB8R92q2j7vTiiITRDGXM9ZLzkdekbWtmXKwZ2qG1llkRw5m9DHOFilEREk3q7oce8O3BEJC0woJsm6uzFAEynLH2xCsw1KQ1lT4zg9rdxBL&amp;#8217;);&lt;br /&gt;
&amp;#8230;&lt;br /&gt;
SELECT intcol1,charcol1 FROM t1;&lt;br /&gt;
INSERT INTO t1 VALUES (364531492,&amp;#8217;qMa5SuKo4M5OM7ldvisSc6WK9rsG9E8sSixocHdgfa5uiiNTGFxkDJ4EAwWC2e4NL1BpAgWiFRcp1zIH6F1BayPdmwphatwnmzdwgzWnQ6SRxmcvtd6JRYwEKdvuWr&amp;#8217;);&lt;br /&gt;
DROP SCHEMA IF EXISTS `mysqlslap`;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;可以看到最后由删除一开始创建的schema的动作，整个测试完成后不会在数据库中留下痕迹。假如我们执行一次测试，分别50和100个并发，执行1000次总查询，那么：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$mysqlslap -a &amp;#8211;concurrency=50,100 &amp;#8211;number-of-queries 1000 &amp;#8211;debug-info&lt;br /&gt;
Benchmark&lt;br /&gt;
  Average number of seconds to run all queries: 0.375 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.375 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.375 seconds&lt;br /&gt;
  Number of clients running queries: 50&lt;br /&gt;
  Average number of queries per client: 20&lt;/p&gt;
&lt;p&gt;Benchmark&lt;br /&gt;
  Average number of seconds to run all queries: 0.453 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.453 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.453 seconds&lt;br /&gt;
  Number of clients running queries: 100&lt;br /&gt;
  Average number of queries per client: 10&lt;/p&gt;
&lt;p&gt;User time 0.29, System time 0.11&lt;br /&gt;
Maximum resident set size 0, Integral resident set size 0&lt;br /&gt;
Non-physical pagefaults 4032, Physical pagefaults 0, Swaps 0&lt;br /&gt;
Blocks in 0 out 0, Messages in 0 out 0, Signals 0&lt;br /&gt;
Voluntary context switches 7319, Involuntary context switches 681&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;上结果可以看出，50和100个并发分别得到一次测试结果(Benchmark)，并发数越多，执行完所有查询的时间越长。为了准确起见，可以多迭代测试几次:&lt;br /&gt;
&lt;coolcode&gt;&lt;/p&gt;
&lt;p&gt;$ mysqlslap -a &amp;#8211;concurrency=50,100 &amp;#8211;number-of-queries 1000 &amp;#8211;iterations=5 &amp;#8211;debug-info&lt;br /&gt;
Benchmark&lt;br /&gt;
  Average number of seconds to run all queries: 0.380 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.377 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.385 seconds&lt;br /&gt;
  Number of clients running queries: 50&lt;br /&gt;
  Average number of queries per client: 20&lt;/p&gt;
&lt;p&gt;Benchmark&lt;br /&gt;
  Average number of seconds to run all queries: 0.447 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.444 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.451 seconds&lt;br /&gt;
  Number of clients running queries: 100&lt;br /&gt;
  Average number of queries per client: 10&lt;/p&gt;
&lt;p&gt;User time 1.44, System time 0.67&lt;br /&gt;
Maximum resident set size 0, Integral resident set size 0&lt;br /&gt;
Non-physical pagefaults 17922, Physical pagefaults 0, Swaps 0&lt;br /&gt;
Blocks in 0 out 0, Messages in 0 out 0, Signals 0&lt;br /&gt;
Voluntary context switches 36796, Involuntary context switches 4093&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;测试同时不同的存储引擎的性能进行对比：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
$ mysqlslap -a &amp;#8211;concurrency=50,100 &amp;#8211;number-of-queries 1000 &amp;#8211;iterations=5 &amp;#8211;engine=myisam,innodbmysqlslap -a &amp;#8211;concurrency=50,100 &amp;#8211;number-of-queries 1000 &amp;#8211;iterations=5 &amp;#8211;engine=myisam,innodb &amp;#8211;debug-info&lt;br /&gt;
Benchmark&lt;br /&gt;
  Running for engine myisam&lt;br /&gt;
  Average number of seconds to run all queries: 0.200 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.188 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.210 seconds&lt;br /&gt;
  Number of clients running queries: 50&lt;br /&gt;
  Average number of queries per client: 20&lt;/p&gt;
&lt;p&gt;Benchmark&lt;br /&gt;
  Running for engine myisam&lt;br /&gt;
  Average number of seconds to run all queries: 0.238 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.228 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.251 seconds&lt;br /&gt;
  Number of clients running queries: 100&lt;br /&gt;
  Average number of queries per client: 10&lt;/p&gt;
&lt;p&gt;Benchmark&lt;br /&gt;
  Running for engine innodb&lt;br /&gt;
  Average number of seconds to run all queries: 0.375 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.370 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.379 seconds&lt;br /&gt;
  Number of clients running queries: 50&lt;br /&gt;
  Average number of queries per client: 20&lt;/p&gt;
&lt;p&gt;Benchmark&lt;br /&gt;
  Running for engine innodb&lt;br /&gt;
  Average number of seconds to run all queries: 0.443 seconds&lt;br /&gt;
  Minimum number of seconds to run all queries: 0.440 seconds&lt;br /&gt;
  Maximum number of seconds to run all queries: 0.447 seconds&lt;br /&gt;
  Number of clients running queries: 100&lt;br /&gt;
  Average number of queries per client: 10&lt;/p&gt;
&lt;p&gt;User time 2.83, System time 1.66&lt;br /&gt;
Maximum resident set size 0, Integral resident set size 0&lt;br /&gt;
Non-physical pagefaults 34692, Physical pagefaults 0, Swaps 0&lt;br /&gt;
Blocks in 0 out 0, Messages in 0 out 0, Signals 0&lt;br /&gt;
Voluntary context switches 87306, Involuntary context switches 10326&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_benchmark_function.html&quot; title=&quot;MySQL的benchmark函数&quot;&gt;MySQL的benchmark函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html&quot; title=&quot;MySQL命令行的几个用法&quot;&gt;MySQL命令行的几个用法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/using_hscale_for_mysql_partition_.html&quot; title=&quot;用HSCALE实现MySQL的数据分布式存储&quot;&gt;用HSCALE实现MySQL的数据分布式存储&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/rpm_error_specifies_multiple-packages.html&quot; title=&quot;卸载rpm包遭遇error: specifies multiple packages&quot;&gt;卸载rpm包遭遇error: specifies multiple packages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mysql_conv_function.html&quot; title=&quot;MySQL的conv函数&quot;&gt;MySQL的conv函数&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/open_source_and_sun_mysql.html&quot; title=&quot;开源，是一种精神&quot;&gt;开源，是一种精神&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html'&gt;http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html#comment'&gt;Add Comments(0)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html&amp;title=MySQL%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7mysqlslap&amp;tags=MySQL, mysqlslap, 测试, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/a71c7396175adc02834e95a0a5461407&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/a71c7396175adc02834e95a0a5461407/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net MySQL从5.1.4版开始带有一个压力测试工具mysqlslap，通过模拟多个并发客户端访问mysql来执行测试，使用起来非常的简单。通过mysqlslap &amp;#8211;help可以获得可用的选项，这里...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/a71c7396175adc02834e95a0a5461407&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/a71c7396175adc02834e95a0a5461407/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>MySQL</category><category>测试</category><category>数据库</category><category>mysqlslap</category><pubDate>Fri, 13 Jun 2008 13:33:05 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=368</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/mysql_load_test_tool_mysqlslap.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236626/1237504</fs:itemid></item><item><title>Oracle10gR2 Logical Standby(六)逻辑备库的Failover</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236627/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;当主库由于某种原因不可用时，需要考虑将备库直接拉起来，这就是failover。基本原理和操作步骤和switchover差不多只是不管主库，直接将备库切换成新的主库。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一.切换前的检查&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;确保所有能应用的归档都已经应用。确保监听设置正确。确保切换后应用能连接到新的主库等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二.停止SQL Apply&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果原来是停止的，那么可能还有部分最新的日志没有应用，则最好先应用一下日志，减少最终切换需要的时间：&lt;/p&gt;
&lt;p&gt;&lt;coolcode&gt;&lt;br /&gt;
alter database start logical standby apply finish;&lt;/p&gt;
&lt;p&gt;alter database stop logical standby apply;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三.激活备库&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以下命令会终止RFS，然后应用还未应用的日志，最后将数据库转换成primary角色。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database activate logical standby database finish apply;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;至此，逻辑备库已经转换成主库，非常的简单。由于数据库本身是open的，转换后无须再作任何操作&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select database_role from v$database;&lt;/p&gt;
&lt;p&gt;DATABASE_ROLE&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
PRIMARY&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;四.处理其他备库&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果原来的DataGuard中还有不止一个逻辑备库，则其中一个逻辑备库failover成主库以后，其他的备库需要重新指向新的主库。首先在其他备库创建一个到新主库的database link&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter session disable guard;&lt;br /&gt;
create database link newprimary connect to user identified by password using &amp;#8216;newprimary&amp;#8217;;&lt;br /&gt;
alter session enable guard;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
然后重新指向新的备库&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database start logical standby apply new primary newprimary;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
如果执行时出现ORA-16109: failed to apply log data from previous primary，则备库只有重做了。&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/aix_oracle_10204_issues.html&quot; title=&quot;AIX平台升级到Oracle10.2.0.4的几个问题&quot;&gt;AIX平台升级到Oracle10.2.0.4的几个问题&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_asm_discovery_disk.html&quot; title=&quot;ASM如何识别磁盘&quot;&gt;ASM如何识别磁盘&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/how_an_asm_diskgroup_found_by_oracle_database.html&quot; title=&quot;Oracle数据库如何识别ASM磁盘组&quot;&gt;Oracle数据库如何识别ASM磁盘组&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_switchover.html&quot; title=&quot;Oracle10gR2 Logical Standby(五)逻辑备库的Switchover&quot;&gt;Oracle10gR2 Logical Standby(五)逻辑备库的Switchover&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_convert_to_logical_standby_database.html&quot; title=&quot;Oracle10gR2 Logical Standby(四)转换逻辑备库的过程&quot;&gt;Oracle10gR2 Logical Standby(四)转换逻辑备库的过程&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/mulit_listener_process_on_oracle_10204_linux64.html&quot; title=&quot;Oracle10.2.0.4 Linux64版本监听存在多个子进程&quot;&gt;Oracle10.2.0.4 Linux64版本监听存在多个子进程&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;PermLink:&lt;/b&gt; &lt;a href='http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html'&gt;http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href='http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html#comment'&gt;Add Comments(1)&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://twitter.com/NinGoo'&gt;Follow NinGoo@Twitter&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href='http://www.google.com/ig/add?feedurl=http://rss.ningoo.net'&gt;Google Reader&lt;/a&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html&amp;title=Oracle10gR2+Logical+Standby%28%E5%85%AD%29%E9%80%BB%E8%BE%91%E5%A4%87%E5%BA%93%E7%9A%84Failover&amp;tags=failover, logincal standby, oracle, &quot;&gt;&lt;img src=&quot;http://www.ningoo.net/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/d25ff52fccd4b79de0e434325ba07c52&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/d25ff52fccd4b79de0e434325ba07c52/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</content:encoded><wfw:commentRss>http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html/feed</wfw:commentRss><description>Author:NinGoo posted on NinGoo.net 当主库由于某种原因不可用时，需要考虑将备库直接拉起来，这就是failover。基本原理和操作步骤和switchover差不多只是不管主库，直接将备库切换成新的主库。
一.切...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/NinGoo/d25ff52fccd4b79de0e434325ba07c52&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/NinGoo/d25ff52fccd4b79de0e434325ba07c52/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>oracle</category><category>failover</category><category>数据库</category><category>logincal standby</category><pubDate>Thu, 12 Jun 2008 14:37:16 +0800</pubDate><author>NinGoo</author><comments>http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html#comments</comments><guid isPermaLink="false">http://www.ningoo.net/?p=367</guid><dc:creator>NinGoo</dc:creator><fs:srclink>http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_failover.html</fs:srclink><fs:srcfeed>http://www.ningoo.net/feed/</fs:srcfeed><fs:itemid>feedsky/NinGoo/~1461473/88236627/1237504</fs:itemid></item><item><title>Oracle10gR2 Logical Standby(五)逻辑备库的Switchover</title><link>http://item.feedsky.com/~feedsky/NinGoo/~1461473/88236628/1237504/1/item.html</link><content:encoded>&lt;p&gt;Author:&lt;a href='http://www.ningoo.net'&gt;NinGoo&lt;/a&gt; posted on &lt;a href='http://www.ningoo.net/html/2008/oracle10gr2_logical_standby_database_switchover.html'&gt;NinGoo.net&lt;/a&gt; &lt;a href='http://rss.ningoo.net'&gt;&lt;img style='border: 0pt none;' align='middle' src='http://www.feedsky.com/feed/NinGoo/sc/gif'&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;相对物理备库的切换，逻辑备库的切换稍微复杂点，但只要按照步骤，整个操作过程也可以在很短的时间内完成。这里记录下主库正常时的switchover操作过程：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.切换前的检查&lt;/strong&gt;&lt;br /&gt;
包括主备库参数设置，主备库的TNS设置，以及应用连接数据库的TNS等，确保主备库角色转换后整个系统运行不受影响。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.主库准备切换&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database prepare to switchover to logical standby;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;命令执行成功后，主库的状态&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select switchover_status from v$database;&lt;/p&gt;
&lt;p&gt;SWITCHOVER_STATUS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
PREPARING SWITCHOVER&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.备库准备切换&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database prepare to switchover to primary;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
命令执行成功后，备库的状态&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select switchover_status from v$database;&lt;/p&gt;
&lt;p&gt;SWITCHOVER_STATUS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
PREPARING SWITCHOVER&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.主库开始切换&lt;/strong&gt;&lt;br /&gt;
执行完第3步后，现在的备库需要生成logminer所需要的数据字典信息，然后传送到现在的主库，所以要执行逻辑备库切换，&lt;strong&gt;必须在备库也设置到主库的归档路径，并且主备库监听都需要保持开启&lt;/strong&gt;。否则，切换的状态就会一直停留在PREPARING SWITCHOVER。&lt;/p&gt;
&lt;p&gt;备库数据字典信息传递到主库后，主库的状态变成TO LOGICAL STANDBY，这时才能执行实际的切换。&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select switchover_status from v$database;&lt;/p&gt;
&lt;p&gt;SWITCHOVER_STATUS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
TO LOGICAL STANDBY&lt;/p&gt;
&lt;p&gt;alter database commit to switchover to logical standby;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;注：在PREPARING SWITCHOVER状态时，可以通过执行以下命令取消切换操作：&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database prepare to switchover cancel;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5.从库切换&lt;/strong&gt;&lt;br /&gt;
上一步成功后，备库的状态应该变成了TO PRIMARY，则可以执行切换&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
select switchover_status from v$database;&lt;/p&gt;
&lt;p&gt;SWITCHOVER_STATUS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
TO PRIMARY&lt;/p&gt;
&lt;p&gt;alter database commit to switchover to primary;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6.在新的备库启动日志应用进程&lt;/strong&gt;&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database start logical standby apply;&lt;br /&gt;
&lt;/coolcode&gt;&lt;br /&gt;
如果是实时应用，则&lt;br /&gt;
&lt;coolcode&gt;&lt;br /&gt;
alter database start logical standby apply immediate;&lt;br /&gt;
&lt;/coolcode&gt;&lt;/p&gt;
&lt;br/&gt;&lt;b&gt;Related Articles&lt;/b&gt;&lt;p&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.ningoo.net/html/2008/oracle10gr2_convert_to_logical_standby_database.html&quot; title=&quot;Oracle10gR2 Logical Standby(四)转换逻辑备库的过程&quot;&gt;Oracle10gR2 Logical Standby(四)转换逻辑备库的过