<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.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:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/anysql" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/anysql" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 20 Nov 2008 00:10:12 GMT</lastBuildDate><title>AnySQL.net</title><description>个人软件, 生活, 研究与专业的Oracle数据恢复服务</description><image><url>http://www.feedsky.com/feed/anysql/sc/gif</url><title>AnySQL.net</title><link>http://www.anysql.net/</link></image><link>http://www.anysql.net/</link><admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.36"></admin:generatorAgent><admin:errorReportsTo rdf:resource="mailto:anysql@live.com"></admin:errorReportsTo><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase><pubDate>Thu, 20 Nov 2008 00:10:12 GMT</pubDate><dc:creator>anysql@live.com</dc:creator><item><title>用Perl写Primary维护脚本</title><link>http://www.anysql.net/dba/perl_purge_primary_archivelog.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 维护生产库上的归档日志都不是一件容易的事, 一方面要尽量保存可能多的归档日志, 另一方面又要确保归档日志空间足够, 给归档日志用的卷又不会是很大, 最关键的是你不能时时盯着卷的容量, 还要保证删除不出错. 这个工作其实是有如下几个需求: &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 1, 根据容量保存最新的日志, 如保存最新的200个归档. 2, 根据生成时间保存最新的日志, 如只删除一天以前产生的归档日志. 3, 只能删除已经在备库上应用过的归档日志, 以防止传输中出错, 最底要求是只能删除已经传送到一个或几个备库上的日志. 根据这三点要求来看, 你会发现目前没有好的现成的脚本来定期删除生产库上的归档日志, 所以我就自已写了一个, 可满足以上三个要求. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 根据上一篇&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;Standby的脚本&lt;/a&gt;, 很容易写一个脚本来获得备库上已经应用过的日志的Sequence号, 然后在删除主库归档日志文件的脚本中, 通过ssh来调用. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
sub getSSHStandbyLog&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my ($host,$sid) = @_;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my $logseq = &quot;???&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; eval {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; local $SIG{ALRM} = sub { die &quot;???\n&quot; }; # NB: \n required&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alarm 10;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $logseq = `ssh -n -a -q -o NumberOfPasswordPrompts=0 $host /home/oracle/admin/bin/getstandbylog.pl $sid`;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alarm 0;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; };&lt;br /&gt;
&amp;nbsp; &amp;nbsp; $logseq = &quot;???&quot; if ($@ eq &quot;???\n&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; $logseq = &quot;???&quot; if (length($logseq) == 0);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; chomp($logseq);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; scalar $logseq;&lt;br /&gt;
}
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 然后到着查找到最小的归档日志, 再顺着删除, 就比较完全了. 昨天已经在一个库上用上了新脚本, 正在观察中.&lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html&quot;&gt;Remote DD或Raw-rsync&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/perl_aix_net_traffic.html&quot;&gt;Perl监控AIX的网卡流量&lt;/a&gt; (0)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html#comments&quot; title=&quot;Comment on: 用Perl写Primary维护脚本&quot;&gt;我要留言&lt;/a&gt;(当前0)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 维护生产库上的归档日志都不是一件容易的事, 一方面要尽量保存可能多的归档日志, 另一方面又要确保归档日志空间足够, 给归档日志用的卷又不会是很大, 最关键的是你不能时时盯着卷的容量, 还要保证删除不出错. 这个工作其实是有如下几个需求: &amp;nbsp; &amp;nbsp; 1, 根据容量保存最新的日志, 如保存最新的200个归档. 2, 根据生成时间保存最新的日志, 如只删除一天以前产生的归档日志. 3, 只能删除已经在备库上应用过的归档日志, 以防止传输中出错,...</description><category domain="http://www.sixapart.com/ns/types#tag">Perl</category><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Data Guard</category><category domain="http://www.sixapart.com/ns/types#tag">Standby</category><category domain="http://www.sixapart.com/ns/types#tag">Archive</category><pubDate>Thu, 20 Nov 2008 08:10:12 +0800</pubDate><guid isPermaLink="false">968@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/perl_purge_primary_archivelog.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893257/1230545</fs:itemid></item><item><title>用Perl写Standby维护脚本</title><link>http://www.anysql.net/dba/perl_purge_standby_archivelog.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; Perl是一门非常适合用来写数据库管理脚本的语言, Shell当然也很强, 但在这个领域还是没有Perl好. 来讲一个最简单的需求, 需要取得Standby或Dataguard上最后一个应用的归档日志, 在普通恢复和Managed恢复方式都要支持, 这个需求并不容易准确地实现. 如果用Perl来分析Oracle的alert日志文件, 则比较容易. 如下所示: &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
sub getLastRecoveredLog&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my ($alert_log_file) = @_;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my $logseq = &quot;???&quot;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my $lastline = `tail -1000 ${alert_log_file} | grep &quot;Media Recovery Log&quot; | tail -1`;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if (defined($lastline))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $lastline =~ s/.*\///g;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @cols = ($lastline =~ /\w+_\d?_(\d+)[\.|_]/);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (defined($cols[0]))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $logseq = $cols[0];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $logseq = $logseq - 1;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; scalar $logseq;&lt;br /&gt;
}
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 如要删除已经应用过的归档日志, 那么只需要再写一个根据Sequence查找归档日志位置的函数就行了. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
sub findLogBySequence&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my ($logseq) = @_;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; my $logfile = `find /data*/arch -follow -name *_${logseq}.* | head -1`;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; chomp($logfile);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # Foloowing logic is for Oracle 10g&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if (length($logfile) == 0)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;  $logfile = `find /data*/arch -follow -name *_${logseq}_* | head -1`;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;  chomp($logfile);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; scalar $logfile;&lt;br /&gt;
}
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 先找出所有要删除的归档日志, 存在变量中, 然后根据Sequence从小删到大就行了. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html&quot;&gt;Remote DD或Raw-rsync&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/perl_aix_net_traffic.html&quot;&gt;Perl监控AIX的网卡流量&lt;/a&gt; (0)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html#comments&quot; title=&quot;Comment on: 用Perl写Standby维护脚本&quot;&gt;我要留言&lt;/a&gt;(当前1)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; Perl是一门非常适合用来写数据库管理脚本的语言, Shell当然也很强, 但在这个领域还是没有Perl好. 来讲一个最简单的需求, 需要取得Standby或Dataguard上最后一个应用的归档日志, 在普通恢复和Managed恢复方式都要支持, 这个需求并不容易准确地实现. 如果用Perl来分析Oracle的alert日志文件, 则比较容易. 如下所示: sub getLastRecoveredLog { &amp;nbsp; &amp;nbsp; my ($alert_log_file) =...</description><category domain="http://www.sixapart.com/ns/types#tag">Perl</category><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Data Guard</category><category domain="http://www.sixapart.com/ns/types#tag">Standby</category><category domain="http://www.sixapart.com/ns/types#tag">Archive</category><pubDate>Sat, 15 Nov 2008 09:45:11 +0800</pubDate><guid isPermaLink="false">967@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/perl_purge_standby_archivelog.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893258/1230545</fs:itemid></item><item><title>节约历史库的存贮</title><link>http://www.anysql.net/dba/save_huge_hisdb_storage.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; eBay的chao_ping在Oracle-l中问如何节约历史库的空间, 经过了10年的发展, eBay的历史库积累了100多TB的数据, 并且数据的增幅很大, 虽然历史库用不着很好的存贮, 但这笔成本还是比较大的. 已经使用了压缩表将常规的表的空间压缩到了三分之一到六分之一, 但其中有一半的数据是用LONG或LONG RAW类型存放的, 没有办法用压缩表. 想想再过几年, 这样的历史库空间问题, 也会面临在很多的DBA前面. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 在Oracle中比较花存贮的有如下方面: &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;字段编码&lt;/strong&gt;. 不要小看这个字段编码, 比如状态字段, 用&quot;E&quot;和用&quot;ENABLE&quot;来表示, 当然后者更好读了, 生产库中应用开发人员可能偏向于后者, 但到历史库中时, 不如转换成前者. 其实一个表中一般不止一个这样的状态字段. 因此我将这个摆在第一位.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;索引&lt;/strong&gt;. 在生产库上就有些索引, 用得很少, 但每次要用, 都是比较重要的情况, 因此不得不心不由己地加索引, 历史库也有一样的情况. 其实有时不如引进针对某类记录的附加表, 来解决大表的索引问题. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;LOB列&lt;/strong&gt;. 大量的LOB不光是耗性能, 也是很耗空间的, 因为LOB的最小分配单位是一个数据块, 两个LOB值没有办法共享一个数据块. 如果是CLOB, 在变长字符集中存放大量英文文本的话, 浪费更严重, 一个英文字母在LOB中存放需要占用两个字节, 不管是INLINE还是OUTLINE. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;LONG列&lt;/strong&gt;. 有LONG的列没有办法压缩, 在插入记录时, Oracle也会过量使用空的数据库, 因而浪费空间. 用utl_compress将值取出来, 再存到LONG RAW中或RAW中, 也是不错的选择. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;垃圾数据&lt;/strong&gt;. 数据库中肯定多多少少会有垃级记录, 象天文数字交易额的交易记录等等, 要筛选这些记录, 过程可能过于复杂, 所以就留了它们. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 当然应对的办法, 也就随之而出了, 压缩及11g中的新的LOB格式. 也许可以将所有的字段进行序列化, 然后存在一个字段中, 要查询时用应用来解开这些字段. 过段时间也好好分析一下我们的历史库, 想想有没有办法省钱. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/oracle_lob_export_parallel.html&quot;&gt;容易遗忘的手工并行&lt;/a&gt; (4)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/dba_think_twice.html&quot;&gt;最有价值的键盘一击, 值220700美金&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/save_huge_hisdb_storage.html#comments&quot; title=&quot;Comment on: 节约历史库的存贮&quot;&gt;我要留言&lt;/a&gt;(当前0)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; eBay的chao_ping在Oracle-l中问如何节约历史库的空间, 经过了10年的发展, eBay的历史库积累了100多TB的数据, 并且数据的增幅很大, 虽然历史库用不着很好的存贮, 但这笔成本还是比较大的. 已经使用了压缩表将常规的表的空间压缩到了三分之一到六分之一, 但其中有一半的数据是用LONG或LONG RAW类型存放的, 没有办法用压缩表. 想想再过几年, 这样的历史库空间问题, 也会面临在很多的DBA前面. &amp;nbsp; &amp;nbsp; 在Oracle中比较花存贮的有如下方面: &amp;nbsp; &amp;nbsp;...</description><category domain="http://www.sixapart.com/ns/types#tag">LOB</category><category domain="http://www.sixapart.com/ns/types#tag">Compress</category><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Backup</category><pubDate>Fri, 07 Nov 2008 18:54:03 +0800</pubDate><guid isPermaLink="false">966@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/save_huge_hisdb_storage.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893259/1230545</fs:itemid></item><item><title>AUL DMP中用户名不再是MYDUL了</title><link>http://www.anysql.net/aulmydul/real_owner_aul_dmp.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; AUL的DMP格式文件很方便于恢复数据, 但还是有一个地方不爽, 因为在DMP格式中, 表的所有者总是MYDUL这个用户, 而不是这个表原来的用户名. 例如用下面的命令恢复一个表:&lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
set output_style dmp;&lt;br /&gt;
set charset 852;&lt;br /&gt;
UNLOAD TABLE GX.VIO_FORCE TO TEMP.dmp;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 在导入时, 就一定要用DBA权限用户, 并且指定FROMUSER和TOUSER选项, 才能导回到原来的用户中去. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
imp system file=TEMP.dmp fromuser=MYDUL touser=GX
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 改进后, 就不需要用DBA权限的用户, 也不需要指定FROMUSER和TOUSER了. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
imp gx file=TEMP.dmp 
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 下面是真实的测试例子. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
Export file created by EXPORT:V08.01.07 via conventional path&lt;br /&gt;
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set&lt;br /&gt;
. importing GX's objects into GX&lt;br /&gt;
. importing GX's objects into GX&lt;br /&gt;
. . importing table&amp;nbsp; &amp;nbsp; &amp;nbsp;  &quot;VIO_FORCE&quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 rows imported&lt;br /&gt;
Import terminated successfully without warnings.
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 有少数用户或中间人水平实在比较菜, 用imp导入时不知道如何写fromuser和touser选项, 只好从&lt;strong&gt;客户第一&lt;/strong&gt;出发, 再作改进了. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/aulmydul/aul_robustdmp.html&quot;&gt;AUL 5对恢复成DMP格式支持得更好了&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/aulmydul/fast_recover_100_tables.html&quot;&gt;连错库误删100多张表&lt;/a&gt; (9)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/imp_to_another_table.html&quot;&gt;将dmp数据导入到另一个表&lt;/a&gt; (2)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/aulmydul/aul_better_for_nchar.html&quot;&gt;Oracle不行再用AUL&lt;/a&gt; (7)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/aulmydul/aul_better_for_clob.html&quot;&gt;Oracle DUL不行就用AUL&lt;/a&gt; (10)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/aulmydul/real_owner_aul_dmp.html#comments&quot; title=&quot;Comment on: AUL DMP中用户名不再是MYDUL了&quot;&gt;我要留言&lt;/a&gt;(当前4)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; AUL的DMP格式文件很方便于恢复数据, 但还是有一个地方不爽, 因为在DMP格式中, 表的所有者总是MYDUL这个用户, 而不是这个表原来的用户名. 例如用下面的命令恢复一个表: set output_style dmp; set charset 852; UNLOAD TABLE GX.VIO_FORCE TO TEMP.dmp; &amp;nbsp;...</description><category domain="http://www.sixapart.com/ns/types#tag">AUL/MyDUL</category><category domain="http://www.sixapart.com/ns/types#tag">Recovery</category><category domain="http://www.sixapart.com/ns/types#tag">Import</category><category domain="http://www.sixapart.com/ns/types#tag">Export</category><pubDate>Fri, 24 Oct 2008 00:15:22 +0800</pubDate><guid isPermaLink="false">964@http://www.anysql.net/</guid><dc:subject>AUL/MyDUL</dc:subject><fs:srclink>http://www.anysql.net/aulmydul/real_owner_aul_dmp.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893260/1230545</fs:itemid></item><item><title>步行十多公里回家</title><link>http://www.anysql.net/life/walk_long_time_home.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 入夏以来, 就没有怎么去爬过山. 入秋以来, 除了一次背儿子从老和山到北高峰后, 也没有再爬过山, 基本上最近三个月以来, 没有锻练过身体了, 因此决定今天去爬山. 否则骨头就老化了, 会再没有信心去黄山及其他名山了. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 中午请&lt;a href=&quot;http://www.ningoo.net&quot;&gt;ningoo&lt;/a&gt;和blue_prince吃完饭后, 本想三个人一起去爬山的, 结果blue_prince总是临阵退却, 说要回去睡觉, 于是就两个人去了. 我和ningoo是超级能走的人, 大家在爬山和走路方面是惺惺相惜的, 他也难找到和他一样能走的人, 我也很难找到和我一样能走的人. 老和山到北高峰这条路线走得太多了, 于是打车去西湖南面的玉皇山, 花了ningoo身上仅有的三十块钱, 他身无分文了. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 玉皇山不高, 才200多米, 感觉走得很不过瘾. ningoo刚好聊起了周四和biti_rainy从西湖杨公堤(花岗观鱼)&lt;a href=&quot;http://bitirainy.spaces.live.com/blog/cns!6AECD20E2E08EE3A!1095.entry&quot; target=&quot;_blank&quot;&gt;走路回家&lt;/a&gt;的事, biti_rainny最近为了控制身材常走路回家, 不仅省越来越贵的汽油, 据说也减掉了身上7斤油, 要打劫的人可以事先在路线上计划了. 于是我说, 反正你身上一分钱也没有了, 一起走回去吧, 挑战一下自已. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 于是从山上下来到达虎跑, 然后走到杨公堤, 经花岗观鱼, 经苏堤, 在西湖边上泡了泡臭脚后, 继续走到曙光路, 走浙大玉泉校区, 回到古荡小区. 路上在商量, 下次去哪儿爬山, 光爬山也有点单调, 搞辆自行车, 以后可以试试骑个50公里来锻练一下, 以后再去玉皇山, 也可以骑自行车去了, 省了打车的钱. 就去路边的自行车铺一下买了两辆永久牌自行车. 我的记忆中还是留恋在过去的28式上, 钢圈而不是铝圈, 够结实, 以前载过两个大人都没有问题的自行车, 可惜现在一般地方也没有买了, 买得到也很贵了. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 以后再去爬山或骑车, 要喊biti_rainy一起去了, 如果很远, 怂拥他开车去, 然后爬山, 再开车回来, 比如去黄山, 反正他还是很想继续塑身的. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 这一路下来, 我是相当的累了, ningoo则休息了几分钟就好了, 毕竞是年青人, 晚上还做了丰富的晚餐一起吃. 这小子现在还没有对象, 未婚年轻漂亮女生赶紧来抢这样的好男人. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/is_my_son_hungry.html&quot;&gt;不知道小孩吃饱了没?&lt;/a&gt; (2)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/where_is_girl_friend.html&quot;&gt;明月几时有?&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/get_the_credit_card.html&quot;&gt;人品没有问题了&lt;/a&gt; (6)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/get_126_password_back.html&quot;&gt;找回126邮箱的密码&lt;/a&gt; (5)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/my_network_channels.html&quot;&gt;生活锁事::无线网络&lt;/a&gt; (4)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/life/walk_long_time_home.html#comments&quot; title=&quot;Comment on: 步行十多公里回家&quot;&gt;我要留言&lt;/a&gt;(当前10)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 入夏以来, 就没有怎么去爬过山. 入秋以来, 除了一次背儿子从老和山到北高峰后, 也没有再爬过山, 基本上最近三个月以来, 没有锻练过身体了, 因此决定今天去爬山. 否则骨头就老化了, 会再没有信心去黄山及其他名山了. &amp;nbsp; &amp;nbsp; 中午请ningoo和blue_prince吃完饭后, 本想三个人一起去爬山的, 结果blue_prince总是临阵退却, 说要回去睡觉, 于是就两个人去了. 我和ningoo是超级能走的人,...</description><category domain="http://www.sixapart.com/ns/types#tag">Life</category><pubDate>Sun, 19 Oct 2008 23:25:05 +0800</pubDate><guid isPermaLink="false">963@http://www.anysql.net/</guid><dc:subject>Life</dc:subject><fs:srclink>http://www.anysql.net/life/walk_long_time_home.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893261/1230545</fs:itemid></item><item><title>用rawsync来做Standby</title><link>http://www.anysql.net/dba/huge_standby_with_rawsync.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 制作一个远程Standby, 如果数据库很忙, 生成的归档太多了, 没有足够的空间可以保存所有的归档日志, 可以参考如下步骤, 一部份一部份地将Standby建起来. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
1, 在远程Standby机器上安装Oracle, 规划裸设备&lt;br /&gt;
2, 创建Standby的参数文件, 启动实例&lt;br /&gt;
3, 从主库生成Standby控制文件, 拷到备库, MOUNT备库&lt;br /&gt;
4, 配置参数, 自动接收或用脚本传输归档日志&lt;br /&gt;
5, 将Standby端的所有数据文件offline drop&lt;br /&gt;
6, 用rman在线拷出一部份数据文件&lt;br /&gt;
7, 用rawsync将数据文件传到Standby&lt;br /&gt;
8, 将拷贝过来的数据文件online起来&lt;br /&gt;
9, 恢复数据库, 应用部分归档日志&lt;br /&gt;
10, 停止恢复, 转到第5步, 直到所有的数据文件都过来
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 当网络不好时, 可以用rawsync的&quot;-z&quot;选项来透明地压缩和压缩文件, 以节约网络带宽. 也可以用脚本来实现第3步到第10步, 也就是说创建一个Standby也就是发一个脚本命令再加上等待就行了, 不管这个数据库多大多忙, 是否建在裸设备(&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;由rawsync处理&lt;/a&gt;)上. &lt;/p&gt;

&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html&quot;&gt;Remote DD或Raw-rsync&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_alipay.html&quot;&gt;我的工具在新公司&lt;/a&gt; (0)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html#comments&quot; title=&quot;Comment on: 用rawsync来做Standby&quot;&gt;我要留言&lt;/a&gt;(当前0)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 制作一个远程Standby, 如果数据库很忙, 生成的归档太多了, 没有足够的空间可以保存所有的归档日志, 可以参考如下步骤, 一部份一部份地将Standby建起来. 1, 在远程Standby机器上安装Oracle, 规划裸设备 2, 创建Standby的参数文件, 启动实例 3, 从主库生成Standby控制文件, 拷到备库, MOUNT备库 4, 配置参数,...</description><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Tools</category><category domain="http://www.sixapart.com/ns/types#tag">rsync</category><category domain="http://www.sixapart.com/ns/types#tag">Standby</category><pubDate>Wed, 15 Oct 2008 13:40:55 +0800</pubDate><guid isPermaLink="false">961@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/huge_standby_with_rawsync.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893262/1230545</fs:itemid></item><item><title>rawsync初步搞定</title><link>http://www.anysql.net/dba/rawsync_ready_for_test.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; rsync适合于用来文件系统上文件的网络拷贝, 但并不适合于&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html&quot;&gt;裸设备的网络对拷&lt;/a&gt;, 主要原因如下: &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
&lt;div&gt;1, 区分符号链接.&lt;/div&gt;
&lt;div&gt;2, 源端是符号链接时不传内容.&lt;/div&gt;
&lt;div&gt;3, 目标端先生成监时文件.&lt;/div&gt;
&lt;div&gt;4, 目标端先删除原文件, 然后重命令传好的监时文件.&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 当面对裸设备时, 则不需要以上功能, 实际上要变成只传内容, 不管两边的文件类型是否一样, 如下所示: &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
&lt;div&gt;1, 不要区分符号链接.&lt;/div&gt;
&lt;div&gt;2, 只要传内容就行.&lt;/div&gt;
&lt;div&gt;3, 目标端不先生成监时文件.&lt;/div&gt;
&lt;div&gt;4, 以覆盖方式写, 不去缩小目标端文件.&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 今天改了半天的rsync源代码, 初步实现了以上功能, 但有待正式场合的考验. 我的测试用例. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
&lt;div&gt;源端: 几个大小不同的文件&lt;/div&gt;
&lt;div&gt;目标: 一个链接文件, 指向别的文件&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 传了几次, 目标端的link没有被替换掉, 并且用小的文件替换大的文件时, 只有前面部份内容被冲掉, 已达到我的设想了. &lt;a href=&quot;http://www.anysql.net/software/rawsync.zip&quot;&gt;下载rawsync&lt;/a&gt;(AIX/Linux), 开始试试吧？&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html&quot;&gt;Remote DD或Raw-rsync&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_alipay.html&quot;&gt;我的工具在新公司&lt;/a&gt; (0)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html#comments&quot; title=&quot;Comment on: rawsync初步搞定&quot;&gt;我要留言&lt;/a&gt;(当前1)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; rsync适合于用来文件系统上文件的网络拷贝, 但并不适合于裸设备的网络对拷, 主要原因如下: 1, 区分符号链接. 2, 源端是符号链接时不传内容. 3, 目标端先生成监时文件. 4, 目标端先删除原文件, 然后重命令传好的监时文件. &amp;nbsp; &amp;nbsp; 当面对裸设备时, 则不需要以上功能, 实际上要变成只传内容, 不管两边的文件类型是否一样,...</description><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Tools</category><category domain="http://www.sixapart.com/ns/types#tag">rsync</category><category domain="http://www.sixapart.com/ns/types#tag">Standby</category><pubDate>Tue, 14 Oct 2008 22:21:23 +0800</pubDate><guid isPermaLink="false">960@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/rawsync_ready_for_test.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893263/1230545</fs:itemid></item><item><title>公司内部技术讲座</title><link>http://www.anysql.net/dba/alipay_internal_training_01.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 题目为&lt;strong&gt;基于数据的性能调整&lt;/strong&gt;, 来到杭州的新公司, 首要面对的问题是性能问题, 如何让系统支持未来业务的增长. 另外, 由于是中间进来的, 对应用并不了解, 那就只能将一些性能数据共享给应用开发人员, 请他们一起来关注, 以解决一些很明显的性能问题. 用数据来说明问题, 而不是用感觉, 那是必须的, 才能获得认同. 来听的人主要有系统分析师及程序开发人员.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 主要给人介绍了三个SQL方面成本值的含义. 1, &lt;strong&gt;执行次数&lt;/strong&gt;. 这一块DBA很难去发现问题, 而应用开发人员或熟悉业务的人员则很容易, 每秒的执行次数和业务量一比, 结果就出来了. 2, &lt;strong&gt;逻辑读&lt;/strong&gt;. 逻辑读的含义, 和逻辑读的高成本, 没有想象中的内存访问那么简单. 按卖家去查的一些SQL逻辑读特别高, 单次执行的历史成本数据等等. 3, &lt;strong&gt;返回记录数&lt;/strong&gt;. 部分表单次查询返回记录数大于1时和业务的关系, 单次执行返回小于1条记录时的含义. 也抛出了一些很明显的有待解决的问题.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 介绍了几个Statspack信息的查询界面, 如何去看这些页面上的信息. 主要有以下几类: &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
&lt;div&gt;1, Abnormal SQL Costs Change&lt;/div&gt;
&lt;div&gt;2, Abnormal DML Rows Change&lt;/div&gt;
&lt;div&gt;3, Top SQL by Execs&lt;/div&gt;
&lt;div&gt;4, Top SQL by Gets&lt;/div&gt;
&lt;div&gt;5, Top SQL by Reads&lt;/div&gt;
&lt;div&gt;6, Top SQL by Rows&lt;/div&gt;
&lt;div&gt;7, Top DML by Rows&lt;/div&gt;
&lt;div&gt;8, Search SQL by Tablename&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 最后介绍了一下用这些数据发现的一些优化案例, 用事实说明一下这些数据, 以证实其有效性. 连续讲了1小时30分钟, 加上问答时间20分钟, 时间算控制得比较好.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 又得开始准备下一次讲课的内容了, 一定要从实践中出来内容. &lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/actual_p590_cpu_usage.html&quot;&gt;估低了P590的CPU利用率&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/improve_dba_service.html&quot;&gt;Step XX Done, Next XX.sql&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/tuning_work_logic.html&quot;&gt;节约数据迁移??分钟&lt;/a&gt; (5)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/oracle_tuning_sequence.html&quot;&gt;节约数据迁移15分钟&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/tuning_update_sql_01.html&quot;&gt;优化一条UPDATE语句&lt;/a&gt; (4)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/alipay_internal_training_01.html#comments&quot; title=&quot;Comment on: 公司内部技术讲座&quot;&gt;我要留言&lt;/a&gt;(当前3)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 题目为基于数据的性能调整, 来到杭州的新公司, 首要面对的问题是性能问题, 如何让系统支持未来业务的增长. 另外, 由于是中间进来的, 对应用并不了解, 那就只能将一些性能数据共享给应用开发人员, 请他们一起来关注, 以解决一些很明显的性能问题. 用数据来说明问题, 而不是用感觉, 那是必须的, 才能获得认同. 来听的人主要有系统分析师及程序开发人员. &amp;nbsp; &amp;nbsp; 主要给人介绍了三个SQL方面成本值的含义....</description><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Tuning</category><pubDate>Thu, 09 Oct 2008 23:08:44 +0800</pubDate><guid isPermaLink="false">958@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/alipay_internal_training_01.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893264/1230545</fs:itemid></item><item><title>我的工具在新公司</title><link>http://www.anysql.net/tools/my_tools_in_alipay.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 转眼间来到杭州的新公司已经半年了, 这半年在工具上没有任何创意, 将以前写的几个工具在这儿用了一用, 到底用了以前写的什么工具呢? &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;oramon&lt;/strong&gt;. 来到一个新的公司, 接触新的数据库, 首要任务当然是去摸一摸它们了, 这就需要去抓一些性能上的数据(系统级的视图), oramon就是这样一个工具, 通过它我迅速了解了数据库的压力情况. 曾经想推荐给集团其他公司的DBA用, 可他们都太历害了, 已有一套自已的, 不需要用这个. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;WebChart&lt;/strong&gt;. 这是我在2003年写的Java Servlet程序, 用来以表格或图的形式展现数据. 用来展现Statspack收集的Top SQL的信息, 及SQL的历史执行情况, Statspack报告能提供的信息实在有些不足. 以前在eBay时也想用的, 只是DBA没有能独立管理的机器, 就没有推荐这个程序, eagle_fan进eBay后用Perl写了一个查看Statspack信息的CGI程序, 因为这个他还获得了一个额外奖励. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;ociuldr&lt;/strong&gt;. 主要用于收集数据, 如实时的业务数据, 每跑一次Statspack后, 将SQL的成本信息收集到专门的Tool DB中, 再用WebChart展示出来. Shell+ociuldr+sqlldr很容易就实现了这样的定时任务, 没有什么编程的工作量. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;Compare Any Column&lt;/strong&gt;. 用来对比最核心的测试环境和生产环境的表结构区别, 一是让产品DBA提前知道下周需要做的生产库变更, 二是对产品DBA做变更的一种检查, 确保所有的变更都及时应用到生产库上. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 好象也是四个, 接下来rsync2会用, 远程的Standby哪个公司都需要, 我们也不例外, 也会选择用它来传输归档日志文件, 只不过通用的脚本还没有写好. AnySQL是彻底地没有用了, ocidiff暂时也没有用武之地, 因为测试环境还不算多, 还在人力范围之内.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 在这里诞生的一个Idea是网络DD程序, 想很方便地进行不同主机的裸设备对拷功能, 不知道能不能实现它. &lt;/p&gt;

&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_ebay.html&quot;&gt;我的工具在eBay&lt;/a&gt; (2)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/how_to_build_dbatools.html&quot;&gt;为如何搭建DBATools.net发愁中...&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/newsite_dbatools_dotnet.html&quot;&gt;申请了新的网站 -- DBATools.net&lt;/a&gt; (7)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_alipay.html#comments&quot; title=&quot;Comment on: 我的工具在新公司&quot;&gt;我要留言&lt;/a&gt;(当前0)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 转眼间来到杭州的新公司已经半年了, 这半年在工具上没有任何创意, 将以前写的几个工具在这儿用了一用, 到底用了以前写的什么工具呢? &amp;nbsp; &amp;nbsp; oramon. 来到一个新的公司, 接触新的数据库, 首要任务当然是去摸一摸它们了, 这就需要去抓一些性能上的数据(系统级的视图), oramon就是这样一个工具, 通过它我迅速了解了数据库的压力情况. 曾经想推荐给集团其他公司的DBA用, 可他们都太历害了, 已有一套自已的, 不需要用这个. &amp;nbsp;...</description><category domain="http://www.sixapart.com/ns/types#tag">Alibaba</category><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Tools</category><pubDate>Wed, 08 Oct 2008 09:21:32 +0800</pubDate><guid isPermaLink="false">957@http://www.anysql.net/</guid><dc:subject>Tools</dc:subject><fs:srclink>http://www.anysql.net/tools/my_tools_in_alipay.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893265/1230545</fs:itemid></item><item><title>我的工具在eBay</title><link>http://www.anysql.net/tools/my_tools_in_ebay.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 在eBay工作的3年半时间里, 除了做DBA外, 还写了一些工具, 其中有几个得到了很好的应用, 现在回忆一下用得最好的有四个. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;ocidiff&lt;/strong&gt;. 两个数据库用户之间表(及其他对象)结构双向对比, 及单向自动同步的脚本. 主要解决一些边缘的测试数据库和中心测试环境表结构不一致的问题, 原因是eBay太大了, 测试环境有几十套, 维护同步并不容易, 还是用脚本来得爽. 上去后解决了不少测试环境表缺列或缺少对象的问题. 耗了两个月时间才基本上完善的.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;rsync2&lt;/strong&gt;. rsync自行修改过的版本, 一开始是为了解决大文件传输的问题, Solaris上的软件都很老, 那时rcp,scp,自带的rsync都不支持大于2GB的文件, 及不同机器间rsync版要不一致, 加上服务器的数量太多, 就改成了rsync2了, 放在公共的目录上. 后来发现自带的rsync总用了TCP KEEP ALIVE功能, 网络断了后rsync会保持连接, 永不断开. 在黄勇的帮助下, 改掉了这一点, 并加快了rsync传输的速度, 由此还得了一个奖. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;compare any column&lt;/strong&gt;. 这个和ocidiff有些相似, 都是比较表结构的. 但这个程序只比较表及索引结构, 并且可以实现多点比较(最多实现了40多个机器同名表的结构对比), ocidiff只实现了两个点之间的比较, 用于检查对表结构的修改是否都应用到了所有水平拆分的节点上. 为我们当时提高数据库维护质量带来一定的帮助. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;add column&lt;/strong&gt;. 这个程序逻辑很简单, 就是做DDL遇到Resource Busy时能休息一秒钟后自动重试, 并且自动检查有没有Trigger, 如有自动编译一下, 每一个DDL后都pause一下, 等打回车才继续. 结合Shell脚本, 在水平拆分的库上, 做表结构变更时, 带来了很大的方便性. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 其他有些工具, 用得很少, 如ociuldr和AnySQL这两个, 后来据了解说是我没宣传好, 导致很多人还在用spool导出大数据量的文本文件. 来到杭州新公司后, 也用了一些以前写的工具, 下一次介绍一下吧.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 事隔半年, 不知道现在在用的还有多少, 上面的四个应当都在用, 毕竟才半年啊. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_alipay.html&quot;&gt;我的工具在新公司&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/how_to_build_dbatools.html&quot;&gt;为如何搭建DBATools.net发愁中...&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/newsite_dbatools_dotnet.html&quot;&gt;申请了新的网站 -- DBATools.net&lt;/a&gt; (7)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/tools/my_tools_in_ebay.html#comments&quot; title=&quot;Comment on: 我的工具在eBay&quot;&gt;我要留言&lt;/a&gt;(当前2)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 在eBay工作的3年半时间里, 除了做DBA外, 还写了一些工具, 其中有几个得到了很好的应用, 现在回忆一下用得最好的有四个. &amp;nbsp; &amp;nbsp; ocidiff. 两个数据库用户之间表(及其他对象)结构双向对比, 及单向自动同步的脚本. 主要解决一些边缘的测试数据库和中心测试环境表结构不一致的问题, 原因是eBay太大了, 测试环境有几十套, 维护同步并不容易, 还是用脚本来得爽. 上去后解决了不少测试环境表缺列或缺少对象的问题. 耗了两个月时间才基本上完善的. &amp;nbsp;...</description><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Tools</category><pubDate>Tue, 07 Oct 2008 23:56:27 +0800</pubDate><guid isPermaLink="false">956@http://www.anysql.net/</guid><dc:subject>Tools</dc:subject><fs:srclink>http://www.anysql.net/tools/my_tools_in_ebay.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893266/1230545</fs:itemid></item><item><title>ociuldr2源代码</title><link>http://www.anysql.net/tools/ociuldr2_source_code.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; hrb_qiuyb根据&lt;a href=&quot;http://www.anysql.net/software/ociuldr.c&quot;&gt;ociuldr源代码&lt;/a&gt;, 用OCI 8的函数接口重写了文本导出工具, 所有已有的功能和命令行参数保持不变, 并增加了对CLOB/BLOB字段的支持(导出成独立的文件), 并且在Oracle 10g下可以用sys用户登录进行操作了, 就命名为ociuldr2吧, 基于OCI 7接口规则的ociuldr则不支持这两个功能. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 需要ociudlr2的朋友, 可以&lt;a href=&quot;http://www.anysql.net/software/ociuldr2.c&quot;&gt;点击下载&lt;/a&gt;, 然后在不同的平台自行编译. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 在所有免费提供的工具中, ociuldr是下载和使用最为广泛的一个了, 并被集成到应用程序中, 用来装载大量数据到Cache服务器中, 也很早就想改成OCI 8接口的, 由于个人的如下成见, 一直没有行动起来. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
&lt;div&gt;1, 不能登录sys没有关系, 搞一个查询用户的就行. &lt;/div&gt;
&lt;div&gt;2, LOB不能处理没有关系, 可以结合lobs工具. &lt;/div&gt;
&lt;div&gt;3, 太忙了, 没有时间去改写. &lt;/div&gt;
&lt;div&gt;4, 太老了, 没有精力去改写. &lt;/div&gt;
&lt;/blockquote&gt; 

&lt;p&gt;&amp;nbsp; &amp;nbsp; 据说hrb_qiuyb的电脑坏了, 他自己已经丢失了那份源代码, 我也找了好久, 还好发现了他当初传给我的那个版本, 就共享出来算了. &lt;/p&gt;
&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/ociuldr_bind_variable.html&quot;&gt;在ociuldr的SQL中使用绑定变量&lt;/a&gt; (4)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/ociuldr_update_20080125.html&quot;&gt;ociuldr更新(2008/01/25)&lt;/a&gt; (11)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/ociuldr_option_array.html&quot;&gt;ociuldr的更新, 为了更好的long类型支持&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/tools/ociuldr_option_head.html&quot;&gt;ociuldr的新选项, 是否在第一行打印字段名&lt;/a&gt; (7)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/developer/oracle_oci_thread.html&quot;&gt;切换到OCIThread多线程编程环境&lt;/a&gt; (3)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/tools/ociuldr2_source_code.html#comments&quot; title=&quot;Comment on: ociuldr2源代码&quot;&gt;我要留言&lt;/a&gt;(当前7)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; hrb_qiuyb根据ociuldr源代码, 用OCI 8的函数接口重写了文本导出工具, 所有已有的功能和命令行参数保持不变, 并增加了对CLOB/BLOB字段的支持(导出成独立的文件), 并且在Oracle 10g下可以用sys用户登录进行操作了, 就命名为ociuldr2吧, 基于OCI 7接口规则的ociuldr则不支持这两个功能. &amp;nbsp; &amp;nbsp; 需要ociudlr2的朋友, 可以点击下载, 然后在不同的平台自行编译. &amp;nbsp; &amp;nbsp; 在所有免费提供的工具中,...</description><category domain="http://www.sixapart.com/ns/types#tag">Excel</category><category domain="http://www.sixapart.com/ns/types#tag">C</category><category domain="http://www.sixapart.com/ns/types#tag">Tools</category><category domain="http://www.sixapart.com/ns/types#tag">OCI</category><category domain="http://www.sixapart.com/ns/types#tag">Export</category><pubDate>Sat, 04 Oct 2008 15:44:05 +0800</pubDate><guid isPermaLink="false">955@http://www.anysql.net/</guid><dc:subject>Tools</dc:subject><fs:srclink>http://www.anysql.net/tools/ociuldr2_source_code.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893267/1230545</fs:itemid></item><item><title>Remote DD或Raw-rsync</title><link>http://www.anysql.net/dba/remote_raw_sync.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 这几天要做几个远程的Standby, 由于是在数据库用的是&lt;strong&gt;将要过时的裸设备(Oracle 12g要)&lt;/strong&gt;上的, 发现以前最喜欢的方式不好用了. 最喜欢的是停止源端的Standby的恢复, 然后用rsync拷到远程的机器上, 以前面对的是Veritas文件系统, 因此很容易编写运行很稳定的脚本, 来自动创建Standby. 用一步一步搞的方式, 所需要的归档日志的空间也特别地小, 实在是网络不好(远程)时的最佳方案. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 目前的rsync不能用于我们这种情况的原因是, 在拷文件时, 在目标端会创建监时文件, 然后改文件名实现, 因此不适合于裸设备. 程序中改一下应当就可以了, 估计不难, 象我这样不是专业出身的人也能搞定这一段代码吧. 有意向准备改一个, 可以取名为&lt;strong&gt;raw-sync&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 基于rsync的代码改是最好的, 因为网络不好, 所以最想用它的自动压缩解压功能, 在过去几年的经验中, 这对于提升传输速度是十分有效的. 基于scp的代码也行, scp虽然在源端不生成临时文件, 但还是将目标端的文件重建了一下, 看开始拷时, 目标端的文件大小变成0就知道了. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 对于裸设备, 一直都推荐用dd, 因此写一个Remote DD也不错, 不过没有基础, 这一步有很高的难度, 至少这个名字很好. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 看来我的创意还不少, 虽然Oracle 12G要过时了, 但还没有见影呢, 得过好几年呢. &lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/huge_standby_with_rawsync.html&quot;&gt;用rawsync来做Standby&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/rawsync_ready_for_test.html&quot;&gt;rawsync初步搞定&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/oracle/rman_rsync_oracle11g.html&quot;&gt;RMAN Copy加上Rsync, 在Oracle 11g中实现了吗?&lt;/a&gt; (4)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/dba/remote_raw_sync.html#comments&quot; title=&quot;Comment on: Remote DD或Raw-rsync&quot;&gt;我要留言&lt;/a&gt;(当前3)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 这几天要做几个远程的Standby, 由于是在数据库用的是将要过时的裸设备(Oracle 12g要)上的, 发现以前最喜欢的方式不好用了. 最喜欢的是停止源端的Standby的恢复, 然后用rsync拷到远程的机器上, 以前面对的是Veritas文件系统, 因此很容易编写运行很稳定的脚本, 来自动创建Standby. 用一步一步搞的方式, 所需要的归档日志的空间也特别地小, 实在是网络不好(远程)时的最佳方案. &amp;nbsp; &amp;nbsp; 目前的rsync不能用于我们这种情况的原因是, 在拷文件时, 在目标端会创建监时文件, 然后改文件名实现,...</description><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">rsync</category><category domain="http://www.sixapart.com/ns/types#tag">Standby</category><pubDate>Sat, 27 Sep 2008 15:05:58 +0800</pubDate><guid isPermaLink="false">953@http://www.anysql.net/</guid><dc:subject>DBA</dc:subject><fs:srclink>http://www.anysql.net/dba/remote_raw_sync.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893268/1230545</fs:itemid></item><item><title>不知道小孩吃饱了没?</title><link>http://www.anysql.net/life/is_my_son_hungry.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 今天带儿子去吴山广场玩, 爬爬小山, 逛逛河坊街, 然后在天兴楼吃中饭. 儿子吃饭一直都是我和老婆要面对的一道难题, 感觉上他吃了很少, 于是问儿子. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
爸爸: 宝宝, 饱了没有? &lt;br /&gt;
儿子: bao &lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 吃完饭后, 到西湖边上再逛了一会儿, 然后打车回去, 看到街边吃饭的人很多, 于是再问了问儿子. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
爸爸: 宝宝, 饿不饿? &lt;br /&gt;
儿子: er &lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 我和老婆立马晕到, 儿子还不知道bao和er的确切意思, 所以怎么问都不对, 只有等到他哭了就找东西给他吃. &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 也有可能我们两个被儿玩弄了一把, 今天吃晚饭时, 再问同样的问题. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
爸爸: 宝宝, 饱了没有? &lt;br /&gt;
儿子: bao &lt;br /&gt;
爸爸: 宝宝, 饿不饿? &lt;br /&gt;
儿子: er &lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 再晕了一次, 要怎么教他知道饱与饿呢?&lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/walk_long_time_home.html&quot;&gt;步行十多公里回家&lt;/a&gt; (10)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/where_is_girl_friend.html&quot;&gt;明月几时有?&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/get_the_credit_card.html&quot;&gt;人品没有问题了&lt;/a&gt; (6)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/get_126_password_back.html&quot;&gt;找回126邮箱的密码&lt;/a&gt; (5)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/life/my_network_channels.html&quot;&gt;生活锁事::无线网络&lt;/a&gt; (4)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/life/is_my_son_hungry.html#comments&quot; title=&quot;Comment on: 不知道小孩吃饱了没?&quot;&gt;我要留言&lt;/a&gt;(当前2)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 今天带儿子去吴山广场玩, 爬爬小山, 逛逛河坊街, 然后在天兴楼吃中饭. 儿子吃饭一直都是我和老婆要面对的一道难题, 感觉上他吃了很少, 于是问儿子. 爸爸: 宝宝, 饱了没有? 儿子: bao &amp;nbsp; &amp;nbsp; 吃完饭后, 到西湖边上再逛了一会儿, 然后打车回去, 看到街边吃饭的人很多,...</description><category domain="http://www.sixapart.com/ns/types#tag">Life</category><pubDate>Sun, 21 Sep 2008 20:27:25 +0800</pubDate><guid isPermaLink="false">952@http://www.anysql.net/</guid><dc:subject>Life</dc:subject><fs:srclink>http://www.anysql.net/life/is_my_son_hungry.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893269/1230545</fs:itemid></item><item><title>DreamHost升级PHP了</title><link>http://www.anysql.net/weblog/lilina_php_505_error.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 今天早上访问&lt;a href=&quot;http://www.anysql.net/rss/index.html&quot;&gt;基于Lilina的RSS时&lt;/a&gt;, 页面中报了如下错误. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
Only variables can be passed by reference ...
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 在网上已证实这是PHP的一个Bug (33643), 当然不能要求DreamHost改PHP版本了, 只能更改rss_parse.inc文件来实现. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
// smart append - field and namespace aware &lt;br /&gt;
function append($el, $text) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if (!$el) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if ( $this-&amp;gt;current_namespace ) &lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&lt;strong&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( $this-&amp;gt;initem ) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tmpvar = $this-&amp;gt;current_item[ $this-&amp;gt;current_namespace ][ $el ];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;concat($tmpvar , $text);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elseif ($this-&amp;gt;inchannel) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tmpvar = $this-&amp;gt;channel[ $this-&amp;gt;current_namespace][ $el ];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;concat($tmpvar,$text );&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elseif ($this-&amp;gt;intextinput) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tmpvar = $this-&amp;gt;textinput[ $this-&amp;gt;current_namespace][ $el ];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;concat($tmpvar , $text );&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elseif ($this-&amp;gt;inimage) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tmpvar = $this-&amp;gt;image[ $this-&amp;gt;current_namespace ][ $el ];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;concat($tmpvar , $text );&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;/strong&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 上面粗体部份, 是改过的代码, 现在工作正常了. &lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_dreamhost_icon.html&quot;&gt;解决Lilina不能显示网站图标的问题&lt;/a&gt; (3)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_php_cachetime.html&quot;&gt;控制Lilina中缓存文件是否过时的机制&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_anysql_061130.html&quot;&gt;对Lilina作了很多更新, 新版已可下载.&lt;/a&gt; (12)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_v09_beta3.html&quot;&gt;Lilina 0.9 Beta3发布, 对于中文有一个地方一定要改.&lt;/a&gt; (2)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_rss_display.html&quot;&gt;Lilina在显示RSS时的一个小问题, 修复了.&lt;/a&gt; (1)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/weblog/lilina_php_505_error.html#comments&quot; title=&quot;Comment on: DreamHost升级PHP了&quot;&gt;我要留言&lt;/a&gt;(当前2)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 今天早上访问基于Lilina的RSS时, 页面中报了如下错误. Only variables can be passed by reference ... &amp;nbsp; &amp;nbsp; 在网上已证实这是PHP的一个Bug (33643), 当然不能要求DreamHost改PHP版本了, 只能更改rss_parse.inc文件来实现. // smart...</description><category domain="http://www.sixapart.com/ns/types#tag">Blog</category><category domain="http://www.sixapart.com/ns/types#tag">PHP</category><category domain="http://www.sixapart.com/ns/types#tag">Lilina</category><pubDate>Wed, 10 Sep 2008 21:49:38 +0800</pubDate><guid isPermaLink="false">951@http://www.anysql.net/</guid><dc:subject>Weblog</dc:subject><fs:srclink>http://www.anysql.net/weblog/lilina_php_505_error.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893270/1230545</fs:itemid></item><item><title>Perl监控AIX的网卡流量</title><link>http://www.anysql.net/life/perl_aix_net_traffic.html</link><content:encoded>&lt;p&gt;作者:&lt;a href=&quot;http://www.anysql.net&quot;&gt;d.c.b.a&lt;/a&gt;, &lt;a href=&quot;http://www.anysql.net/index.xml&quot;&gt;订阅AnySQL&lt;/a&gt;, Oracle数据库恢复及服务, Sybase恢复, 磁盘及RAID恢复&lt;/p&gt;
	&lt;p&gt;&amp;nbsp; &amp;nbsp; 活运活用, 用Perl写了一个看AIX主机网卡流量的脚本, 差不多和&quot;Hello, World&quot;一样简单了. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
#!/home/oracle/dbaperl/bin/perl -w&lt;br /&gt;
#&lt;br /&gt;
use AIX::Perfstat;&lt;br /&gt;
&lt;br /&gt;
my $nettotal = AIX::Perfstat::netinterface_total();&lt;br /&gt;
&lt;br /&gt;
my $preipkt = $nettotal-&amp;gt;{ipackets};&lt;br /&gt;
my $preopkt = $nettotal-&amp;gt;{opackets};&lt;br /&gt;
my $preibyt = $nettotal-&amp;gt;{ibytes};&lt;br /&gt;
my $preobyt = $nettotal-&amp;gt;{obytes};&lt;br /&gt;
&lt;br /&gt;
while(1)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;  sleep(10);&lt;br /&gt;
&amp;nbsp;  $nettotal = AIX::Perfstat::netinterface_total();&lt;br /&gt;
&amp;nbsp;  print($nettotal-&amp;gt;{ipackets} - $preipkt,&quot;,&quot;);&lt;br /&gt;
&amp;nbsp;  print($nettotal-&amp;gt;{ibytes} - $preibyt, &quot;,&quot;);&lt;br /&gt;
&amp;nbsp;  print($nettotal-&amp;gt;{opackets} - $preopkt,&quot;,&quot;);&lt;br /&gt;
&amp;nbsp;  print($nettotal-&amp;gt;{obytes} - $preobyt, &quot;\n&quot;);&lt;br /&gt;
&amp;nbsp;  $preipkt = $nettotal-&amp;gt;{ipackets};&lt;br /&gt;
&amp;nbsp;  $preopkt = $nettotal-&amp;gt;{opackets};&lt;br /&gt;
&amp;nbsp;  $preibyt = $nettotal-&amp;gt;{ibytes};&lt;br /&gt;
&amp;nbsp;  $preobyt = $nettotal-&amp;gt;{obytes};&lt;br /&gt;
}
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 输出的样本数据, 前面加个时间就更好了. &lt;/p&gt;

&lt;blockquote class=&quot;prefont&quot;&gt;
209293,25449294,179547,45651583&lt;br /&gt;
217798,26535501,188151,47684198&lt;br /&gt;
204486,25331561,175493,45920902&lt;br /&gt;
204652,25110514,175301,45952904&lt;br /&gt;
205024,25172192,176165,46227715&lt;br /&gt;
202194,24638398,172954,45765479
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; 只能一步一步来了. 好象需要加上Int64位运算支持, 才能准确显示数据. &lt;/p&gt;&lt;/p&gt;
        &lt;p&gt;&lt;b&gt;相关文章 | Related Artiles&lt;/b&gt;&lt;/p&gt;
	            &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/developer/perl_aix_perfstat_script.html&quot;&gt;Perl AIX-Perfstat-0.03编程&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/developer/install_perl_aix_perfstat.html&quot;&gt;安装Perl AIX-Perfstat-0.03&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_primary_archivelog.html&quot;&gt;用Perl写Primary维护脚本&lt;/a&gt; (0)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/perl_purge_standby_archivelog.html&quot;&gt;用Perl写Standby维护脚本&lt;/a&gt; (1)&lt;/div&gt;
                    &lt;div&gt;&lt;a href=&quot;http://www.anysql.net/dba/build_business_monitor.html&quot;&gt;需要什么样的监控?&lt;/a&gt; (1)&lt;/div&gt;
        
      &lt;/p&gt;
      &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.anysql.net/life/perl_aix_net_traffic.html#comments&quot; title=&quot;Comment on: Perl监控AIX的网卡流量&quot;&gt;我要留言&lt;/a&gt;(当前0)&lt;/b&gt;&lt;/p&gt; 
      &lt;/description&gt;</content:encoded><description>&amp;nbsp; &amp;nbsp; 活运活用, 用Perl写了一个看AIX主机网卡流量的脚本, 差不多和&quot;Hello, World&quot;一样简单了. #!/home/oracle/dbaperl/bin/perl -w # use AIX::Perfstat; my $nettotal = AIX::Perfstat::netinterface_total(); my $preipkt = $nettotal-&amp;gt;{ipackets}; my...</description><category domain="http://www.sixapart.com/ns/types#tag">Perl</category><category domain="http://www.sixapart.com/ns/types#tag">DBA</category><category domain="http://www.sixapart.com/ns/types#tag">Unix</category><category domain="http://www.sixapart.com/ns/types#tag">Load</category><pubDate>Thu, 28 Aug 2008 21:05:43 +0800</pubDate><guid isPermaLink="false">950@http://www.anysql.net/</guid><dc:subject>Life</dc:subject><fs:srclink>http://www.anysql.net/life/perl_aix_net_traffic.html</fs:srclink><fs:srcfeed>http://www.anysql.net/index.xml</fs:srcfeed><fs:itemid>feedsky/anysql/~1216713/139893271/1230545</fs:itemid></item></channel></rss>