<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>AnySQL.net</title>
	
	<link>http://www.anysql.net</link>
	<description>数据复制，数据迁移，数据库优化，系统监控，备份恢复，报表展现，原创工具等</description>
	<lastBuildDate>Thu, 17 May 2012 01:00:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AnySQL" /><feedburner:info uri="anysql" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://www.anysql.net</link><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url><title>AnySQL.net</title></image><feedburner:emailServiceId>AnySQL</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>用squldr2进行Oracle到MySQL的数据迁移</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/oImUgdoQUtk/sqluldr2-mysql-data-migration.html</link>
		<comments>http://www.anysql.net/tools/sqluldr2-mysql-data-migration.html#comments</comments>
		<pubDate>Thu, 17 May 2012 01:00:47 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=799</guid>
		<description><![CDATA[&#160; &#160; 从Oracle迁移数据到MySQL时，通常用文本或SQL语句的方式，但都为MySQL的特殊字符处理而发愁，后来淘宝丁奇告诉MySQL的标准函数中有unhex函数，可以将十六进制的串转换成原来的字符串，从而轻松解决原来很麻烦的特殊字符处理的问题，于是对sqluldr2作了改进处理，对于所有的字符字段，都直接转换成十六进制串处理算了。 E:\dbpress&#62;sqluldr2 anysql/anysql query=tab text=mysqlins INSERT INTO `tab` (`TNAME`,`TABTYPE`,`CLUSTERID`) VALUES (unhex(&#8217;4150505f43415445474f5259&#8242;),unhex(&#8217;5441424c45&#8242;),null), (unhex(&#8217;4150505f444550454e4453&#8242;),unhex(&#8217;5441424c45&#8242;),null), &#8230;&#8230; (unhex(&#8217;545f4d565445535432&#8242;),unhex(&#8217;5441424c45&#8242;),null); &#160; &#160; 不管增加了多不功能，sqluldr2都保持了一如即往的导出性能，生成复杂INSERT语句的速度和直接导出文本一样快。 E:\dbpress&#62;sqluldr2 anysql/anysql query=test3 text=mysqlins file=temp.txt &#160; &#160; &#160; 0 rows exported at 2012-05-17 08:38:51, size 0 MB. 1000000 rows exported at 2012-05-17 08:38:59, size 244 MB. 2000000 rows exported at 2012-05-17 08:39:11, size 492 MB. 3000000 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 从Oracle迁移数据到MySQL时，通常用文本或SQL语句的方式，但都为MySQL的特殊字符处理而发愁，后来淘宝丁奇告诉MySQL的标准函数中有unhex函数，可以将十六进制的串转换成原来的字符串，从而轻松解决原来很麻烦的特殊字符处理的问题，于是对sqluldr2作了改进处理，对于所有的字符字段，都直接转换成十六进制串处理算了。</p>
<blockquote class="prefont"><p>
E:\dbpress&gt;sqluldr2 anysql/anysql query=tab text=mysqlins<br />
INSERT INTO `tab` (`TNAME`,`TABTYPE`,`CLUSTERID`) VALUES<br />
(unhex(&#8217;4150505f43415445474f5259&#8242;),unhex(&#8217;5441424c45&#8242;),null),<br />
(unhex(&#8217;4150505f444550454e4453&#8242;),unhex(&#8217;5441424c45&#8242;),null),<br />
&#8230;&#8230;<br />
(unhex(&#8217;545f4d565445535432&#8242;),unhex(&#8217;5441424c45&#8242;),null);
</p></blockquote>
<p>&nbsp; &nbsp; 不管增加了多不功能，sqluldr2都保持了一如即往的导出性能，生成复杂INSERT语句的速度和直接导出文本一样快。</p>
<blockquote class="prefont"><p>
E:\dbpress&gt;sqluldr2 anysql/anysql query=test3 text=mysqlins file=temp.txt<br />
&nbsp; &nbsp; &nbsp;  0 rows exported at 2012-05-17 08:38:51, size 0 MB.<br />
 1000000 rows exported at 2012-05-17 08:38:59, size 244 MB.<br />
 2000000 rows exported at 2012-05-17 08:39:11, size 492 MB.<br />
 3000000 rows exported at 2012-05-17 08:39:23, size 740 MB.<br />
 4000000 rows exported at 2012-05-17 08:39:37, size 984 MB.<br />
 4764032 rows exported at 2012-05-17 08:39:46, size 1175 MB.<br />
&nbsp; &nbsp; &nbsp; &nbsp;  output file temp.txt closed at 4764032 rows, size 1175 MB.
</p></blockquote>
<p>&nbsp; &nbsp; 有了这个功能后，sqluldr2会成为最流行的从Oracle迁移数据到MySQL的工具，我们自己及淘宝DBA都在日常工作中使用它。</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2007/11/28 -- <a href="http://www.anysql.net/oracle/tune_oracle_exp_imp.html" title="如何提高Oracle exp/imp的速度?">如何提高Oracle exp/imp的速度?</a> (7)</li><li>2008/01/15 -- <a href="http://www.anysql.net/dba/after_analyze_whole_schema.html" title="分析用户所有表之后">分析用户所有表之后</a> (5)</li><li>2007/07/25 -- <a href="http://www.anysql.net/life/cannot_program_anymore.html" title="想写最后一个程序, 却发现提不起心思来了.">想写最后一个程序, 却发现提不起心思来了.</a> (10)</li><li>2006/10/14 -- <a href="http://www.anysql.net/oracle/query_rewrite_06.html" title="Query Rewrite的一般理解之六">Query Rewrite的一般理解之六</a> (0)</li><li>2008/01/26 -- <a href="http://www.anysql.net/life/shift_cdma1x_to_gprsedge.html" title="从CDMA 1X到GPRS上网">从CDMA 1X到GPRS上网</a> (0)</li><li>2008/05/08 -- <a href="http://www.anysql.net/life/aix_load_average.html" title="生活锁事::无线网络">生活锁事::无线网络</a> (4)</li><li>2007/01/02 -- <a href="http://www.anysql.net/oracle/ora_orphan_rowid.html" title="ORA-00600 [qertbFetchBYRowid] &#038; Orphan ROWID">ORA-00600 [qertbFetchBYRowid] &#038; Orphan ROWID</a> (0)</li><li>2009/04/05 -- <a href="http://www.anysql.net/dba/oramon_webchart_solution.html" title="轻量级Oracle性能监控">轻量级Oracle性能监控</a> (3)</li><li>2009/08/17 -- <a href="http://www.anysql.net/life/create-dba-extra-values.html" title="努力创造DBA额外价值">努力创造DBA额外价值</a> (27)</li><li>2007/03/08 -- <a href="http://www.anysql.net/oracle/reorg_master_table.html" title="Oracle的实体化视图(MVIEW)的深入研究之二">Oracle的实体化视图(MVIEW)的深入研究之二</a> (0)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=oImUgdoQUtk:Gm4Qw_0Ga60:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=oImUgdoQUtk:Gm4Qw_0Ga60:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=oImUgdoQUtk:Gm4Qw_0Ga60:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=oImUgdoQUtk:Gm4Qw_0Ga60:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=oImUgdoQUtk:Gm4Qw_0Ga60:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=oImUgdoQUtk:Gm4Qw_0Ga60:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/oImUgdoQUtk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/sqluldr2-mysql-data-migration.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/sqluldr2-mysql-data-migration.html</feedburner:origLink></item>
		<item>
		<title>WebChart的JSON格式输出</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/amYjJUUJKLM/webchar-json-output.html</link>
		<comments>http://www.anysql.net/tools/webchar-json-output.html#comments</comments>
		<pubDate>Fri, 09 Dec 2011 04:51:08 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=797</guid>
		<description><![CDATA[&#160; &#160; WebChart增加JSON格式输出，可以将查询结果以JSON格式的文本进行输出，直接作为ExtJS的Ext.data.Store的输入. 页面(jsontest.rhtml)定义如下: webchart.doctype=json webchart.query_1=select empno, ename from emp order by empno &#160; &#160; 用浏览器访问页面时，返回JSON格式的纯文本. { &#160; &#8220;metaData&#8221;: &#160; { &#160; &#160; &#160; &#8220;root&#8221;: &#8220;rows&#8221;, &#160; &#160; &#160; &#8220;fields&#8221;: [ &#160; &#160; &#160; &#160; {"name": "empno", "type": "int"}, &#160; &#160; &#160; &#160; {"name": "ename"}], &#160; &#160; &#160; &#8220;remoteSort&#8221;: true &#160; }, &#160; &#8220;rows&#8221;: &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; WebChart增加JSON格式输出，可以将查询结果以JSON格式的文本进行输出，直接作为ExtJS的Ext.data.Store的输入. 页面(jsontest.rhtml)定义如下: </p>
<blockquote class="prefont"><p>
webchart.doctype=json</p>
<p>webchart.query_1=select empno, ename from emp order by empno
</p></blockquote>
<p>&nbsp; &nbsp; 用浏览器访问页面时，返回JSON格式的纯文本. </p>
<blockquote class="prefont"><p>
{<br />
&nbsp; &#8220;metaData&#8221;:<br />
&nbsp; {<br />
&nbsp; &nbsp; &nbsp; &#8220;root&#8221;: &#8220;rows&#8221;,<br />
&nbsp; &nbsp; &nbsp; &#8220;fields&#8221;: [<br />
&nbsp; &nbsp; &nbsp; &nbsp; {"name": "empno", "type": "int"},<br />
&nbsp; &nbsp; &nbsp; &nbsp; {"name": "ename"}],<br />
&nbsp; &nbsp; &nbsp; &#8220;remoteSort&#8221;: true<br />
&nbsp; },<br />
&nbsp; &#8220;rows&#8221;:<br />
&nbsp; [<br />
&nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; "empno": 1,<br />
&nbsp; &nbsp; &nbsp; &nbsp; "ename": "Lou Fangxin"<br />
&nbsp; &nbsp; &nbsp; },<br />
&nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; "empno": 2,<br />
&nbsp; &nbsp; &nbsp; &nbsp; "ename": "Zhi Qiong"<br />
&nbsp; &nbsp; &nbsp; }<br />
&nbsp; ]<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; 在ExtJS 4中可以直接用如下代码，得到一个Store类型变量. </p>
<blockquote class="prefont"><p>
Ext.define(&#8216;mydata&#8217;, {extend: &#8216;Ext.data.Model&#8217;});<br />
var store2 = Ext.create(&#8216;Ext.data.Store&#8217;, <br />
&nbsp; &nbsp; {model: &#8216;mydata&#8217;, proxy:{type: &#8216;ajax&#8217;, url: &#8216;sampledata.txt&#8217;, reader: {type: &#8216;json&#8217;}}});
</p></blockquote>
<p>&nbsp; &nbsp; 然后用ExtJS进行表格输出或者画图，将数据接口直接交给WebChart来方便地处理. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/12/04 -- <a href="http://www.anysql.net/tools/webchart-auto-reload-page.html" title="报表页面自动刷新属性">报表页面自动刷新属性</a> (0)</li><li>2010/12/18 -- <a href="http://www.anysql.net/tools/datareport-table-formater.html" title="控制DataReport的表格格式">控制DataReport的表格格式</a> (5)</li><li>2010/08/23 -- <a href="http://www.anysql.net/tools/datareport-pagesize.html" title="DataReport的多栏显示">DataReport的多栏显示</a> (2)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/26 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess2.html" title="逻辑连接层与物理连接层(2)">逻辑连接层与物理连接层(2)</a> (1)</li><li>2010/01/21 -- <a href="http://www.anysql.net/tools/anysql-jdbc-driver.html" title="AnySQL JDBC Driver">AnySQL JDBC Driver</a> (1)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=amYjJUUJKLM:rvY_Y7_y3lc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=amYjJUUJKLM:rvY_Y7_y3lc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=amYjJUUJKLM:rvY_Y7_y3lc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=amYjJUUJKLM:rvY_Y7_y3lc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=amYjJUUJKLM:rvY_Y7_y3lc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=amYjJUUJKLM:rvY_Y7_y3lc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/amYjJUUJKLM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/webchar-json-output.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/webchar-json-output.html</feedburner:origLink></item>
		<item>
		<title>多个测试环境的表结构同步</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/K8zuNoTX1rk/ocidiff-oracle-schema-auto-repair.html</link>
		<comments>http://www.anysql.net/tools/ocidiff-oracle-schema-auto-repair.html#comments</comments>
		<pubDate>Tue, 19 Apr 2011 05:57:04 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Compare]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Table]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=796</guid>
		<description><![CDATA[&#160; &#160; 一个复杂系统往往会有几套开发测试环境，对于开发DBA或测试环境DBA来讲，维护这些环境之间的同步是一个比较烦琐的事情。在2005年时，曾和当时的三个同事，花了足足三天时间来手工同步两个环境的表结构差异，最后促使我去开发一个表结构自动同步工具，现在是对那个工具的进一步升级。 &#8211; GetDDL: DDL Script Generator for Oracle, Release 3.0.1 &#8211; (@) Copyright Lou Fangxin (AnySQL.net) 2010, all rights reserved. &#8211; Oracle Data Recovery, System Tuning and Monitoring and Tuning Service Usage: ocidiff fromuser=&#8230; touser=&#8230; file=&#8230; Options: &#160; fromuser&#160; &#8212; Source Connection String &#160; fromschema &#8212; Source Schema to Switch &#160; touser&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 一个复杂系统往往会有几套开发测试环境，对于开发DBA或测试环境DBA来讲，维护这些环境之间的同步是一个比较烦琐的事情。在2005年时，曾和当时的三个同事，花了足足三天时间来手工同步两个环境的表结构差异，最后促使我去开发一个表结构自动同步工具，现在是对那个工具的进一步升级。</p>
<blockquote class="prefont"><p>
&#8211; GetDDL: DDL Script Generator for Oracle, Release 3.0.1<br />
&#8211; (@) Copyright Lou Fangxin (AnySQL.net) 2010, all rights reserved.<br />
&#8211; Oracle Data Recovery, System Tuning and Monitoring and Tuning Service</p>
<p>Usage: ocidiff fromuser=&#8230; touser=&#8230; file=&#8230;</p>
<p>Options:<br />
&nbsp; fromuser&nbsp;  &#8212; Source Connection String<br />
&nbsp; fromschema &#8212; Source Schema to Switch<br />
&nbsp; touser&nbsp; &nbsp;  &#8212; Destination Connection String<br />
&nbsp; toschema&nbsp;  &#8212; Destination Schema to Swith<br />
&nbsp; tstab&nbsp; &nbsp; &nbsp; &#8212; Tablespace for Tables<br />
&nbsp; tsind&nbsp; &nbsp; &nbsp; &#8212; Tablespace for Indexes<br />
&nbsp; sync&nbsp; &nbsp; &nbsp;  &#8212; Sync List (ALL,SEQUENCE,TABLE,INDEX,VIEW,SOURCE,COMMENT)<br />
&nbsp; file&nbsp; &nbsp; &nbsp;  &#8212; Output Script File Name<br />
&nbsp; log&nbsp; &nbsp; &nbsp; &nbsp; &#8212; SQL*Plus Spool log file name<br />
&nbsp; auto&nbsp; &nbsp; &nbsp;  &#8212; Automaticall call SQL*Plus to sync(YES)
</p></blockquote>
<p>&nbsp; &nbsp; 上面的命令行选项，对于DBA来讲应当都比较容易理解，就不一个一个讲了。File和Log选项有一些特殊的设置，指定文件名时可以用%Y来表示年份，用%M来表示月份，同理用%D来表示日期，以便给自动同步工具留下足够的运行日志。</p>
<blockquote class="prefont"><p>
ocidiff &#8230;&#8230; file=scott_%%y%%m%%d.sql log=scott_%%y%%m%%d.log &#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 运行时加上&#8221;AUTO=YES&#8221;选项，会自动调用SQL*Plus连接到远程库上执行，执行后会留带日期的SQL和日志文件。</p>
<blockquote class="prefont"><p>
D:\ocidiff&gt;dir /b scott_*<br />
scott_20110419.log<br />
scott_20110419.sql
</p></blockquote>
<p>&nbsp; &nbsp; 对于生成的自动同步SQL的脚本准确性，还需要进行大量的测试及进一步的改进，<a href="http://www.anysql.net/software/ocidiff.zip">下载</a>试试吧。</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/02/05 -- <a href="http://www.anysql.net/dba/change_export_tablespace.html" title="导出时如何统一表空间?">导出时如何统一表空间?</a> (2)</li><li>2008/06/23 -- <a href="http://www.anysql.net/dba/apache_tomcat.html" title="根据表名搜索SQL语句">根据表名搜索SQL语句</a> (0)</li><li>2008/05/26 -- <a href="http://www.anysql.net/oracle/imp_to_another_table.html" title="ASSM表空间真浪费">ASSM表空间真浪费</a> (7)</li><li>2008/05/15 -- <a href="http://www.anysql.net/dba/aul_better_for_nchar.html" title="将dmp数据导入到另一个表">将dmp数据导入到另一个表</a> (3)</li><li>2008/03/13 -- <a href="http://www.anysql.net/dba/deny_table_big_dml.html" title="如何防止大的DML语句?">如何防止大的DML语句?</a> (3)</li><li>2008/03/04 -- <a href="http://www.anysql.net/tools/ocidiff_assist_51job_dba.html" title="ocidiff助力51job日常维护">ocidiff助力51job日常维护</a> (6)</li><li>2008/03/03 -- <a href="http://www.anysql.net/dba/is_column_order_matter.html" title="先报身高? 还是体重?">先报身高? 还是体重?</a> (4)</li><li>2008/02/14 -- <a href="http://www.anysql.net/dba/oracle_rename_table_syntax.html" title="Rename Table的语法">Rename Table的语法</a> (0)</li><li>2007/12/24 -- <a href="http://www.anysql.net/tools/get_table_ddl.html" title="Get DDL工具">Get DDL工具</a> (7)</li><li>2007/12/11 -- <a href="http://www.anysql.net/dba/drop_4tb_table.html" title="删除4TB的表">删除4TB的表</a> (5)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=K8zuNoTX1rk:g1M68UF0QKQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=K8zuNoTX1rk:g1M68UF0QKQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=K8zuNoTX1rk:g1M68UF0QKQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=K8zuNoTX1rk:g1M68UF0QKQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=K8zuNoTX1rk:g1M68UF0QKQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=K8zuNoTX1rk:g1M68UF0QKQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/K8zuNoTX1rk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/ocidiff-oracle-schema-auto-repair.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/ocidiff-oracle-schema-auto-repair.html</feedburner:origLink></item>
		<item>
		<title>AUL for Oracle ASM数据恢复测试</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/IpLBk68p6hM/oracle-asm-data-recovery-testcase.html</link>
		<comments>http://www.anysql.net/aulmydul/oracle-asm-data-recovery-testcase.html#comments</comments>
		<pubDate>Mon, 18 Apr 2011 07:15:00 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[AUL/MyDUL]]></category>
		<category><![CDATA[ASM]]></category>
		<category><![CDATA[DUL]]></category>
		<category><![CDATA[MyDUL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=795</guid>
		<description><![CDATA[&#160; &#160; 创建了一个跨越在两个盘中的Oracle ASM表空间，并在上面建了一个有49万条记录的表，用来进行ASM恢复测试。 SQL&#62; select disk_number, name,path from v$asm_disk; DISK_NUMBER NAME&#160; &#160; &#160; &#160; &#160; &#160; PATH &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#160; &#160; &#160; &#160; &#160; 0 TEST_0000&#160; &#160; &#160; &#160; D:\ORACLEASM\FILE01.ASM &#160; &#160; &#160; &#160; &#160; 1 TEST_0001&#160; &#160; &#160; &#160; D:\ORACLEASM\FILE02.ASM SQL&#62; create table emp_asm tablespace asmdemo as &#160; 2&#160; select * from [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 创建了一个跨越在两个盘中的Oracle ASM表空间，并在上面建了一个有49万条记录的表，用来进行ASM恢复测试。</p>
<blockquote class="prefont"><p>
SQL&gt; select disk_number, name,path from v$asm_disk;</p>
<p>DISK_NUMBER NAME&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  PATH<br />
&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 TEST_0000&nbsp; &nbsp; &nbsp; &nbsp; D:\ORACLEASM\FILE01.ASM<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 TEST_0001&nbsp; &nbsp; &nbsp; &nbsp; D:\ORACLEASM\FILE02.ASM</p>
<p>SQL&gt; create table emp_asm tablespace asmdemo as<br />
&nbsp; 2&nbsp; select * from emp_bak where rownum &lt; 500000;
</p></blockquote>
<p>&nbsp; &nbsp; 第一次测试是在两个ASM盘都在的情况，应当可以恢复出49万条记录才是准确的，先从ASM中恢复出Oracle数据文件。</p>
<blockquote class="prefont"><p>
ASM&gt; disk disk.txt<br />
&nbsp;  2 ASM disks opened.<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;  0 d:\oracleasm\file01.asm<br />
&nbsp;  1 d:\oracleasm\file02.asm<br />
ASM&gt; scan<br />
 RFN File&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  Size&nbsp;  Blocks<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8211; &#8212;&#8212;&#8211;<br />
&nbsp;  5 aulasm_0005.dbf&nbsp; &nbsp; 25&nbsp; &nbsp;  3079<br />
ASM&gt; create file aulasm_0005.dbf size 26<br />
ASM&gt; open rfn 5 file aulasm_0005.dbf<br />
 RFN File<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp;  5 aulasm_0005.dbf<br />
ASM&gt; restore<br />
Restore by ASM extent map file.
</p></blockquote>
<p>&nbsp; &nbsp; 然后在AUL中进行数据恢复，确认是不是恢复出全部49万条记录。</p>
<blockquote class="prefont"><p>
AUL&gt; unload object 13456 to 13456.txt;<br />
2011-04-18 14:52:45<br />
Sucessfully unload 499999 rows &#8230;<br />
2011-04-18 14:53:05
</p></blockquote>
<p>&nbsp; &nbsp; 第二次测试中丢失了第二块盘，应当可以恢复出大约一半的记录才是对的，先从ASM中恢复出Oracle数据文件。</p>
<blockquote class="prefont"><p>
ASM&gt; disk disk.txt<br />
&nbsp;  1 ASM disks opened.<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;  0 d:\oracleasm\file01.asm<br />
ASM&gt; scan<br />
 RFN File&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  Size&nbsp;  Blocks<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8211; &#8212;&#8212;&#8211;<br />
&nbsp;  5 aulasm_0005.dbf&nbsp; &nbsp; 25&nbsp; &nbsp;  3079<br />
ASM&gt; create file aulasm_0005.dbf size 26<br />
ASM&gt; open rfn 5 file aulasm_0005.dbf<br />
 RFN File<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp;  5 aulasm_0005.dbf<br />
ASM&gt; restore<br />
Restore by ASM extent map file.
</p></blockquote>
<p>&nbsp; &nbsp; 然后在AUL中进行数据恢复，看看从AUL中恢复出来多少条记录，在这里刚好是将近一半，说明结果良好。</p>
<blockquote class="prefont"><p>
AUL&gt; unload object 13456 to 13456.txt;<br />
2011-04-18 14:55:09<br />
Sucessfully unload 257375 rows &#8230;<br />
2011-04-18 14:55:20
</p></blockquote>
<p>&nbsp; &nbsp; 第三次测试中丢失了第一块盘，应当可以恢复出另一半的记录才是对的，理论上第二次和第三次恢复记录数之和应当和第一次恢复的记录数相等。</p>
<blockquote class="prefont"><p>
ASM&gt; disk disk.txt<br />
&nbsp;  1 ASM disks opened.<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;  0 d:\oracleasm\file02.asm<br />
ASM&gt; scan<br />
 RFN File&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  Size&nbsp;  Blocks<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8211; &#8212;&#8212;&#8211;<br />
&nbsp;  5 aulasm_0005.dbf&nbsp; &nbsp; 24&nbsp; &nbsp;  3071<br />
ASM&gt; create file aulasm_0005.dbf size 26<br />
ASM&gt; open rfn 5 file aulasm_0005.dbf<br />
 RFN File<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp;  5 aulasm_0005.dbf<br />
ASM&gt; restore<br />
Restore by ASM extent map file.
</p></blockquote>
<p>&nbsp; &nbsp; 然后在AUL中进行数据恢复，看看从AUL中恢复出来多少条记录。计算了一下第二次和第三次恢复出来的记录数之后刚好等于第一次恢复的记录数，证明ASM恢复软件可用。</p>
<blockquote class="prefont"><p>
AUL&gt; unload object 13456 to 13456.txt;<br />
2011-04-18 14:57:30<br />
Sucessfully unload 242624 rows &#8230;<br />
2011-04-18 14:57:40
</p></blockquote>
<p>&nbsp; &nbsp; 顺便透露一个Linux版AUL的改进消息，许可证不再动态了，只有服务器重起了才会改变，以方便大家进行数据恢复，毕竟Linux服务器很稳定，对大家来讲应当是更有利的许可证模式。</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2011/04/15 -- <a href="http://www.anysql.net/aulmydul/oracle-asm-recovery-aulasm.html" title="Oracle ASM灾难恢复工具&#8211;AULASM">Oracle ASM灾难恢复工具&#8211;AULASM</a> (2)</li><li>2008/12/27 -- <a href="http://www.anysql.net/aulmydul/aul_parallel_scan_extent.html" title="AUL并行扫描Extent">AUL并行扫描Extent</a> (1)</li><li>2008/08/01 -- <a href="http://www.anysql.net/aulmydul/to_date_from_quarter.html" title="终极Oracle数据恢复工具 &#8212; AUL">终极Oracle数据恢复工具 &#8212; AUL</a> (8)</li><li>2008/05/12 -- <a href="http://www.anysql.net/aulmydul/undo_and_index_bugs.html" title="Oracle不行再用AUL">Oracle不行再用AUL</a> (7)</li><li>2008/04/17 -- <a href="http://www.anysql.net/aulmydul/aul_for_sybase_ase.html" title="Oracle DUL不行就用AUL">Oracle DUL不行就用AUL</a> (10)</li><li>2008/03/26 -- <a href="http://www.anysql.net/aulmydul/try_make_good_suggestion.html" title="不是好人, 这么无耻!">不是好人, 这么无耻!</a> (24)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_sequences.html" title="AUL恢复Oracle视图代码?">AUL恢复Oracle视图代码?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_triggers.html" title="AUL恢复Oracle Sequence?">AUL恢复Oracle Sequence?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_table_indexes.html" title="AUL恢复Oracle触发器?">AUL恢复Oracle触发器?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_source_code.html" title="AUL恢复Oracle索引结构?">AUL恢复Oracle索引结构?</a> (0)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=IpLBk68p6hM:aYn4qnFJf8M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=IpLBk68p6hM:aYn4qnFJf8M:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=IpLBk68p6hM:aYn4qnFJf8M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=IpLBk68p6hM:aYn4qnFJf8M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=IpLBk68p6hM:aYn4qnFJf8M:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=IpLBk68p6hM:aYn4qnFJf8M:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/IpLBk68p6hM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/aulmydul/oracle-asm-data-recovery-testcase.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.anysql.net/aulmydul/oracle-asm-data-recovery-testcase.html</feedburner:origLink></item>
		<item>
		<title>Oracle ASM灾难恢复工具–AULASM</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/xzzlsHjUruQ/oracle-asm-recovery-aulasm.html</link>
		<comments>http://www.anysql.net/aulmydul/oracle-asm-recovery-aulasm.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 01:30:38 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[AUL/MyDUL]]></category>
		<category><![CDATA[ASM]]></category>
		<category><![CDATA[DUL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=793</guid>
		<description><![CDATA[&#160; &#160; 昨天晚上花了几个小时时间，写了一个Oracle ASM的灾难恢复软件, 当Oracle ASM一个或多个盘损坏或丢失时, 可以最大化地将其余盘上的数据恢复出来. &#160; &#160; 程序还是采用不为大家所爱的命令行界面. AUL : AnySQL UnLoader(MyDUL) for Oracle ASM, release 1.0.0 (C) Copyright Lou Fangxin 2011 (AnySQL.net), all rights reserved. ASM&#62; help &#160; DISK&#160; &#160; &#160; &#8212; open ASM disks. &#160; SCAN&#160; &#160; &#160; &#8212; scan ASM disks &#160; RESTORE&#160; &#160; &#8212; restore data file from ASM [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 昨天晚上花了几个小时时间，写了一个Oracle ASM的灾难恢复软件, 当Oracle ASM一个或多个盘损坏或丢失时, 可以最大化地将其余盘上的数据恢复出来. </p>
<p>&nbsp; &nbsp; 程序还是采用不为大家所爱的命令行界面. </p>
<blockquote class="prefont"><p>
AUL : AnySQL UnLoader(MyDUL) for Oracle ASM, release 1.0.0</p>
<p>(C) Copyright Lou Fangxin 2011 (AnySQL.net), all rights reserved.</p>
<p>ASM&gt; help<br />
&nbsp; DISK&nbsp; &nbsp; &nbsp;  &#8212; open ASM disks.<br />
&nbsp; SCAN&nbsp; &nbsp; &nbsp;  &#8212; scan ASM disks<br />
&nbsp; RESTORE&nbsp; &nbsp; &#8212; restore data file from ASM<br />
&nbsp; CREATE&nbsp; &nbsp;  &#8212; create empty data file<br />
&nbsp; OPEN&nbsp; &nbsp; &nbsp;  &#8212; open data file<br />
&nbsp; QUIT/EXIT&nbsp; &#8212; exit the program.
</p></blockquote>
<p>&nbsp; &nbsp; 打开磁盘组文件, 配置文件中列出各个盘的路径或镜象文件位置就行. </p>
<blockquote class="prefont"><p>
ASM&gt; disk disk.txt<br />
&nbsp;  2 ASM disks opened.<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;  0 d:\oracleasm\file01.asm<br />
&nbsp;  1 d:\oracleasm\file02.asm
</p></blockquote>
<p>&nbsp; &nbsp; 扫描磁盘组，找出可能的数据文件. </p>
<blockquote class="prefont"><p>
ASM&gt; scan<br />
&nbsp;  5 aulasm_0005.dbf&nbsp; &nbsp; 1&nbsp; &nbsp; &nbsp;  12
</p></blockquote>
<p>&nbsp; &nbsp; 创建空的数据文件, 并打开. </p>
<blockquote class="prefont"><p>
ASM&gt; create file aulasm_0005.dbf size 1<br />
ASM&gt; open rfn 5 file aulasm_0005.dbf<br />
 RFN File<br />
&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp;  5 aulasm_0005.dbf
</p></blockquote>
<p>&nbsp; &nbsp; 从ASM中读出数据块，写入对应的文件。</p>
<blockquote class="prefont"><p>
ASM&gt; restore
</p></blockquote>
<p>&nbsp; &nbsp; 然后用AUL去恢复，这里步骤就不详解了。</p>
<blockquote class="prefont"><p>
D:\oracleasm&gt;aul5b<br />
Register Code: QYOW-EHSO-EIXO-MEKA-VQFG<br />
AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g/11g, release 5.1.2</p>
<p>(C) Copyright Lou Fangxin 2005-2010 (AnySQL.net), all rights reserved.</p>
<p>AUL&gt; open db.txt<br />
*&nbsp; ts#&nbsp; fno&nbsp; rfn ver bsize&nbsp; &nbsp;  blocks filename<br />
- &#8212;- &#8212;- &#8212;- &#8212; &#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Y&nbsp; &nbsp; 6&nbsp; &nbsp; 5&nbsp; &nbsp; 5 a2&nbsp;  8192&nbsp; &nbsp; &nbsp; 16384 aulasm_0005.dbf<br />
AUL&gt; scan data<br />
2011-04-15 09:19:38<br />
RDBA=0x0140000c(5/12),type=0&#215;06,fmt=0xa2,seq=0&#215;02,flag=0&#215;04<br />
seg/obj=0&#215;00003486=13446,csc=0&#215;0000.00412ee2,itc=3,typ=1 &#8211; DATA<br />
tab#=&nbsp; 0&nbsp; &nbsp;  nrow=&nbsp;  2&nbsp; &nbsp;  offs=&nbsp;  0</p>
<p>2011-04-15 09:19:38
</p></blockquote>
<p>&nbsp; &nbsp; 下载<a href="http://www.anysql.net/software/aulasm.zip">Windows版本</a>玩玩吧。</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2011/04/18 -- <a href="http://www.anysql.net/aulmydul/oracle-asm-data-recovery-testcase.html" title="AUL for Oracle ASM数据恢复测试">AUL for Oracle ASM数据恢复测试</a> (4)</li><li>2008/12/27 -- <a href="http://www.anysql.net/aulmydul/aul_parallel_scan_extent.html" title="AUL并行扫描Extent">AUL并行扫描Extent</a> (1)</li><li>2008/08/01 -- <a href="http://www.anysql.net/aulmydul/to_date_from_quarter.html" title="终极Oracle数据恢复工具 &#8212; AUL">终极Oracle数据恢复工具 &#8212; AUL</a> (8)</li><li>2008/05/12 -- <a href="http://www.anysql.net/aulmydul/undo_and_index_bugs.html" title="Oracle不行再用AUL">Oracle不行再用AUL</a> (7)</li><li>2008/04/17 -- <a href="http://www.anysql.net/aulmydul/aul_for_sybase_ase.html" title="Oracle DUL不行就用AUL">Oracle DUL不行就用AUL</a> (10)</li><li>2008/03/26 -- <a href="http://www.anysql.net/aulmydul/try_make_good_suggestion.html" title="不是好人, 这么无耻!">不是好人, 这么无耻!</a> (24)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_sequences.html" title="AUL恢复Oracle视图代码?">AUL恢复Oracle视图代码?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_triggers.html" title="AUL恢复Oracle Sequence?">AUL恢复Oracle Sequence?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_table_indexes.html" title="AUL恢复Oracle触发器?">AUL恢复Oracle触发器?</a> (0)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_source_code.html" title="AUL恢复Oracle索引结构?">AUL恢复Oracle索引结构?</a> (0)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=xzzlsHjUruQ:CkHD6enNG2Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=xzzlsHjUruQ:CkHD6enNG2Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=xzzlsHjUruQ:CkHD6enNG2Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=xzzlsHjUruQ:CkHD6enNG2Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=xzzlsHjUruQ:CkHD6enNG2Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=xzzlsHjUruQ:CkHD6enNG2Y:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/xzzlsHjUruQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/aulmydul/oracle-asm-recovery-aulasm.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anysql.net/aulmydul/oracle-asm-recovery-aulasm.html</feedburner:origLink></item>
		<item>
		<title>Oracle到MySQL的数据迁移工具</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/w216RDLp78o/oracle-mysql-data-migration-tool.html</link>
		<comments>http://www.anysql.net/tools/oracle-mysql-data-migration-tool.html#comments</comments>
		<pubDate>Sat, 02 Apr 2011 09:46:05 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Copy]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=790</guid>
		<description><![CDATA[&#160; &#160; 前段时间使用SQLULDR2和MySQL的Load Data命令迁移了大量数据, 操作步骤复杂一些, 但性能高, 但对于记录数较少的大量小表, 还是比较麻烦的, 刚好前几天想学习一下MySQL的C客户端编程, 于是就想写一个简洁的从Oracle迁移数据到MySQL的小程序, 作为练习题, 一直相信学什么可以用什么! &#160; &#160; 可以下载新工具ora2mysql进行测试, 目前请不要用于做正式迁移. 使用方法如下: D:\&#62;ora2mysql user1=scott/tiger user2=/@localhost:3306:test table=emp &#160; &#160; &#160; &#160; 0 rows processed at 2011-04-02 15:03:08. &#160; &#160; &#160; &#160; 2 rows processed at 2011-04-02 15:03:08. &#160; &#160; 在速度方面，由于不支持Array操作，因此速度比较慢，希望Oracle能让SQL * Plus也能连接MySQL库，或改造一下MySQL客户端，增加Array接口。 D:\&#62;ora2mysql user1=scott/tiger user2=/@::test table1=emp_bak table2=emp &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 前段时间使用SQLULDR2和MySQL的Load Data命令迁移了大量数据, 操作步骤复杂一些, 但性能高, 但对于记录数较少的大量小表, 还是比较麻烦的, 刚好前几天想学习一下MySQL的C客户端编程, 于是就想写一个简洁的从Oracle迁移数据到MySQL的小程序, 作为练习题, 一直相信学什么可以用什么! </p>
<p>&nbsp; &nbsp; 可以下载新工具<a href="http://www.anysql.net/software/ora2mysql.zip">ora2mysql</a>进行测试, 目前请不要用于做正式迁移. 使用方法如下: </p>
<blockquote class="prefont"><p>
D:\&gt;ora2mysql user1=scott/tiger user2=/@localhost:3306:test table=emp<br />
&nbsp; &nbsp; &nbsp; &nbsp;  0 rows processed at 2011-04-02 15:03:08.<br />
&nbsp; &nbsp; &nbsp; &nbsp;  2 rows processed at 2011-04-02 15:03:08.
</p></blockquote>
<p>&nbsp; &nbsp; 在速度方面，由于不支持Array操作，因此速度比较慢，希望Oracle能让SQL * Plus也能连接MySQL库，或改造一下MySQL客户端，增加Array接口。</p>
<blockquote class="prefont"><p>
D:\&gt;ora2mysql user1=scott/tiger user2=/@::test table1=emp_bak table2=emp<br />
&nbsp; &nbsp; &nbsp; &nbsp;  0 rows processed at 2011-04-02 19:48:51.<br />
&nbsp; &nbsp; 100000 rows processed at 2011-04-02 19:49:17.<br />
&nbsp; &nbsp; 200000 rows processed at 2011-04-02 19:49:42.<br />
&nbsp; &nbsp; 300000 rows processed at 2011-04-02 19:50:07.<br />
&nbsp; &nbsp; 400000 rows processed at 2011-04-02 19:50:32.<br />
&nbsp; &nbsp; 500000 rows processed at 2011-04-02 19:50:57.<br />
&nbsp; &nbsp; 600000 rows processed at 2011-04-02 19:51:23.<br />
&nbsp; &nbsp; 700000 rows processed at 2011-04-02 19:51:48.<br />
&nbsp; &nbsp; 800000 rows processed at 2011-04-02 19:52:14.<br />
&nbsp; &nbsp; 900000 rows processed at 2011-04-02 19:52:39.<br />
&nbsp;  1000000 rows processed at 2011-04-02 19:53:03.<br />
&nbsp;  1100000 rows processed at 2011-04-02 19:53:29.<br />
&nbsp;  1200000 rows processed at 2011-04-02 19:53:56.<br />
&nbsp;  1300000 rows processed at 2011-04-02 19:54:24.<br />
&nbsp;  1400000 rows processed at 2011-04-02 19:54:53.
</p></blockquote>
<p>&nbsp; &nbsp; 目前还不支持BLOB类型, 也不支持字符集的设置, 请大家理解与支持. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/03/15 -- <a href="http://www.anysql.net/tools/datacopy-utility.html" title="学习OCI之DataCopy程序">学习OCI之DataCopy程序</a> (8)</li><li>2011/03/28 -- <a href="http://www.anysql.net/tools/datacopy-300gb-data-test.html" title="DataCopy通过300GB的数据测试">DataCopy通过300GB的数据测试</a> (16)</li><li>2010/04/15 -- <a href="http://www.anysql.net/tools/parallel-datacopy-datasync.html" title="并行SQLULDR2和DataCopy操作">并行SQLULDR2和DataCopy操作</a> (4)</li><li>2009/11/07 -- <a href="http://www.anysql.net/tools/sqluldr2-mysql-data-migration-test.html" title="MySQL数据迁移测试">MySQL数据迁移测试</a> (8)</li><li>2009/06/09 -- <a href="http://www.anysql.net/tools/copydata-perl-scripts.html" title="copydata异构数据拷贝">copydata异构数据拷贝</a> (6)</li><li>2008/05/15 -- <a href="http://www.anysql.net/dba/aul_better_for_nchar.html" title="将dmp数据导入到另一个表">将dmp数据导入到另一个表</a> (3)</li><li>2008/02/20 -- <a href="http://www.anysql.net/dba/export_charset_convert.html" title="导出时的字符集转换">导出时的字符集转换</a> (1)</li><li>2007/11/28 -- <a href="http://www.anysql.net/oracle/tune_oracle_exp_imp.html" title="如何提高Oracle exp/imp的速度?">如何提高Oracle exp/imp的速度?</a> (7)</li><li>2007/07/10 -- <a href="http://www.anysql.net/tools/dmp2utf8_download_increase.html" title="dmp2utf8的下载量骤增, 不知什么原因?">dmp2utf8的下载量骤增, 不知什么原因?</a> (5)</li><li>2007/03/14 -- <a href="http://www.anysql.net/tools/move_data_oracle_mysql.html" title="如何在不同类型的数据库间迁移数据?">如何在不同类型的数据库间迁移数据?</a> (1)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=w216RDLp78o:fVXwVNkNHUo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=w216RDLp78o:fVXwVNkNHUo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=w216RDLp78o:fVXwVNkNHUo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=w216RDLp78o:fVXwVNkNHUo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=w216RDLp78o:fVXwVNkNHUo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=w216RDLp78o:fVXwVNkNHUo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/w216RDLp78o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/oracle-mysql-data-migration-tool.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/oracle-mysql-data-migration-tool.html</feedburner:origLink></item>
		<item>
		<title>DataCopy通过300GB的数据测试</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/pnuuM2JfLjs/datacopy-300gb-data-test.html</link>
		<comments>http://www.anysql.net/tools/datacopy-300gb-data-test.html#comments</comments>
		<pubDate>Mon, 28 Mar 2011 11:50:24 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Import]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=789</guid>
		<description><![CDATA[&#160; &#160; 网友使用DataCopy进行了数据迁移测试, 数据量有300GB的样子, 表有几百个, DataCopy表现不错, 单进程时也和Exp/Imp不相上下, 因为DataCopy可以很方便地自动并行处理, 这是他选择DataCopy的重要理由, 只需要加一个并行度就行了. datacopy user1=&#8230; user2=&#8230; table=&#8230; degree=4 &#160; &#160; Bug往往在大量测试或要正式使用时出现, 这次也不例外. 总共解决了两个程序缺限, 错误信息如下所示: ORA-01405: fetched column value is NULL ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column &#160; &#160; 第一个错误是因为使用回调函数处理Long或LOB类型时, 没有使用标志变量(Indicator Variable), 第二个错误是因为传绑定变量时没有将Long或LOB列放在最后. 以前居然没有理解这一点, 汗颜啊! ORA-24345: A Truncation or null fetch error [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 网友使用DataCopy进行了数据迁移测试, 数据量有300GB的样子, 表有几百个, DataCopy表现不错, 单进程时也和Exp/Imp不相上下, 因为DataCopy可以很方便地自动并行处理, 这是他选择DataCopy的重要理由, 只需要加一个并行度就行了. </p>
<blockquote class="prefont"><p>
datacopy user1=&#8230; user2=&#8230; table=&#8230; degree=4
</p></blockquote>
<p>&nbsp; &nbsp; Bug往往在大量测试或要正式使用时出现, 这次也不例外. 总共解决了两个程序缺限, 错误信息如下所示: </p>
<blockquote class="prefont"><p>
ORA-01405: fetched column value is NULL <br />
ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
</p></blockquote>
<p>&nbsp; &nbsp; 第一个错误是因为使用回调函数处理Long或LOB类型时, 没有使用标志变量(Indicator Variable), 第二个错误是因为传绑定变量时没有将Long或LOB列放在最后. 以前居然没有理解这一点, 汗颜啊! </p>
<blockquote class="prefont"><p>
ORA-24345: A Truncation or null fetch error occurred
</p></blockquote>
<p>&nbsp; &nbsp; 另外还回答了两个问题, 第一个是上面的错误, 这是因为NLS_LANG中标明的字符集与数据库的字符集不一样, 发生了转换, 导致程序给的缓冲区不够用引起的. 另一个问题是, Direct Load方式迁移数据库出现乱码, 一般也是因为NLS_LANG中标明的字符集与数据库的字符集不一样. </p>
<p>&nbsp; &nbsp; 经过这一次的改进, DataCopy和DataSync应当是相当稳定了, 已编译好AIX的版本让大家选择. <strong>如果觉得好, 可以赞助个10元/5元的, 让我们技术人员知道技术环境正在逐步改善.</strong></p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2011/04/02 -- <a href="http://www.anysql.net/tools/oracle-mysql-data-migration-tool.html" title="Oracle到MySQL的数据迁移工具">Oracle到MySQL的数据迁移工具</a> (6)</li><li>2010/04/18 -- <a href="http://www.anysql.net/tools/parallel-inside-sqluldr2.html" title="SQLULDR2 : Parallel Inside Now!">SQLULDR2 : Parallel Inside Now!</a> (12)</li><li>2010/04/15 -- <a href="http://www.anysql.net/tools/parallel-datacopy-datasync.html" title="并行SQLULDR2和DataCopy操作">并行SQLULDR2和DataCopy操作</a> (4)</li><li>2010/03/15 -- <a href="http://www.anysql.net/tools/datacopy-utility.html" title="学习OCI之DataCopy程序">学习OCI之DataCopy程序</a> (8)</li><li>2009/04/02 -- <a href="http://www.anysql.net/tools/sqluldr2_license.html" title="给SQLULDR2加上Key保护">给SQLULDR2加上Key保护</a> (6)</li><li>2009/03/31 -- <a href="http://www.anysql.net/tools/sqluldr2_simple_query.html" title="指定表名导出文本">指定表名导出文本</a> (0)</li><li>2011/03/23 -- <a href="http://www.anysql.net/tools/oci-lob-ora-01405.html" title="解决OCI LOB值的ORA-01405错误">解决OCI LOB值的ORA-01405错误</a> (4)</li><li>2010/06/24 -- <a href="http://www.anysql.net/tools/sqluldr2-charset-option.html" title="控制SQLULDR2的字符集">控制SQLULDR2的字符集</a> (6)</li><li>2010/06/19 -- <a href="http://www.anysql.net/tools/sqluldr2-non-free-features.html" title="2011年起SQLULDR2中的收费功能">2011年起SQLULDR2中的收费功能</a> (10)</li><li>2010/05/12 -- <a href="http://www.anysql.net/tools/datacopy-gui-version.html" title="图形版Oracle数据迁移工具">图形版Oracle数据迁移工具</a> (11)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=pnuuM2JfLjs:BdoIk_ANhEA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pnuuM2JfLjs:BdoIk_ANhEA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pnuuM2JfLjs:BdoIk_ANhEA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=pnuuM2JfLjs:BdoIk_ANhEA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pnuuM2JfLjs:BdoIk_ANhEA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pnuuM2JfLjs:BdoIk_ANhEA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/pnuuM2JfLjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/datacopy-300gb-data-test.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/datacopy-300gb-data-test.html</feedburner:origLink></item>
		<item>
		<title>编译Windows下的第一个MySQL程序</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/RarSY-wPrxo/first-mysql-c-program.html</link>
		<comments>http://www.anysql.net/developer/first-mysql-c-program.html#comments</comments>
		<pubDate>Sun, 27 Mar 2011 13:56:12 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=788</guid>
		<description><![CDATA[&#160; &#160; 要编写高效的客户端软件就得用C语言, Oracle的OCI初级编程基本搞懂了, 现在学一点MySQL客户端的编程, 可以偿试去写一个Oracle与MySQL对拷数据的C程序, MySQL的源代码看不懂, 走走外围也不错. 下面是从网上找来的一段MySQL代码, 显示Global Status命令的结果, 源代码如下: #include &#60;winsock2.h&#62; #include &#60;mysql.h&#62; #include &#60;stdio.h&#62; int main() { &#160; MYSQL *conn; &#160; MYSQL_STMT *stmt; &#160; MYSQL_RES&#160; *res; &#160; MYSQL_ROW&#160; row; &#160; char *server = &#8220;localhost&#8221;; &#160; char *user = &#8220;root&#8221;; &#160; char *password = &#8220;&#8221;; &#160; char *database = &#8220;test&#8221;; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 要编写高效的客户端软件就得用C语言, Oracle的OCI初级编程基本搞懂了, 现在学一点MySQL客户端的编程, 可以偿试去写一个Oracle与MySQL对拷数据的C程序, MySQL的源代码看不懂, 走走外围也不错. 下面是从网上找来的一段MySQL代码, 显示Global Status命令的结果, 源代码如下: </p>
<blockquote class="prefont"><p>
#include &lt;winsock2.h&gt;<br />
#include &lt;mysql.h&gt;<br />
#include &lt;stdio.h&gt;</p>
<p>int main() <br />
{<br />
&nbsp;  MYSQL *conn;<br />
&nbsp;  MYSQL_STMT *stmt;<br />
&nbsp;  MYSQL_RES&nbsp; *res;<br />
&nbsp;  MYSQL_ROW&nbsp; row;</p>
<p>&nbsp;  char *server = &#8220;localhost&#8221;;<br />
&nbsp;  char *user = &#8220;root&#8221;;<br />
&nbsp;  char *password = &#8220;&#8221;;<br />
&nbsp;  char *database = &#8220;test&#8221;;<br />
&nbsp;  <br />
&nbsp;  conn = mysql_init(NULL);<br />
&nbsp;  <br />
&nbsp;  /* Connect to database */<br />
&nbsp;  if (!mysql_real_connect(conn, server,<br />
&nbsp; &nbsp; &nbsp;  user, password, database, 0, NULL, CLIENT_MULTI_STATEMENTS)) <br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp; fprintf(stderr, &#8220;%s\n&#8221;, mysql_error(conn));<br />
&nbsp; &nbsp; &nbsp; return(0);<br />
&nbsp;  }</p>
<p>&nbsp;  /* send SQL query */<br />
&nbsp;  if (mysql_query(conn, &#8220;show global status;&#8221;)) <br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp; fprintf(stderr, &#8220;%s\n&#8221;, mysql_error(conn));<br />
&nbsp; &nbsp; &nbsp; return(0);<br />
&nbsp;  }</p>
<p>&nbsp;  res = mysql_use_result(conn);<br />
&nbsp;  <br />
&nbsp;  /* output fields 1 and 2 of each row */<br />
&nbsp;  while ((row = mysql_fetch_row(res)) != NULL)<br />
&nbsp; &nbsp; &nbsp; printf(&#8220;%s %s\n&#8221;, row[0], row[1]);</p>
<p>&nbsp;  /* Release memory used to store results and close connection */<br />
&nbsp;  mysql_free_result(res);<br />
&nbsp;  mysql_close(conn);<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; Windows下的编译很简单, 只要在编译时加上libmysql包就行了. </p>
<blockquote class="prefont"><p>
cl my1.cpp libmysql.lib
</p></blockquote>
<p>&nbsp; &nbsp; 接下来看看MySQL的绑定变量使用, 及批量操作的接, 看看是否可以写出DataCopy Oracle-MySQL程序. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/11/17 -- <a href="http://www.anysql.net/tools/webchart-array-setting.html" title="满足同事的一个报表需求">满足同事的一个报表需求</a> (2)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/26 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess2.html" title="逻辑连接层与物理连接层(2)">逻辑连接层与物理连接层(2)</a> (1)</li><li>2010/01/05 -- <a href="http://www.anysql.net/tools/webchart-forall-loop.html" title="DataReport中的FORALL循环">DataReport中的FORALL循环</a> (0)</li><li>2009/12/25 -- <a href="http://www.anysql.net/tools/sqluldr2-customized-escape-chars.html" title="SQLULDR2的自定义转义符处理">SQLULDR2的自定义转义符处理</a> (2)</li><li>2009/11/07 -- <a href="http://www.anysql.net/tools/sqluldr2-mysql-data-migration-test.html" title="MySQL数据迁移测试">MySQL数据迁移测试</a> (8)</li><li>2009/10/30 -- <a href="http://www.anysql.net/tools/sqluldr2-high-perf-insert-unload.html" title="SQLULDR2功能增加, 性能不减">SQLULDR2功能增加, 性能不减</a> (14)</li><li>2009/10/28 -- <a href="http://www.anysql.net/tools/sqluldr2-mysql-insert-sqls.html" title="SQLULDR2生成Insert SQL语句">SQLULDR2生成Insert SQL语句</a> (4)</li><li>2009/10/27 -- <a href="http://www.anysql.net/tools/sqluldr2-more-escape-chars.html" title="将SQLULDR2转义符进行到底">将SQLULDR2转义符进行到底</a> (3)</li><li>2009/10/26 -- <a href="http://www.anysql.net/tools/sqluldr2-mysql-escape-char.html" title="SQLULDR2处理MySQL转义符">SQLULDR2处理MySQL转义符</a> (1)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=RarSY-wPrxo:uaVXszAQmIs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=RarSY-wPrxo:uaVXszAQmIs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=RarSY-wPrxo:uaVXszAQmIs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=RarSY-wPrxo:uaVXszAQmIs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=RarSY-wPrxo:uaVXszAQmIs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=RarSY-wPrxo:uaVXszAQmIs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/RarSY-wPrxo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/first-mysql-c-program.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.anysql.net/developer/first-mysql-c-program.html</feedburner:origLink></item>
		<item>
		<title>解决OCI LOB值的ORA-01405错误</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/Fdy_Qu2BMtY/oci-lob-ora-01405.html</link>
		<comments>http://www.anysql.net/tools/oci-lob-ora-01405.html#comments</comments>
		<pubDate>Wed, 23 Mar 2011 11:46:50 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[LOB]]></category>
		<category><![CDATA[Replication]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=786</guid>
		<description><![CDATA[&#160; &#160; 基于OCI写的DataCopy(数据拷贝)与DataSync(数据同步)软件, 处理Lob类型的NULL值时一直都有问题, 会报ORA-01405错误, 导致去年丢失可以在正式场合(用于实时备份某地交通局的图片数据)使用的机会, 很是可惜. 最近关注这两个工具的人变多了, 再次向我报告了这个问题, 于是花了点时间去修改原来的代码, 终于搞定, 希望能找到一个正式使用的场景. ORA-01405: fetched column value is NULL Cause:The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 基于OCI写的DataCopy(数据拷贝)与DataSync(数据同步)软件, 处理Lob类型的NULL值时一直都有问题, 会报ORA-01405错误, 导致去年丢失可以在正式场合(用于实时备份某地交通局的图片数据)使用的机会, 很是可惜. 最近关注这两个工具的人变多了, 再次向我报告了这个问题, 于是花了点时间去修改原来的代码, 终于搞定, 希望能找到一个正式使用的场景. </p>
<blockquote class="prefont">
<p><strong>ORA-01405</strong>: fetched column value is NULL <br />
<strong>Cause</strong>:The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you are running Oracle with DBMS=6, emulating version 6, in which case it is only a warning.</p>
</blockquote>
<p>&nbsp; &nbsp; 另外还修改了连接数据库的方式, 在Instant Client和Full Client的情况下及任何数据库版下, 都可以用以下格式连接数据库, 尽量为大家提供方便. </p>
<blockquote class="prefont"><p>
sqluldr2 scott/tiger@localhost:1521:db10g &#8230;<br />
datacopy user=scott/tiger@localhost:1521:db10g &#8230;<br />
datasync user=scott/tiger@localhost:1521:db10g &#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 再次简单地讲解一下这两个工具, DataCopy是一个不落地的Oracle之间数据对拷工具, 支持Long/Lob等数据类型(单值100MB以内), 并且速度上不比Exp/Imp工具差, 是一个很理想的Oracle数据迁移工具. DataSync是一个利用物化视图日志或触发器捕获增量变化数据, 进行准实时的数据同步/复制工具, 我们用这种机制在半小时内迁移过500GB的数据, 支持每秒钟上千次的变更压力, 并且同样支持Long/Lob等数据类型(单值100MB以内). 更重要的是, 这两个工具自2011年起, 完全免费使用. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/04/10 -- <a href="http://www.anysql.net/tools/datacopy-datasync-nls-lang.html" title="不同字符集的数据迁移">不同字符集的数据迁移</a> (6)</li><li>2010/04/10 -- <a href="http://www.anysql.net/tools/datasync-mview-log-creation.html" title="DataSync之物化视图日志助手">DataSync之物化视图日志助手</a> (0)</li><li>2010/03/27 -- <a href="http://www.anysql.net/tools/datasync-data-replication.html" title="Oracle中轻松复制SCOTT.EMP">Oracle中轻松复制SCOTT.EMP</a> (6)</li><li>2011/03/28 -- <a href="http://www.anysql.net/tools/datacopy-300gb-data-test.html" title="DataCopy通过300GB的数据测试">DataCopy通过300GB的数据测试</a> (16)</li><li>2010/05/12 -- <a href="http://www.anysql.net/tools/datacopy-gui-version.html" title="图形版Oracle数据迁移工具">图形版Oracle数据迁移工具</a> (11)</li><li>2010/04/18 -- <a href="http://www.anysql.net/tools/parallel-inside-sqluldr2.html" title="SQLULDR2 : Parallel Inside Now!">SQLULDR2 : Parallel Inside Now!</a> (12)</li><li>2010/04/16 -- <a href="http://www.anysql.net/tools/parallel-inside-datacopy.html" title="DataCopy : Parallel Inside Now!">DataCopy : Parallel Inside Now!</a> (2)</li><li>2010/04/15 -- <a href="http://www.anysql.net/tools/parallel-datacopy-datasync.html" title="并行SQLULDR2和DataCopy操作">并行SQLULDR2和DataCopy操作</a> (4)</li><li>2010/03/20 -- <a href="http://www.anysql.net/tools/datacopy-conflict-filler-options.html" title="DataCopy选项: conflict和filler">DataCopy选项: conflict和filler</a> (0)</li><li>2010/03/16 -- <a href="http://www.anysql.net/tools/datacopy-data-sync-mode.html" title="用DataCopy进行Oracle数据同步">用DataCopy进行Oracle数据同步</a> (6)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=Fdy_Qu2BMtY:CMJFAeeeC0c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=Fdy_Qu2BMtY:CMJFAeeeC0c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=Fdy_Qu2BMtY:CMJFAeeeC0c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=Fdy_Qu2BMtY:CMJFAeeeC0c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=Fdy_Qu2BMtY:CMJFAeeeC0c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=Fdy_Qu2BMtY:CMJFAeeeC0c:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/Fdy_Qu2BMtY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/oci-lob-ora-01405.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/oci-lob-ora-01405.html</feedburner:origLink></item>
		<item>
		<title>对Oracle的两个功能需求</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/OuLxwhRp7oQ/oracle-skip-mview-log.html</link>
		<comments>http://www.anysql.net/oracle/oracle-skip-mview-log.html#comments</comments>
		<pubDate>Thu, 17 Mar 2011 14:01:38 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Hash]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[Replication]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=784</guid>
		<description><![CDATA[&#160; &#160; Hash算法在NoSQL、内存表、Cache中广泛使用，Oracle中也有基于Hash算法的Cluster对象，可以创建Hash表，但却没有Hash索引。在以前2000万记录的测试中，获取一条记录的逻辑读是1.06个，这个效率用普通的索引是很难完成的，换成索引的话，也就是一条记录2.06个逻辑读，同样十分高效。虽然可以用PL/SQL编写组件可以实现，但肯定不如在内核一级实现这个功能，保持表结构的灵活性，又保持主键访问的高效性。 &#160; &#160; 物化视图日志是一种很好的Change Data Capture的机制，可以满足大部份系统数据同步的需求，根本就不需要用到基于日志的复杂技术。但有一些批量处理的任务，不想Oracle捕捉变更，但采用物化视图时，没有办法跳过。为此曾经查阅了物化视图有关的所有内建存贮过程包，都没有找到解决方案，其实很容易实现这个功能，大家可以借用这个工能实现轻量级的数据复制方案。虽然说是轻量级的，但对于每秒上千次的一样也很容易复制。 &#160; &#160; 想起07年提过的两个需求，都已经实现，其中一个已经验证过了，就是11g的Active Standby；另一个是RAC节点的读写控制，以实现一个写多个读的机制，减少全局锁的冲突引起的性能停顿，还有待验证一下，只是验证的成本比较高，目前还没有时间去搞它。 &#160; &#160; 07年的两个想法太想要了，所以跑去发Tar，今天的这两个功能不是那么急，就只在博客中提一下算了。要是有淘宝在MySQL上的实力，就去自已实现算了。 Relative Posts:2007/04/27 -- Oracle应当增加一种基于Hash算法的索引 (3)2009/02/05 -- 导出时如何统一表空间? (2)2008/06/23 -- 根据表名搜索SQL语句 (0)2008/05/11 -- 一周遇到两个Oracle Bug (5)2008/03/20 -- AUL恢复Oracle索引结构? (0)2008/03/06 -- HVR, 欧州的Shareplex? (0)2008/02/29 -- 向Zizzy项目注入MyLOG (8)2008/02/28 -- Oracle CBO认为Cost为0 (2)2007/12/04 -- TIMESTAMP类型上的索引 (0)2007/09/06 -- 用Stop List来缩小Oracle全文索引的大小 (4)]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; Hash算法在NoSQL、内存表、Cache中广泛使用，Oracle中也有基于Hash算法的Cluster对象，可以创建Hash表，但却没有Hash索引。在以前2000万记录的测试中，获取一条记录的逻辑读是1.06个，这个效率用普通的索引是很难完成的，换成索引的话，也就是一条记录2.06个逻辑读，同样十分高效。虽然可以用PL/SQL编写组件可以实现，但肯定不如在内核一级实现这个功能，保持表结构的灵活性，又保持主键访问的高效性。</p>
<p>&nbsp; &nbsp; 物化视图日志是一种很好的Change Data Capture的机制，可以满足大部份系统数据同步的需求，根本就不需要用到基于日志的复杂技术。但有一些批量处理的任务，不想Oracle捕捉变更，但采用物化视图时，没有办法跳过。为此曾经查阅了物化视图有关的所有内建存贮过程包，都没有找到解决方案，其实很容易实现这个功能，大家可以借用这个工能实现轻量级的数据复制方案。虽然说是轻量级的，但对于每秒上千次的一样也很容易复制。</p>
<p>&nbsp; &nbsp; 想起07年提过的两个需求，都已经实现，其中一个已经验证过了，就是11g的Active Standby；另一个是RAC节点的读写控制，以实现一个写多个读的机制，减少全局锁的冲突引起的性能停顿，还有待验证一下，只是验证的成本比较高，目前还没有时间去搞它。</p>
<p>&nbsp; &nbsp; 07年的两个想法太想要了，所以跑去发Tar，今天的这两个功能不是那么急，就只在博客中提一下算了。要是有淘宝在MySQL上的实力，就去自已实现算了。</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2007/04/27 -- <a href="http://www.anysql.net/oracle/oracle_hash_index_type.html" title="Oracle应当增加一种基于Hash算法的索引">Oracle应当增加一种基于Hash算法的索引</a> (3)</li><li>2009/02/05 -- <a href="http://www.anysql.net/dba/change_export_tablespace.html" title="导出时如何统一表空间?">导出时如何统一表空间?</a> (2)</li><li>2008/06/23 -- <a href="http://www.anysql.net/dba/apache_tomcat.html" title="根据表名搜索SQL语句">根据表名搜索SQL语句</a> (0)</li><li>2008/05/11 -- <a href="http://www.anysql.net/oracle/my_network_channels.html" title="一周遇到两个Oracle Bug">一周遇到两个Oracle Bug</a> (5)</li><li>2008/03/20 -- <a href="http://www.anysql.net/aulmydul/aul_recover_source_code.html" title="AUL恢复Oracle索引结构?">AUL恢复Oracle索引结构?</a> (0)</li><li>2008/03/06 -- <a href="http://www.anysql.net/dba/shareplex_from_europe.html" title="HVR, 欧州的Shareplex?">HVR, 欧州的Shareplex?</a> (0)</li><li>2008/02/29 -- <a href="http://www.anysql.net/developer/give_mylog_to_zizzy.html" title="向Zizzy项目注入MyLOG">向Zizzy项目注入MyLOG</a> (8)</li><li>2008/02/28 -- <a href="http://www.anysql.net/oracle/oracle_zero_cost_plan.html" title="Oracle CBO认为Cost为0">Oracle CBO认为Cost为0</a> (2)</li><li>2007/12/04 -- <a href="http://www.anysql.net/oracle/index_on_timestamp.html" title="TIMESTAMP类型上的索引">TIMESTAMP类型上的索引</a> (0)</li><li>2007/09/06 -- <a href="http://www.anysql.net/oracle/context_index_stoplist.html" title="用Stop List来缩小Oracle全文索引的大小">用Stop List来缩小Oracle全文索引的大小</a> (4)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=OuLxwhRp7oQ:EM2e_mEnSb8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=OuLxwhRp7oQ:EM2e_mEnSb8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=OuLxwhRp7oQ:EM2e_mEnSb8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=OuLxwhRp7oQ:EM2e_mEnSb8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=OuLxwhRp7oQ:EM2e_mEnSb8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=OuLxwhRp7oQ:EM2e_mEnSb8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/OuLxwhRp7oQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/oracle/oracle-skip-mview-log.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.anysql.net/oracle/oracle-skip-mview-log.html</feedburner:origLink></item>
		<item>
		<title>控制DataReport的表格格式</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/KTkXqBrAe4g/datareport-table-formater.html</link>
		<comments>http://www.anysql.net/tools/datareport-table-formater.html#comments</comments>
		<pubDate>Sat, 18 Dec 2010 01:32:49 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=780</guid>
		<description><![CDATA[&#160; &#160; 中国式的报表一直是头疼的问题, 比如要出一份如下格式的报表, 一直都想实现的, 直到今天才想到如何嵌入这个功能. Empno Salary Sal Comm 7369 800.0 &#160; 7499 1600.0 &#160;300.0 7521 1250.0 &#160;500.0 7566 2975.0 &#160; 7654 1250.0 &#160;1400.0 7698 2850.0 &#160; 7782 2450.0 &#160; &#160; &#160; 实现这个功能是通过自定议表头, 及记录格式来完成的, 报表定义文件如下. webchart.query_1=select empno, sal, comm from emp webchart.headhtml_1= &#160; &#60;tr&#62;&#60;th rowspan=&#8221;2&#8243; align=&#8221;center&#8221;&#62;Empno&#60;/th&#62; &#160; &#160; &#160; &#60;th colspan=&#8221;2&#8243; align=&#8221;center&#8221;&#62;Salary&#60;/th&#62;&#60;/tr&#62; &#160; &#60;tr&#62;&#60;th [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 中国式的报表一直是头疼的问题, 比如要出一份如下格式的报表, 一直都想实现的, 直到今天才想到如何嵌入这个功能. </p>
<blockquote>
<table border="1" width="500" cellspacing="0" cellpadding="2">
<tr>
<th rowspan="2" align="center">Empno</th>
<th colspan="2" align="center">Salary</th>
</tr>
<tr>
<th align="center">Sal</th>
<th align="center">Comm</th>
</tr>
<tr>
<td align="center">7369</td>
<td align="right">800.0</td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td align="center">7499</td>
<td align="right">1600.0</td>
<td align="right">&nbsp;300.0</td>
</tr>
<tr>
<td align="center">7521</td>
<td align="right">1250.0</td>
<td align="right">&nbsp;500.0</td>
</tr>
<tr>
<td align="center">7566</td>
<td align="right">2975.0</td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td align="center">7654</td>
<td align="right">1250.0</td>
<td align="right">&nbsp;1400.0</td>
</tr>
<tr>
<td align="center">7698</td>
<td align="right">2850.0</td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td align="center">7782</td>
<td align="right">2450.0</td>
<td align="right">&nbsp;</td>
</tr>
</table>
</blockquote>
<p>&nbsp; &nbsp; 实现这个功能是通过自定议表头, 及记录格式来完成的, 报表定义文件如下. </p>
<blockquote class="prefont"><p>
webchart.query_1=select empno, sal, comm from emp</p>
<p>webchart.headhtml_1=<br />
&nbsp;  &lt;tr&gt;&lt;th rowspan=&#8221;2&#8243; align=&#8221;center&#8221;&gt;Empno&lt;/th&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;th colspan=&#8221;2&#8243; align=&#8221;center&#8221;&gt;Salary&lt;/th&gt;&lt;/tr&gt;<br />
&nbsp;  &lt;tr&gt;&lt;th align=&#8221;center&#8221;&gt;Sal&lt;/th&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;th align=&#8221;center&#8221;&gt;Comm&lt;/th&gt;&lt;/tr&gt;</p>
<p>webchart.datahtml_1=<br />
&nbsp;  &lt;tr&gt;&lt;td align=&#8221;center&#8221;&gt;$empno&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;td align=&#8221;right&#8221;&gt;$sal&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;td align=&#8221;right&#8221;&gt;&amp;nbsp;$comm&lt;/td&gt;&lt;/tr&gt;
</p></blockquote>
<p>&nbsp; &nbsp; 除了特殊处理外, 还想不到通用的方式实现, 需要用最新的<a href="http://www.anysql.net/doc/default.xsl" target="_blank">xsl格式控制文件</a>才行, Excel中还不支持这个格式.</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/08/23 -- <a href="http://www.anysql.net/tools/datareport-pagesize.html" title="DataReport的多栏显示">DataReport的多栏显示</a> (2)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-super-expression.html" title="DataReport中的超级表达式">DataReport中的超级表达式</a> (2)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-merge-dup-values.html" title="DataReport的重复值合并">DataReport的重复值合并</a> (0)</li><li>2010/01/05 -- <a href="http://www.anysql.net/tools/webchart-forall-loop.html" title="DataReport中的FORALL循环">DataReport中的FORALL循环</a> (0)</li><li>2009/12/29 -- <a href="http://www.anysql.net/tools/webchart-page-cache.html" title="DataReport中的Cache为王">DataReport中的Cache为王</a> (4)</li><li>2009/12/28 -- <a href="http://www.anysql.net/tools/webchart-one-java-servlet.html" title="统一DataReport的Servlet">统一DataReport的Servlet</a> (2)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=KTkXqBrAe4g:3e_VPjrESMY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=KTkXqBrAe4g:3e_VPjrESMY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=KTkXqBrAe4g:3e_VPjrESMY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=KTkXqBrAe4g:3e_VPjrESMY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=KTkXqBrAe4g:3e_VPjrESMY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=KTkXqBrAe4g:3e_VPjrESMY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/KTkXqBrAe4g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/datareport-table-formater.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/datareport-table-formater.html</feedburner:origLink></item>
		<item>
		<title>满足同事的一个报表需求</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/pvyAH52m4ng/webchart-array-setting.html</link>
		<comments>http://www.anysql.net/tools/webchart-array-setting.html#comments</comments>
		<pubDate>Wed, 17 Nov 2010 14:13:27 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=779</guid>
		<description><![CDATA[&#160; &#160; 做MySQL的一个同事两个多月以前, 向我提了一个需求, 要解决他的一个监控数据展示上的问题. 由于MySQL机器很多, 要在一个页面上展示某组(名字上有特色, 可以区分, 比如proda, prodb等)MySQL服务器的负载, CPU等指标时, 不够灵活, 当增加一台服务器时, 必须要手工更改页面, 将新增的服务器名字更新进去, 的确不是很方便. 受困于WebChart的程序结构稳定性要求, 及同事需求的合理性中, 一时没有想出解决的办法. &#160; &#160; 今天偶儿想一下, 居然可以解决了, 在类型(TYPE)属性中新增一个SET选项, 表示数据源不作任何显示, 只将查询的结果设置(SET)到一个变量中. 还是来看一个例子说明一下吧. WEBCHART.TYPE_n=SET WEBCHART.QUERY_n=SELECT DEPTNO FROM DEPT &#160; &#160; 这个查询返回的结果会保存到名为&#8221;ARRAY.n&#8221;的变量中, 在下一个查询中, 就可以引用了. WEBCHART.FORALL_x=${ARRAY.n} WEBCHART.QUERY_x=SELECT &#8230; FROM EMP WHERE DEPTNO=:ARR_deptno &#160; &#160; 在FORALL中引用时, 就可以遍历第一个查询的每一条记录, 遍历时引用的变量名则为字段名加以一个前缀(ARR_)就可以. 我同事的问题, 可以用如下一个完整的页面来完成. WEBCHART.TYPE_1=SET WEBCHART.QUERY_1=SELECT SERVER_NAME FROM [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 做MySQL的一个同事两个多月以前, 向我提了一个需求, 要解决他的一个监控数据展示上的问题. 由于MySQL机器很多, 要在一个页面上展示某组(名字上有特色, 可以区分, 比如proda, prodb等)MySQL服务器的负载, CPU等指标时, 不够灵活, 当增加一台服务器时, 必须要手工更改页面, 将新增的服务器名字更新进去, 的确不是很方便. 受困于WebChart的程序结构稳定性要求, 及同事需求的合理性中, 一时没有想出解决的办法.</p>
<p>&nbsp; &nbsp; 今天偶儿想一下, 居然可以解决了, 在类型(TYPE)属性中新增一个SET选项, 表示数据源不作任何显示, 只将查询的结果设置(SET)到一个变量中. 还是来看一个例子说明一下吧.</p>
<blockquote class="prefont"><p>
WEBCHART.TYPE_n=SET<br />
WEBCHART.QUERY_n=SELECT DEPTNO FROM DEPT
</p></blockquote>
<p>&nbsp; &nbsp; 这个查询返回的结果会保存到名为&#8221;ARRAY.n&#8221;的变量中, 在下一个查询中, 就可以引用了. </p>
<blockquote class="prefont"><p>
WEBCHART.FORALL_x=${ARRAY.n}<br />
WEBCHART.QUERY_x=SELECT &#8230; FROM EMP WHERE DEPTNO=:ARR_deptno
</p></blockquote>
<p>&nbsp; &nbsp; 在FORALL中引用时, 就可以遍历第一个查询的每一条记录, 遍历时引用的变量名则为字段名加以一个前缀(ARR_)就可以. 我同事的问题, 可以用如下一个完整的页面来完成. </p>
<blockquote class="prefont"><p>
WEBCHART.TYPE_1=SET<br />
WEBCHART.QUERY_1=SELECT SERVER_NAME FROM MYSQL_SERVERS <br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE SERVER_NAME LIKE &#8216;proda%&#8217;</p>
<p>WEBCHART.FORALL_2=${ARRAY.1}<br />
WEBCHART.QUERY_2=SELECT DAY, LOAD FROM MYSQL_PERF_DATA <br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE SERVER_NAME = :ARR_SERVER_NAME AND &#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 由于Oracle的页面并不多, 因此一开始没有很在意这个功能, 以至于让同事痛苦了较长时间. 有意思的需求源于生活, 源于解决别人的困难. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/26 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess2.html" title="逻辑连接层与物理连接层(2)">逻辑连接层与物理连接层(2)</a> (1)</li><li>2010/01/05 -- <a href="http://www.anysql.net/tools/webchart-forall-loop.html" title="DataReport中的FORALL循环">DataReport中的FORALL循环</a> (0)</li><li>2011/03/27 -- <a href="http://www.anysql.net/developer/first-mysql-c-program.html" title="编译Windows下的第一个MySQL程序">编译Windows下的第一个MySQL程序</a> (1)</li><li>2010/12/18 -- <a href="http://www.anysql.net/tools/datareport-table-formater.html" title="控制DataReport的表格格式">控制DataReport的表格格式</a> (5)</li><li>2010/08/23 -- <a href="http://www.anysql.net/tools/datareport-pagesize.html" title="DataReport的多栏显示">DataReport的多栏显示</a> (2)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=pvyAH52m4ng:g4icrHZkZRk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pvyAH52m4ng:g4icrHZkZRk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pvyAH52m4ng:g4icrHZkZRk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=pvyAH52m4ng:g4icrHZkZRk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pvyAH52m4ng:g4icrHZkZRk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=pvyAH52m4ng:g4icrHZkZRk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/pvyAH52m4ng" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/webchart-array-setting.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/webchart-array-setting.html</feedburner:origLink></item>
		<item>
		<title>顶住光棍节的业务压力</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/rA9LZg3Ex-Y/taobao-tmall-20101111.html</link>
		<comments>http://www.anysql.net/dba/taobao-tmall-20101111.html#comments</comments>
		<pubDate>Tue, 16 Nov 2010 15:19:57 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=776</guid>
		<description><![CDATA[&#160; &#160; 下半年总会担心下一年系统能不能承受住业务的压力, 去费力地思索需要采取些什么样的措施，2008年时在担心2009年，2009年时在担心2010年，这活正规的名字叫容量规划，到2010年时实在不能确定2011年要做些什么，正在这么犹豫之中时，淘宝商城搞了个双十一的活动，疯狂的一天。 &#160; &#160; 淘宝商城单日交易额9.36亿, 每秒超过2万元交易; 2家店铺超2千万; 11家店铺超千万; 20家店铺过500万; 总共181家店铺过百万. 这是淘宝公布的业务量, 反应到支付宝上则是, 创建了1600万笔交易, 实际成交笔数破了1200万笔, 业务压力一下跳到了平时的两倍, 与上半年公布的数据相比, 光棍节那天的交易是上半年的3倍. &#160; &#160; 在数据库上, 就算提前一周准确预计到量, 也做不了什么事情. 11号早上来到公司后, 面对别人对数据库容量的关心, 我只能拍拍胸脯表示自信, 告诉他们, 现在能做的只有盲目的自信了, 然后安排DBA分别全天监控不同的数据库, 开始一些不安的等待. &#160; &#160; 随着交易量的攀升, 各个数据库的性能指标都在不停地上升, 交易数据库虽然做了拆分, 从一台数据库物理拆分成三台, 到晚上最高峰时, 负载指标回到了拆分前的水平, 还好是顶过去了, 从一些性能指标上看, 到这个业务量时应当是进入了不稳定的边界, 真是又高兴又害怕. &#160; &#160; 当漫长的一天快过去, 到晚上11点多时, 确定系统可以支撑过去后, 才彻底地松了口气, 同时感到异常的高兴, 终于可以证明平时的工作没有白费, 在11.11号充分证明了自己的价值, 所有的DBA相视而笑, 然后去找开发人员互相庆祝. &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 下半年总会担心下一年系统能不能承受住业务的压力, 去费力地思索需要采取些什么样的措施，2008年时在担心2009年，2009年时在担心2010年，这活正规的名字叫容量规划，到2010年时实在不能确定2011年要做些什么，正在这么犹豫之中时，<a href="http://www.tmall.com">淘宝商城</a>搞了个双十一的活动，疯狂的一天。</p>
<p>&nbsp; &nbsp; 淘宝商城单日交易额9.36亿, 每秒超过2万元交易; 2家店铺超2千万; 11家店铺超千万; 20家店铺过500万; 总共181家店铺过百万. 这是淘宝公布的业务量, 反应到支付宝上则是, 创建了1600万笔交易, 实际成交笔数破了1200万笔, 业务压力一下跳到了平时的两倍, 与上半年公布的数据相比, 光棍节那天的交易是上半年的3倍. </p>
<p>&nbsp; &nbsp; 在数据库上, 就算提前一周准确预计到量, 也做不了什么事情. 11号早上来到公司后, 面对别人对数据库容量的关心, 我只能拍拍胸脯表示自信, 告诉他们, 现在能做的只有盲目的自信了, 然后安排DBA分别全天监控不同的数据库, 开始一些不安的等待. </p>
<p>&nbsp; &nbsp; 随着交易量的攀升, 各个数据库的性能指标都在不停地上升, 交易数据库虽然做了拆分, 从一台数据库物理拆分成三台, 到晚上最高峰时, 负载指标回到了拆分前的水平, 还好是顶过去了, 从一些性能指标上看, 到这个业务量时应当是进入了不稳定的边界, 真是又高兴又害怕. </p>
<p>&nbsp; &nbsp; 当漫长的一天快过去, 到晚上11点多时, 确定系统可以支撑过去后, 才彻底地松了口气, 同时感到异常的高兴, 终于可以证明平时的工作没有白费, 在11.11号充分证明了自己的价值, 所有的DBA相视而笑, 然后去找开发人员互相庆祝. </p>
<p>&nbsp; &nbsp; 还好当天DB运行的数据, 及业务量的数据, 都做了详尽的收集, 这几天分析下来后, 基本上已确定明年要做的事情了, <strong>面对2011年感觉既光明又有挑战, 喜欢这样的感觉</strong>. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/09/11 -- <a href="http://www.anysql.net/dba/where-is-dba-future.html" title="DBA有什么个人前途?">DBA有什么个人前途?</a> (18)</li><li>2009/08/25 -- <a href="http://www.anysql.net/dba/dba-experience-growth.html" title="关于技术积累的几点想法">关于技术积累的几点想法</a> (6)</li><li>2009/08/17 -- <a href="http://www.anysql.net/life/create-dba-extra-values.html" title="努力创造DBA额外价值">努力创造DBA额外价值</a> (27)</li><li>2009/08/12 -- <a href="http://www.anysql.net/life/with-value-based-life.html" title="个人价值决定个人回报">个人价值决定个人回报</a> (13)</li><li>2009/08/04 -- <a href="http://www.anysql.net/dba/dba-most-important-things.html" title="DBA最缺的不是技术">DBA最缺的不是技术</a> (9)</li><li>2009/08/02 -- <a href="http://www.anysql.net/life/harder-work-than-dba.html" title="当群众演员比干DBA还累">当群众演员比干DBA还累</a> (9)</li><li>2009/06/25 -- <a href="http://www.anysql.net/tools/oramon-system-event.html" title="oramon如何收集V$SYSTEM_EVENT数据?">oramon如何收集V$SYSTEM_EVENT数据?</a> (3)</li><li>2009/06/25 -- <a href="http://www.anysql.net/tools/oramon-session-history.html" title="oramon如何从V$SESSION收集性能数据?">oramon如何从V$SESSION收集性能数据?</a> (0)</li><li>2009/06/24 -- <a href="http://www.anysql.net/oracle/oramon-system-statistics.html" title="oramon如何从V$SYSSTAT收集性能数据?">oramon如何从V$SYSSTAT收集性能数据?</a> (1)</li><li>2009/05/26 -- <a href="http://www.anysql.net/dba/hard-choose-mysql-or-oracle.html" title="MySQL或Oracle, 是个问题?">MySQL或Oracle, 是个问题?</a> (7)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=rA9LZg3Ex-Y:BcZIMZyWby4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=rA9LZg3Ex-Y:BcZIMZyWby4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=rA9LZg3Ex-Y:BcZIMZyWby4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=rA9LZg3Ex-Y:BcZIMZyWby4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=rA9LZg3Ex-Y:BcZIMZyWby4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=rA9LZg3Ex-Y:BcZIMZyWby4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/rA9LZg3Ex-Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/dba/taobao-tmall-20101111.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.anysql.net/dba/taobao-tmall-20101111.html</feedburner:origLink></item>
		<item>
		<title>学习与成长的困惑</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/bwUu4HJLWIE/work-study-growth-1.html</link>
		<comments>http://www.anysql.net/life/work-study-growth-1.html#comments</comments>
		<pubDate>Sun, 29 Aug 2010 00:14:25 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=775</guid>
		<description><![CDATA[&#160; &#160; 参加工作的人, 都会对学习与成长有一定的困惑, 在某个特定的时期还可能困于其中, 这些都是正常的. 昨天和一个工作一年的DBA同事去聊天, 刚好他有这个疑问, 于时就和他说了一下我的感觉. &#160; &#160; 成长中最大的困惑来自于取舍不定, 8月25日技术部的半年会和8月26日公司的半年会中, 我看着年轻人在舞台上表演, 非常地有才, 心里很有冲动, 要去学一学, 找他们比一比. 不过等节目过后没有多久, 我突然明白过来, 本质上我是想和他们比年轻, 而这个是比不过的, 比他们大了一轮, 是铁定的事实, 所以我没有为此感到烦恼, 在心中将这个目标轻轻地放下了. 看见有的DBA很历害, 做得非常好, 就要去学习, 会因为一年内没有跟上而伤神; 看见有的SA对底层很了解, 就要去学习, 会因为一年内没有跟上而忧郁. 世间美好的事或者人实在太多了, 更何况要在一年就与他们端平呢? 拿我自已来讲, 在工作了十年后, 才对Oracle有些感觉, 也只是不管遇到什么问题, 都可以找到思路的感觉, 但他只工作了一年, 就要得到这么多, 非得和其他比, 精神可嘉, 陷于其中就不好了. &#160; &#160; 昨天我故意选择了在爬山时去讨论这个问题, 从西湖边上的老和山出发, 一开始没有定目标. 在刚上山时, 大一轮的我直喘气, 而他却闲庭信步一样. 到北高峰时, 我注意到他也开始有些喘气了, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 参加工作的人, 都会对学习与成长有一定的困惑, 在某个特定的时期还可能困于其中, 这些都是正常的. 昨天和一个工作一年的DBA同事去聊天, 刚好他有这个疑问, 于时就和他说了一下我的感觉. </p>
<p>&nbsp; &nbsp; 成长中最大的困惑来自于取舍不定, 8月25日技术部的半年会和8月26日公司的半年会中, 我看着年轻人在舞台上表演, 非常地有才, 心里很有冲动, 要去学一学, 找他们比一比. 不过等节目过后没有多久, 我突然明白过来, 本质上我是想和他们比年轻, 而这个是比不过的, 比他们大了一轮, 是铁定的事实, 所以我没有为此感到烦恼, 在心中将这个目标轻轻地放下了. 看见有的DBA很历害, 做得非常好, 就要去学习, 会因为一年内没有跟上而伤神; 看见有的SA对底层很了解, 就要去学习, 会因为一年内没有跟上而忧郁. 世间美好的事或者人实在太多了, 更何况要在一年就与他们端平呢? 拿我自已来讲, 在工作了十年后, 才对Oracle有些感觉, 也只是不管遇到什么问题, 都可以找到思路的感觉, 但他只工作了一年, 就要得到这么多, 非得和其他比, 精神可嘉, 陷于其中就不好了. </p>
<p>&nbsp; &nbsp; 昨天我故意选择了在爬山时去讨论这个问题, 从西湖边上的老和山出发, 一开始没有定目标. 在刚上山时, 大一轮的我直喘气, 而他却闲庭信步一样. 到北高峰时, 我注意到他也开始有些喘气了, 我选择了继续走. 大部份人只走到北高峰, 很少人再向前走的, 从山上向下看, 向杭州城的西看, 很美, 除了空气不够通透. 在那一段路上, 同事感觉是走得比较累的, 走过了最困难的一段下坡后, 我让他回头看看, 并问他从老和山要来到这里, 有什么好方法？ 从山上过来, 只有一步一个脚印地过来, 好象没有其他方法, 我们也就两个小时多一点, 就到了这里, 一步一个脚印好象也不慢啊, 而且一路上的感觉很好. 在学习与工作上又何曾不是如此呢？在爬山时一步一步走, 我们领略了很多风景, 但学习上你正在一步一步走时, 却产生了很多疑惑.</p>
<p>&nbsp; &nbsp; 看书是学习的重要手段, 但工作后经常觉得没有时间看书, 或者是看书能起的作用越来越少. 对于前一点, 我们知道在学校时, 经常是考试前几天突击的, 这样也能过了考试, 但工作中这种方式看书对工作是没有什么帮助的, 现在来讲考试中的题目是比较固定的, 而工作中遇到的问题是不固定的, 因此看书应当象上面那样一步一步地看, 但要不停地去看去慢慢理解. 其实我问同事, 你一本书看多少次? 他告诉我只看了一篇, 如果说看一篇就想全部用出书中的, 那每个人读完高中读完大学后就已经足够他用一生了, 工作中就不要再看书了. 其实第一次看时, 实在搞不明白的就先跳过去吧, 象恋爱, 没有人能肯定第一次失败后, 第二次一定能成功, 也就是光学习一次是不够的. 才看了一两次书, 就为无所得而烦恼, 实在不需要. </p>
<p>&nbsp; &nbsp; 年轻人的事情, 应当多找找年轻人去聊聊, 在一个公司大家既是朋友也是战友, 既然是战友, 肯定要谈战, 因此在外面活动时谈谈工作也很正常, 而且一定要谈, 同战友一起谈大家一起进步. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/11/17 -- <a href="http://www.anysql.net/tools/webchart-array-setting.html" title="满足同事的一个报表需求">满足同事的一个报表需求</a> (2)</li><li>2010/11/16 -- <a href="http://www.anysql.net/dba/taobao-tmall-20101111.html" title="顶住光棍节的业务压力">顶住光棍节的业务压力</a> (10)</li><li>2010/04/05 -- <a href="http://www.anysql.net/life/dtcc-2010-dcba-topic.html" title="2010数据库技术大会 及 我的主题">2010数据库技术大会 及 我的主题</a> (2)</li><li>2010/01/28 -- <a href="http://www.anysql.net/life/history-problems.html" title="谈谈历史遗留问题">谈谈历史遗留问题</a> (2)</li><li>2010/01/04 -- <a href="http://www.anysql.net/life/my-first-book-content.html" title="最近在整理的几篇文档">最近在整理的几篇文档</a> (2)</li><li>2009/09/11 -- <a href="http://www.anysql.net/dba/where-is-dba-future.html" title="DBA有什么个人前途?">DBA有什么个人前途?</a> (18)</li><li>2009/09/08 -- <a href="http://www.anysql.net/life/why-we-buy-apartment.html" title="因丈母娘的需求而买房?">因丈母娘的需求而买房?</a> (5)</li><li>2009/09/03 -- <a href="http://www.anysql.net/life/build-online-trade-credit.html" title="收费有助于网购信用">收费有助于网购信用</a> (1)</li><li>2009/08/25 -- <a href="http://www.anysql.net/dba/dba-experience-growth.html" title="关于技术积累的几点想法">关于技术积累的几点想法</a> (6)</li><li>2009/08/17 -- <a href="http://www.anysql.net/life/create-dba-extra-values.html" title="努力创造DBA额外价值">努力创造DBA额外价值</a> (27)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=bwUu4HJLWIE:453li40RXEU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=bwUu4HJLWIE:453li40RXEU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=bwUu4HJLWIE:453li40RXEU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=bwUu4HJLWIE:453li40RXEU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=bwUu4HJLWIE:453li40RXEU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=bwUu4HJLWIE:453li40RXEU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/bwUu4HJLWIE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/life/work-study-growth-1.html/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		<feedburner:origLink>http://www.anysql.net/life/work-study-growth-1.html</feedburner:origLink></item>
		<item>
		<title>DataReport的多栏显示</title>
		<link>http://feedproxy.google.com/~r/AnySQL/~3/TPto5aKq10U/datareport-pagesize.html</link>
		<comments>http://www.anysql.net/tools/datareport-pagesize.html#comments</comments>
		<pubDate>Mon, 23 Aug 2010 15:10:32 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=772</guid>
		<description><![CDATA[&#160; &#160; 当显示一些窄表数据时, 我们希望能在页面上分几列显示, 比如使用横向排的两个表格显示EMP表中全部14个员工的编号和名字, 以减少页面滚动, 在可视的一页中呈现尽可能多的数据. EMPNO ENAME 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK EMPNO ENAME 7788 SCOTT 7839 KING 7844 TURNER 7876 ADAMS 7900 JAMES 7902 FORD 7934 MILLER &#160; &#160; 在DataReport只需要设定数据的页面数, 在上面的例子中是2页, 就可以达到分栏显示的目标了. WEBCHART.QUERY_2=SELECT EMPNO,ENAME FROM EMP WEBCHART.PAGES_2=2 &#160; &#160; 和分组展示功能无缝集成, 如下页所示： DEPTNO ENAME [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 当显示一些窄表数据时, 我们希望能在页面上分几列显示, 比如使用横向排的两个表格显示EMP表中全部14个员工的编号和名字, 以减少页面滚动, 在可视的一页中呈现尽可能多的数据. </p>
<blockquote class="prefont">
<table border="0" width="500" cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th width="40%">EMPNO</th>
<th width="60%">ENAME</th>
</tr>
<tr>
<td align="right">7369</td>
<td bgcolor="#eeeeee" align="center">SMITH</td>
</tr>
<tr>
<td align="right">7499</td>
<td align="center">ALLEN</td>
</tr>
<tr>
<td align="right">7521</td>
<td bgcolor="#eeeeee" align="center">WARD</td>
</tr>
<tr>
<td align="right">7566</td>
<td align="center">JONES</td>
</tr>
<tr>
<td align="right">7654</td>
<td bgcolor="#eeeeee" align="center">MARTIN</td>
</tr>
<tr>
<td align="right">7698</td>
<td align="center">BLAKE</td>
</tr>
<tr>
<td align="right">7782</td>
<td bgcolor="#eeeeee" align="center">CLARK</td>
</tr>
</table>
</td>
<td valign="top">
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th width="40%">EMPNO</th>
<th width="60%">ENAME</th>
</tr>
<tr>
<td align="right">7788</td>
<td align="center">SCOTT</td>
</tr>
<tr>
<td align="right">7839</td>
<td bgcolor="#eeeeee" align="center">KING</td>
</tr>
<tr>
<td align="right">7844</td>
<td align="center">TURNER</td>
</tr>
<tr>
<td align="right">7876</td>
<td bgcolor="#eeeeee" align="center">ADAMS</td>
</tr>
<tr>
<td align="right">7900</td>
<td align="center">JAMES</td>
</tr>
<tr>
<td align="right">7902</td>
<td bgcolor="#eeeeee" align="center">FORD</td>
</tr>
<tr>
<td align="right">7934</td>
<td align="center">MILLER</td>
</tr>
</table>
</td>
</tr>
</table>
</blockquote>
<p>&nbsp; &nbsp; 在DataReport只需要设定数据的页面数, 在上面的例子中是2页, 就可以达到分栏显示的目标了. </p>
<blockquote class="prefont"><p>
WEBCHART.QUERY_2=SELECT EMPNO,ENAME FROM EMP<br />
WEBCHART.PAGES_2=2
</p></blockquote>
<p>&nbsp; &nbsp; 和分组展示功能无缝集成, 如下页所示：</p>
<blockquote class="prefont">
<table border="0" width="500" cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th width="40%">DEPTNO</th>
<th width="60%">ENAME</th>
</tr>
<tr>
<td rowspan="3" align="right">10</td>
<td bgcolor="#eeeeee" align="center">CLARK</td>
</tr>
<tr>
<td align="center">KING</td>
</tr>
<tr>
<td bgcolor="#eeeeee" align="center">MILLER</td>
</tr>
<tr>
<td rowspan="5" align="right">20</td>
<td align="center">JONES</td>
</tr>
<tr>
<td bgcolor="#eeeeee" align="center">FORD</td>
</tr>
<tr>
<td align="center">ADAMS</td>
</tr>
<tr>
<td bgcolor="#eeeeee" align="center">SMITH</td>
</tr>
</table>
</td>
<td valign="top">
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th width="40%">DEPTNO</th>
<th width="60%">ENAME</th>
</tr>
<tr>
<td align="right">20</td>
<td align="center">SCOTT</td>
</tr>
<tr>
<td rowspan="6" align="right">30</td>
<td bgcolor="#eeeeee" align="center">WARD</td>
</tr>
<tr>
<td align="center">TURNER</td>
</tr>
<tr>
<td bgcolor="#eeeeee" align="center">ALLEN</td>
</tr>
<tr>
<td align="center">JAMES</td>
</tr>
<tr>
<td bgcolor="#eeeeee" align="center">BLAKE</td>
</tr>
<tr>
<td align="center">MARTIN</td>
</tr>
</table>
</td>
</tr>
</table>
</blockquote>
<p>&nbsp; &nbsp; 当我们在一个页面中显示大量服务器的主要负载数据时, 分栏显示的效果就会很好. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/12/18 -- <a href="http://www.anysql.net/tools/datareport-table-formater.html" title="控制DataReport的表格格式">控制DataReport的表格格式</a> (5)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-super-expression.html" title="DataReport中的超级表达式">DataReport中的超级表达式</a> (2)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-merge-dup-values.html" title="DataReport的重复值合并">DataReport的重复值合并</a> (0)</li><li>2010/01/05 -- <a href="http://www.anysql.net/tools/webchart-forall-loop.html" title="DataReport中的FORALL循环">DataReport中的FORALL循环</a> (0)</li><li>2009/12/29 -- <a href="http://www.anysql.net/tools/webchart-page-cache.html" title="DataReport中的Cache为王">DataReport中的Cache为王</a> (4)</li><li>2009/12/28 -- <a href="http://www.anysql.net/tools/webchart-one-java-servlet.html" title="统一DataReport的Servlet">统一DataReport的Servlet</a> (2)</li></ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AnySQL?a=TPto5aKq10U:JQuEY-sul34:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=TPto5aKq10U:JQuEY-sul34:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=TPto5aKq10U:JQuEY-sul34:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/AnySQL?i=TPto5aKq10U:JQuEY-sul34:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=TPto5aKq10U:JQuEY-sul34:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AnySQL?a=TPto5aKq10U:JQuEY-sul34:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AnySQL?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AnySQL/~4/TPto5aKq10U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/tools/datareport-pagesize.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anysql.net/tools/datareport-pagesize.html</feedburner:origLink></item>
	</channel>
</rss>

