<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"> 
<channel>
  <title>DBA Tools</title>
  <link>http://www.dbatools.net/</link>
  <description>Writing professional DBA tools and scripts for better DBA life</description>
  <dc:language>en-us</dc:language>
  <dc:creator>anysql@live.com</dc:creator>
  <dc:rights>Copyright 2010</dc:rights>
  <dc:date>2010-01-27T18:14:39+08:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=4.25" />
  <admin:errorReportsTo rdf:resource="mailto:anysql@live.com" />
  <sy:updatePeriod>hourly</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dbatools" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="dbatools" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
  <title>The logical database layer and physical database layer</title>
  <link>http://www.dbatools.net/experience/logical-database-access-layer.html</link>
  <description><![CDATA[&nbsp; &nbsp; Usually our application are bound to one physical database, for example, we always read our data from specific Oracle database or MySQL database, or write business data to specific Oracle database or MySQL database. The physical database is...]]></description>
  <guid isPermaLink="false">2382@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Usually our application are bound to one physical database, for example, we always read our data from specific Oracle database or MySQL database, or write business data to specific Oracle database or MySQL database. The physical database is not transparent to the application, many application developers know which physical database the data stores. But that's not so good, we'd better introduce a logical database layer between application and the pnysical database. </p>

<p>&nbsp; &nbsp; We create some logical database name, and in the application code, we just use the logical database name, then we can intoduce a relation map between the logical database name and physical database, while the appliction doesn't care about the physical database location. </p>

<blockquote class="prefont">
LOGICAL.logical database name=relation type|data source list
</blockquote>

<p>&nbsp; &nbsp; In the WebChart utility, I intorudced 5 types of logical relation between the application and physical database, we may call it logical relation. The first type is equal (FIRST), always choose the first data source. </p>

<blockquote class="prefont">
LOGICAL.WRITEDB=FIRST|masterdb
</blockquote>

<p>&nbsp; &nbsp; The second type is random (RANDOM), choose one data source from the data source list randomly. </p>

<blockquote class="prefont">
LOGICAL.SLAVEDB=RANDOM|slavedb1, slavedb2, slavedb3
</blockquote>

<p>&nbsp; &nbsp; The third type is sequential (FAILOVER), if the first is unavailable (markdown), then get the next data source. We want our application read data from slave first, if no slave available then read data from master database. </p>

<blockquote class="prefont">
LOGICAL.READDB=FAILOVER|slavedb, writedb
</blockquote>

<p>&nbsp; &nbsp; The forth type is get data source by position value, the application will get the data source by a specific hash value, and we get the data source by mod it with available data source count. If we provide a hash value 5, then we will get the get the slavedfb3 connection (5%3=2). </p>

<blockquote class="prefont">
LOGICAL.SLAVEDB=POSITION|slavedb1, slavedb2, slavedb3
</blockquote>

<p>&nbsp; &nbsp; The last type is get data source by a range value, the application will get the data source by a value range. If we provide a range value 150, we will get slavedb2 connection.</p>

<blockquote class="prefont">
LOGICAL.SLAVEDB=RANGE|slavedb1, slavedb2, slavedb3<br />
LOGICAL.SLAVEDB.VALUES=100,200,300
</blockquote>

<p>&nbsp; &nbsp; I found it may be valuable to make the application transparent to the physical databases. How do you think about it?</p> 
</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/webchart-mysql-examples.html">WebChart Sample Pages on MySQL Database</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-multi-lines-value.html">Specify multiple lines value in WebChart defination</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-custom-colors.html">Customize all the chart colors of WebChart utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-expression.html">Improved crosstab feature and formula columns in WebChart</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-installation.html">WebChart Installation on Windows or Linux/Unix?</a> (1)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/logical-database-access-layer.html#comments" title="Comment on: The logical database layer and physical database layer">Leave New Comment</a></b>(Current: 1)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/logical-database-access-layer.html">http://www.dbatools.net/experience/logical-database-access-layer.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=-INDe__KonA:Vu6E6Y6HPwg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-INDe__KonA:Vu6E6Y6HPwg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-INDe__KonA:Vu6E6Y6HPwg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-INDe__KonA:Vu6E6Y6HPwg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=-INDe__KonA:Vu6E6Y6HPwg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-INDe__KonA:Vu6E6Y6HPwg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2010-01-27T18:14:39+08:00</dc:date>
  <pubDate>Wed, 27 Jan 2010 18:14:39 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Java</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">JDBC</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">MySQL</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">WebChart</category>
  
  </item>
  
  <item>
  <title>Fixed AUL license is available now for you</title>
  <link>http://www.dbatools.net/mydul/fixed-aul-license-is-available.html</link>
  <description><![CDATA[&nbsp; &nbsp; It has been 5 years since I released the first version of AUL utility, and I have helped lots of customers to get their data back from corrupted database, such as lost system tablespace, table dropped or truncated....]]></description>
  <guid isPermaLink="false">2381@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; It has been 5 years since I released the first version of AUL utility, and I have helped lots of customers to get their data back from corrupted database, such as lost system tablespace, table dropped or truncated. But every time AUL started, you were required to input a new license code, which I called it "dynamic license model", it becomes obsolete now. </p>

<blockquote>
<img src="http://www.dbatools.net/images/aul_world_map.png" border="0" />
</blockquote>

<p>&nbsp; &nbsp; On windows platform, AUL will not change the register code unless you restall the windows, or move it to another host. So you can buy one real AUL license to recover your data at any time, for any Oracle databased. The fixed license model is comming for you. </p>

<p>&nbsp; &nbsp; For example, every time I start the AUL utility, it will generate the same register code. </p>

<blockquote class="prefont">
Register Code: <strong>DETO-NODT-JETT-DNMX-DDCN</strong><br />
AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g/11g, release 5.1.1<br />
<br />
(C) Copyright Lou Fangxin 2005-2010 (AnySQL.net), all rights reserved.<br />
<br />
AUL&gt;
</blockquote>

<p>&nbsp; &nbsp; AUL does not bind it to a physical host, it may change the register code after you reinstall or upgrade the windows version, or replace the disks etc. The newer fixed license mode will give more benifit to AUL customers. </p>

<p>&nbsp; &nbsp; After all, now you can get a real AUL license, not just a service. </p>



</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mydul/aul-payment.html">The payment of AUL Oracle data recovery service.</a> (4)</div>
        
            <div><a href="http://www.dbatools.net/mydul/aul-license.html">The steps of register and apply AUL(MyDUL) license</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mydul/aul-customer-wold-map.html">Save the customer's data, resue the world.</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mydul/aul-better-than-dul.html">AUL/MyDUL vs. Oracle DUL, which is better?</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mydul/aul-indexes.html">Recover the table's index structure information.</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mydul/fixed-aul-license-is-available.html#comments" title="Comment on: Fixed AUL license is available now for you">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/mydul/fixed-aul-license-is-available.html">http://www.dbatools.net/mydul/fixed-aul-license-is-available.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=X_laKfmrp2U:GVkTg8WpIus:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=X_laKfmrp2U:GVkTg8WpIus:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=X_laKfmrp2U:GVkTg8WpIus:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=X_laKfmrp2U:GVkTg8WpIus:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=X_laKfmrp2U:GVkTg8WpIus:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=X_laKfmrp2U:GVkTg8WpIus:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyDUL</dc:subject>
  <dc:date>2010-01-27T13:21:55+08:00</dc:date>
  <pubDate>Wed, 27 Jan 2010 13:21:55 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">AUL</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">License</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">MyDUL</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Recovery</category>
  
  </item>
  
  <item>
  <title>Migrate data from Oracle to MySQL with SQLULDR2</title>
  <link>http://www.dbatools.net/mytools/sqluldr2-oracle-migrate-data-to-mysql.html</link>
  <description><![CDATA[&nbsp; &nbsp; More and more people are moving non-important data out of Oracle to MySQL for lower Oracle license fee. For DBAs, we need to know how to migrate data from Oracle to MySQL quickly. I will introduce you how...]]></description>
  <guid isPermaLink="false">2377@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; More and more people are moving non-important data out of Oracle to MySQL for lower Oracle license fee. For DBAs, we need to know how to migrate data from Oracle to MySQL quickly. I will introduce you how to migrate data with free SQLULDR2 utility. </p>

<p>&nbsp; &nbsp; We can export Oracle data to text file, then load it with MySQL "LOAD DATA" command, SQLULDR2 can escape the special character in the column value for MySQL data load. Just run the following SQLULDR2 comman.</p>

<blockquote class="prefont">
sqluldr2 ... <strong>escape=0x5c quote=0x22 null=0x5cN field=0x2c record=0x0a</strong>
</blockquote>

<p>&nbsp; &nbsp; Then you can load the data in MySQL with following SQL command.</p>

<blockquote class="prefont">
LOAD DATA LOCAL INFILE '...'&nbsp; INTO TABLE ...<br />
&nbsp;  <strong>FIELDS TERMINATED BY ','&nbsp; OPTIONALLY ENCLOSED BY '\"' </strong><br />
&nbsp;  <strong>ESCAPED BY '\\' LINES TERMINATED BY '\n'</strong>;
</blockquote>

<p>&nbsp; &nbsp; We can also export Oracle data to insert SQLs files, and then run it in MySQL. SQLULDR2 can escape the special character in the column value for MySQL SQL syntax. Just run the following SQLULDR2 comman.</p>

<blockquote class="prefont">
sqluldr2 ... <strong>escape=0x5c quote=0x27 null=null field=0x2c format=mysql table=table_name</strong>
</blockquote>

<p>&nbsp; &nbsp; Then you can run insert SQLs in MySQL as following.</p>

<blockquote class="prefont">
mysql&gt source insert_sql_files<br />
$ sqluldr2 ... | mysql database_name
</blockquote>

<p>&nbsp; &nbsp; We are planing to migrate one billion rows from Oracle to MySQL with SQLULDR2. If you have data migration jobs to do, try SQLULDR2, it will save you!</p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-license.html">License required for full SQLULDR2 (Oracle Text Unload) version.</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-password-protection.html">Protect the database connection information in SQLULDR2</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-bug-ora-24345.html">SQLULDR2 Bug: ORA-24345 error possible</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html">How to change SQLULDR2 session level's parameters?</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-free-of-charge.html">SQLULDR2, upgrade of ociuldr, free of charge now.</a> (20)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/sqluldr2-oracle-migrate-data-to-mysql.html#comments" title="Comment on: Migrate data from Oracle to MySQL with SQLULDR2">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/sqluldr2-oracle-migrate-data-to-mysql.html">http://www.dbatools.net/mytools/sqluldr2-oracle-migrate-data-to-mysql.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=RnHbORA-P2I:ILYO8u5tBrk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=RnHbORA-P2I:ILYO8u5tBrk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=RnHbORA-P2I:ILYO8u5tBrk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=RnHbORA-P2I:ILYO8u5tBrk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=RnHbORA-P2I:ILYO8u5tBrk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=RnHbORA-P2I:ILYO8u5tBrk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-10-29T23:55:43+08:00</dc:date>
  <pubDate>Thu, 29 Oct 2009 23:55:43 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Export</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Migration</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">MySQL</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">sqlldr</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Text</category>
  
  </item>
  
  <item>
  <title>Protect the database connection information in SQLULDR2</title>
  <link>http://www.dbatools.net/mytools/sqluldr2-password-protection.html</link>
  <description><![CDATA[&nbsp; &nbsp; Some departments need to extract rows from the production daily for busines analyze, so we decide to open the standby in read only mode for data extracting with database link. The database link can protect the database user...]]></description>
  <guid isPermaLink="false">1102@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Some departments need to extract rows from the production daily for busines analyze, so we decide to open the standby in read only mode for data extracting with database link. The database link can protect the database user password information well. But now they change the data analyze platform, database link does not work anymore, they need to extract the rows into flat files for further processing with greenpalm. </p>

<p>&nbsp; &nbsp; SQLULDR2 is a good tool for extracting rows to flat files for Oracle database. But the security team ask DBAs to well protect the database user password, which required DBAs can only give them encrypted password string. So I add the connection inforamtion encryption feature to SQLULDR2. </p>

<p>&nbsp; &nbsp; By default, SQLULDR2 does not think that the connection information is encrypted, we just put the connection information into the parameter file. </p>

<blockquote class="prefont">
user=scott/tiger@//localhost:1521/db10g<br />
query=select * from emp
</blockquote>

<p>&nbsp; &nbsp; But now we need to protect the connection information by encrypt them in SQLULDR2 with the crypt command line option. </p>

<blockquote class="prefont">
D:\&gt;sqluldr2 user=scott/tiger@//localhost:1521/db10g crypt=create<br />
4899919fa603950b53e639d80245beae8b5d8bb7437bf79e92a473d60377e269<br />
499ee76090faa97f7f043eeae19ffa5445ac5e9d89921dce7f043eeae19ffa54
</blockquote>

<p>&nbsp; &nbsp; Then we put the encrypted connection information into the parameter file, and set the crypt option to "ON". </p>

<blockquote class="prefont">
crypt=on<br />
user=concat the two encrypted lines here<br />
query=select * from emp
</blockquote>

<p>&nbsp; &nbsp; Then we just call SQLULDR2 with this parameter file. </p>

<blockquote class="prefont">
SQLULDR2 parfile=testpar.txt
</blockquote>

<p>&nbsp; &nbsp; You will see that the rows are correctly extracted without providing the real database user name and password, and even the database host information, which maximumly improve the security. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html">How to change SQLULDR2 session level's parameters?</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-compress.html">SQLULDR2 can compress the output file in GZIP format</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/ociuldr-buffer-option.html">New command line option for text export utility -- BUFFER</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/unload-oracle-raw-data.html">The LONG RAW data type support of text unload (export) utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/unload-oracle-with-ociuldr.html">How to unload or export rows as text file, excel CSV file, or excel xls file?</a> (20)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/sqluldr2-password-protection.html#comments" title="Comment on: Protect the database connection information in SQLULDR2">Leave New Comment</a></b>(Current: 1)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/sqluldr2-password-protection.html">http://www.dbatools.net/mytools/sqluldr2-password-protection.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=j97ZWW4ds5Y:-FtUflOHMAs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=j97ZWW4ds5Y:-FtUflOHMAs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=j97ZWW4ds5Y:-FtUflOHMAs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=j97ZWW4ds5Y:-FtUflOHMAs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=j97ZWW4ds5Y:-FtUflOHMAs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=j97ZWW4ds5Y:-FtUflOHMAs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-11T20:58:42+08:00</dc:date>
  <pubDate>Thu, 11 Jun 2009 20:58:42 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Encrypt</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Export</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Oracle</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">sqlldr</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Text</category>
  
  </item>
  
  <item>
  <title>Copy data between different databases with copydata script</title>
  <link>http://www.dbatools.net/mytools/perl-copy-data-scripts.html</link>
  <description><![CDATA[&nbsp; &nbsp; We start to introduce MySQL and PostgreSQL into our business system, as a replacement of Oracle, to save the license cost. First we need to move some data from Oracle to MySQL or PostgreSQL for performance testing or...]]></description>
  <guid isPermaLink="false">1100@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; We start to introduce MySQL and PostgreSQL into our business system, as a replacement of Oracle, to save the license cost. First we need to move some data from Oracle to MySQL or PostgreSQL for performance testing or business testing. It's not easy work for a Linux &amp; UNIX DBAs to support different types of database systems. </p>

<p>&nbsp; &nbsp; Perl is very powerful script language for DBAs. I wrote the <a href="http://www.dbatools.net/mytools/migrate-data-with-asyncdata.html">asyncdata</a> script with Perl, it support different types of databases well, but asyncdata is not good for one time data copy, so we still need a script to copy static data from one database to another database, so I write a new script (copydata.pl) according the source code of asyncdata. </p>

<p>&nbsp; &nbsp; The table structure of the source table and target table should be the same, the column name must be exactly matched, however the target table can have more columns than source table. But the table name can be different, just put the source table name and target table name into a configuration file. </p>

<blockquote class="prefont">
SOURCE_TABLE1 # TARGET_TABLE1 <br />
SOURCE_TABLE2 # TARGET_TABLE3 <br />
......
</blockquote>

<p>&nbsp; &nbsp; And them run the copydata script to copy the data, as following. </p>

<blockquote class="prefont">
$ copydata.pl -s test#test#Oracle:test1 -t test#test#Oracle:test2 -c test.cfg<br />
08/10 19:51:19 - Replication started, 2 tables in configuration file.<br />
......
</blockquote>

<p>&nbsp; &nbsp; Of cause, you need to insetall <a href="http://www.dbatools.net/tag/Perl">Perl</a> and <a href="http://www.dbatools.net/tag/Perl">Perl DBI</a> before you start to use it.  Perl is my primary script language for database management tools now.</p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/mysql-trigger-for-asyncdata.html">Implement materialized view log on MySQL for asyncdata</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/experience/perl-dbi-conn-string.html">How Perl or asyncdata connect to different databases</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/oracle-trigger-for-asyncdata.html">Using trigger for asyncdata log table in Oracle database</a> (2)</div>
        
            <div><a href="http://www.dbatools.net/mytools/asyncdata-perf-tuning.html">Tuning the performance of data replication with asyncdata</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/migrate-data-with-asyncdata.html">Migrate data between different databases with asyncdata script</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/perl-copy-data-scripts.html#comments" title="Comment on: Copy data between different databases with copydata script">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/perl-copy-data-scripts.html">http://www.dbatools.net/mytools/perl-copy-data-scripts.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=xGvzdscFMH0:PiCkxNZ7oy4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=xGvzdscFMH0:PiCkxNZ7oy4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=xGvzdscFMH0:PiCkxNZ7oy4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=xGvzdscFMH0:PiCkxNZ7oy4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=xGvzdscFMH0:PiCkxNZ7oy4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=xGvzdscFMH0:PiCkxNZ7oy4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-10T21:32:33+08:00</dc:date>
  <pubDate>Wed, 10 Jun 2009 21:32:33 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">asyncdata</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">copydata</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Data</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">MySQL</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Perl</category>
  
  </item>
  
  <item>
  <title>Change the WebChart XSL template to show nagivation links</title>
  <link>http://www.dbatools.net/mytools/webchart-new-xsl-template.html</link>
  <description><![CDATA[&nbsp; &nbsp; After define HTML links for each columns, we need to change the old XSL template to show links in the pages. We can use "href" HTML tag to show it, change the XSL template file as following. &lt;xsl:choose&gt;...]]></description>
  <guid isPermaLink="false">1097@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; After <a href="http://www.dbatools.net/mytools/webchart-href-links.html">define HTML links</a> for each columns, we need to change the old XSL template to show links in the pages. We can use "href" HTML tag to show it, change the XSL template file as following. </p>

<blockquote class="prefont">
&lt;xsl:choose&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:when test="@href"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a target="_blank"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:attribute name="href"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select="@href" /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:attribute&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select="." /&gt;&lt;/a&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:when&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:otherwise&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select="." /&gt;&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:otherwise&gt;<br />
&lt;/xsl:choose&gt;
</blockquote>

<p>&nbsp; &nbsp; Or else, use the "onClick" mouse event, use java scripts to open the links, which enable you control some properties of the new window. Change the XSL template file as following. </p>

<blockquote class="prefont">
&lt;xsl:choose&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:when test="@href"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a href="#myanchor"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:attribute name="onClick"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; javascripts:window.open("&lt;xsl:value-of select="@href" /&gt;"); return true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:attribute&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select="." /&gt;&lt;/a&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:when&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:otherwise&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select="." /&gt;&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/xsl:otherwise&gt;<br />
&lt;/xsl:choose&gt;
</blockquote>

<p>&nbsp; &nbsp; For XML technology, I just know something about this, write a note on blog for future remind. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/webchart-href-links.html">Create the HREF links in WebChart Pages</a> (8)</div>
        
            <div><a href="http://www.dbatools.net/experience/oramon-webchart-demo-page.html">Demo of oramon and WebChart performance solution</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-multi-lines-value.html">Specify multiple lines value in WebChart defination</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-custom-colors.html">Customize all the chart colors of WebChart utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-mysql-examples.html">WebChart Sample Pages on MySQL Database</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/webchart-new-xsl-template.html#comments" title="Comment on: Change the WebChart XSL template to show nagivation links">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/webchart-new-xsl-template.html">http://www.dbatools.net/mytools/webchart-new-xsl-template.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=JM6skDxCTSg:a56cH7dAo_k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JM6skDxCTSg:a56cH7dAo_k:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JM6skDxCTSg:a56cH7dAo_k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JM6skDxCTSg:a56cH7dAo_k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=JM6skDxCTSg:a56cH7dAo_k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JM6skDxCTSg:a56cH7dAo_k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-05T08:59:09+08:00</dc:date>
  <pubDate>Fri, 05 Jun 2009 08:59:09 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Java</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tomcat</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">WebChart</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">XML</category>
  
  </item>
  
  <item>
  <title>SQLULDR2 Bug: ORA-24345 error possible</title>
  <link>http://www.dbatools.net/mytools/sqluldr2-bug-ora-24345.html</link>
  <description><![CDATA[&nbsp; &nbsp; It's possible to get ORA-24345 error when you unload data with SQLULDR2, this error is due to no enough memory buffer allocated for column binding, the column data returned exceed the maximum length declared. After a full code...]]></description>
  <guid isPermaLink="false">1096@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; It's possible to get ORA-24345 error when you unload data with SQLULDR2, this error is due to no enough memory buffer allocated for column binding, the column data returned exceed the maximum length declared. After a full code review, there are two code bugs in SQLULDR2, but ociuldr doesn't have this bug. </p>

<p>&nbsp; &nbsp; For RAW data type, when unloading as text file, it will return hex string, each byte of the data will be returned as two hax char (the ascii code), so the memory buffer of this column type should be doubled. Now you can get ORA-24235 error, if you have RAW values larger than half precision size. </p>

<p>&nbsp; &nbsp; For number data type, when unloading negative values to text file, we should add one byte for the number value sign char, while it's ommited in current SQLULDR2. Somebody reported this problem when unload values stored in "NUMBER(2)" column, I finally found the root cause. </p>

<p>&nbsp; &nbsp; The ociuldr, previous release of SQLULDR2, doesn't have this bug, because ociuldr does not support fixed length text format, so for number type, I give 130 bytes memory buffer, for raw type, I give a 4000 bytes memory buffer. But in SQLULDR2, to well support of fixed length text format unload, I try to allocate as less buffer as possible.</p>

<p>&nbsp; &nbsp; However, if you already hit this bug, you can increase the precision of relative columns, or you can use "width" option to manually set the column width. I will get this bug fixed this week, you can update your binary next week. A new command line option ("safe") added to avoid ORA-24345 error.</p>

<p>&nbsp; &nbsp; It's possible we do some character set conversion when unloading data, from single byte to multiple bytes character set, the maximum length required may be doubled. If you set "safe" option to yes, SQLULDR2 will and 10 bytes for DATE, NUMBER column type, and double the memory bufer for character column type. So if you plan to do character set convertion, please set "safe" to yes, just call it "run in safe mode". </p>


</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-oracle-migrate-data-to-mysql.html">Migrate data from Oracle to MySQL with SQLULDR2</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-password-protection.html">Protect the database connection information in SQLULDR2</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html">How to change SQLULDR2 session level's parameters?</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-free-of-charge.html">SQLULDR2, upgrade of ociuldr, free of charge now.</a> (20)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-compress.html">SQLULDR2 can compress the output file in GZIP format</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/sqluldr2-bug-ora-24345.html#comments" title="Comment on: SQLULDR2 Bug: ORA-24345 error possible">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/sqluldr2-bug-ora-24345.html">http://www.dbatools.net/mytools/sqluldr2-bug-ora-24345.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=g4Enx551ncQ:gaGWVCDuB88:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=g4Enx551ncQ:gaGWVCDuB88:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=g4Enx551ncQ:gaGWVCDuB88:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=g4Enx551ncQ:gaGWVCDuB88:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=g4Enx551ncQ:gaGWVCDuB88:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=g4Enx551ncQ:gaGWVCDuB88:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-05T08:08:20+08:00</dc:date>
  <pubDate>Fri, 05 Jun 2009 08:08:20 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Bugfix</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Charset</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Export</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">sqlldr</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Text</category>
  
  </item>
  
  <item>
  <title>How to change SQLULDR2 session level's parameters?</title>
  <link>http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html</link>
  <description><![CDATA[&nbsp; &nbsp; Somebody need to change the date type format (default, "yyyy-mm-dd hh24:mi:ss"), and change the numeric characters. For Oracle, you can run some "alter session set ..." commands to make the changes, so I add a new command line...]]></description>
  <guid isPermaLink="false">1092@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Somebody need to change the date type format (default, "yyyy-mm-dd hh24:mi:ss"), and change the numeric characters. For Oracle, you can run some "alter session set ..." commands to make the changes, so I add a new command line option "alter" for SQLULDR2, which allow you change session level's setting before the data unloading. You can put mulitple alter session lines in a parameter file, such as "testpar.txt". </p> 

<blockquote class="prefont">
user=webchart/webchart@localhost:1521/testdb<br />
query=select sysdate from dual<br />
alter=alter session set nls_date_format='yyyy-mon-dd';<br />
&nbsp; &nbsp; &nbsp; alter session set nls_date_format='yyyy-mm-dd';<br />
</blockquote>

<p>&nbsp; &nbsp; Then run SQLULDR2 with parameter file "testpar.txt". </p>

<blockquote class="prefont">
sqluldr2 parfile=testpar.txt
</blockquote>

<p>&nbsp; &nbsp; Check the data in the out put file, we can see that the data format takes effect. Be attention, the session level's setting will not change the date format of the SQL*Loader control files. </p>

<blockquote class="prefont">
D:\OracleClient>type uldrdata.txt<br />
2009-06-03
</blockquote>

<p>&nbsp; &nbsp; I am not sure how many people really need this feature, as there are already some command line options for session  level performance tuning. </p> 



</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-password-protection.html">Protect the database connection information in SQLULDR2</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/sqluldr2-compress.html">SQLULDR2 can compress the output file in GZIP format</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/ociuldr-buffer-option.html">New command line option for text export utility -- BUFFER</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/unload-oracle-raw-data.html">The LONG RAW data type support of text unload (export) utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/unload-oracle-with-ociuldr.html">How to unload or export rows as text file, excel CSV file, or excel xls file?</a> (20)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html#comments" title="Comment on: How to change SQLULDR2 session level's parameters?">Leave New Comment</a></b>(Current: 1)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html">http://www.dbatools.net/mytools/sqluldr2-alter-session-params.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=nunyjfZGmd0:VEo4GNTwQcw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=nunyjfZGmd0:VEo4GNTwQcw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=nunyjfZGmd0:VEo4GNTwQcw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=nunyjfZGmd0:VEo4GNTwQcw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=nunyjfZGmd0:VEo4GNTwQcw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=nunyjfZGmd0:VEo4GNTwQcw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-03T16:20:23+08:00</dc:date>
  <pubDate>Wed, 03 Jun 2009 16:20:23 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Export</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Oracle</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">sqlldr</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Text</category>
  
  </item>
  
  <item>
  <title>Create the HREF links in WebChart Pages</title>
  <link>http://www.dbatools.net/mytools/webchart-href-links.html</link>
  <description><![CDATA[&nbsp; &nbsp; HTML links are very useful for navigation, when we display some summary data in WebChart, we also want to display a href link to display the detail data of relative quater. QUATER COUNT 2008Q1 7363835 2008Q2 9146220 2008Q3...]]></description>
  <guid isPermaLink="false">1089@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; HTML links are very useful for navigation, when we display some summary data in WebChart, we also want to display a href link to display the detail data of relative quater. </p>

<blockquote>
         <table border="1" width="500" cellspacing="0" cellpadding="2">
            <caption align="center"><font size="5"></font>
            </caption>
            <tr>
               <th width="42%">QUATER</th>
               <th width="57%">COUNT</th>
            </tr>
            <tr>
               <td align="center">2008Q1</td>
               <td align="right">7363835</td>
            </tr>
            <tr>
               <td align="center">2008Q2</td>
               <td align="right">9146220</td>
            </tr>
            <tr>
               <td align="center">2008Q3</td>
               <td align="right">10985911</td>
            </tr>
            <tr>
               <td align="center">2008Q4</td>
               <td align="right">12757707</td>
            </tr>
         </table>
</blockquote>

<p>&nbsp; &nbsp; In previous release, we have to create a dedicate XSL file to control the output, but now you can simply add a extra line in the WCML file to tell WebChart how to create navigation links in the data grid. For example, we want to create a href link on column quater, and pass the quater value with HTML url parameter "q" to "detail.wcml" page.</p>

<blockquote class="prefont">
WEBCHART.HREF_1=QUATER|detail.wcml?q=$QUATER
</blockquote>

<p>&nbsp; &nbsp; Now there is a HTML link on column quater for navigation. </p>

<blockquote>
         <table border="1" width="500" cellspacing="0" cellpadding="2">
            <caption align="center"><font size="5"></font>
            </caption>
            <tr>
               <th width="42%">QUATER</th>
               <th width="57%">COUNT</th>
            </tr>
            <tr>
               <td align="center"><a target="_blank" href="detail.wcml?q=2008Q1">2008Q1</a>
               </td>
               <td align="right">7363835</td>
            </tr>
            <tr>
               <td align="center"><a target="_blank" href="detail.wcml?q=2008Q2">2008Q2</a>
               </td>
               <td align="right">9146220</td>
            </tr>
            <tr>
               <td align="center"><a target="_blank" href="detail.wcml?q=2008Q3">2008Q3</a>
               </td>
               <td align="right">10985911</td>
            </tr>
            <tr>
               <td align="center"><a target="_blank" href="detail.wcml?q=2008Q4">2008Q4</a>
               </td>
               <td align="right">12757707</td>
            </tr>
         </table>
</blockquote>

<p>&nbsp; &nbsp; With this feature, you can build lot's of pages with fewer XSL template files. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/webchart-new-xsl-template.html">Change the WebChart XSL template to show nagivation links</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/oramon-webchart-demo-page.html">Demo of oramon and WebChart performance solution</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-multi-lines-value.html">Specify multiple lines value in WebChart defination</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-custom-colors.html">Customize all the chart colors of WebChart utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/webchart-mysql-examples.html">WebChart Sample Pages on MySQL Database</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/mytools/webchart-href-links.html#comments" title="Comment on: Create the HREF links in WebChart Pages">Leave New Comment</a></b>(Current: 8)</p> 
      <p>Link: <a href="http://www.dbatools.net/mytools/webchart-href-links.html">http://www.dbatools.net/mytools/webchart-href-links.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=-5nqDr3v2lw:Kyjpwg2BJR8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-5nqDr3v2lw:Kyjpwg2BJR8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-5nqDr3v2lw:Kyjpwg2BJR8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-5nqDr3v2lw:Kyjpwg2BJR8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=-5nqDr3v2lw:Kyjpwg2BJR8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=-5nqDr3v2lw:Kyjpwg2BJR8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>MyTools</dc:subject>
  <dc:date>2009-06-02T23:57:57+08:00</dc:date>
  <pubDate>Tue, 02 Jun 2009 23:57:57 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Blog</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Java</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tomcat</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">WebChart</category>
  
  </item>
  
  <item>
  <title>Get more than expected from oramon performance alert.</title>
  <link>http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html</link>
  <description><![CDATA[&nbsp; &nbsp; Now, we have more performance alert point than previously, we just had performance alert based on the load average and active sessions. I were wondering that we will receive too much performance alert and it may bother our...]]></description>
  <guid isPermaLink="false">1086@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Now, we have more performance alert point than previously, we just had performance alert based on the load average and active sessions. I were wondering that we will receive too much performance alert and it may bother our lifes. But it doesn't happen, because no alert reported by mistake, it really help us find out new problems on database or application layers. </p>

<p>&nbsp; &nbsp; The oldest performance alert, came from Nagios based on the load average. </p>

<blockquote class="prefont">
WARNING - load average: 9.03, 5.70, 4.36
</blockquote>

<p>&nbsp; &nbsp; With the older version of oramon, new performance alert added with active sessions. </p>

<blockquote class="prefont">
High Active Session on xxxxxx, <br />
05/21-10:41:01 Load 2.73, Act: 45, Enq: 0
</blockquote>

<p>&nbsp; &nbsp; In the current version of oramon, more performance data is reported in alert message. </p>

<blockquote class="prefont">
High Load on xxxxxx, 2009.05.21 10:41:01 <br />
Load 2.73, CPU:7/29/19 Swap: 1, Act: 45, Enq: 29, PQ: 0
</blockquote>

<p>&nbsp; &nbsp; We got some enqueue wait sessions alert, which help us get to know the problems exists in out database and application, so we can get it resolved before it really degrade our availability. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/experience/oramon-performance-perf-alert.html">Send oracle performance alert based on oramon performance data</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/experience/deploy-new-oramon-version.html">Deploy the new oramon version to production database hosts.</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/load-oramon-perf-data.html">Load oramon performance data into database for further analyze</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/install-and-start-oramon.html">Install and start oramon to gather performance data</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/oramon-gather-perf-data.html">Gather and keep Oracle performance data with oramon</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html#comments" title="Comment on: Get more than expected from oramon performance alert.">Leave New Comment</a></b>(Current: 2)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html">http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=Xi5PUEdZPTQ:JluxOokHZ1A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=Xi5PUEdZPTQ:JluxOokHZ1A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=Xi5PUEdZPTQ:JluxOokHZ1A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=Xi5PUEdZPTQ:JluxOokHZ1A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=Xi5PUEdZPTQ:JluxOokHZ1A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=Xi5PUEdZPTQ:JluxOokHZ1A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2009-05-26T13:49:17+08:00</dc:date>
  <pubDate>Tue, 26 May 2009 13:49:17 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Alert</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Oracle</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">oramon</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tuning</category>
  
  </item>
  
  <item>
  <title>Send oracle performance alert based on oramon performance data</title>
  <link>http://www.dbatools.net/experience/oramon-performance-perf-alert.html</link>
  <description><![CDATA[&nbsp; &nbsp; For critical online transaction process database, it's very important to find out an effective way to monitor the database performance and alert the database performance problem. Because their are many concurrent sessions, any small problem can make the...]]></description>
  <guid isPermaLink="false">1085@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; For critical online transaction process database, it's very important to find out an effective way to monitor the database performance and alert the database performance problem. Because their are many concurrent sessions, any small problem can make the database run into worse situation, if we did not get it resolved in time, the database may hang, the application may hang, and the sevice lost until we restart the database server or application servers. Some companies hire NOC DBAs to perform 7x24 monitoring, some companies install some performance monitoring tools such as Nagios, to monitor the database by server load or CPU usage etc at every 5 minutes, and send an alert to DBAs in time.</p>

<p>&nbsp; &nbsp; As a matter of fact, the key point is not that you have 7x24 NOC DBAs, you need a good tool to gather database performance data, and then build some alert rules based on these data. Nagios is not good enough, 5 minutes check interval is not effective, it's hard to build good alert rules based on the data that oramon gathered. The oramon utility can gather key performance data for you, why not make some good alert rules on it, and the get the perfromance monitoring done well? </p>

<p>&nbsp; &nbsp; I rewrite the data gather tool with Perl, to integrite the performance alert rules and support different RDBMS as the performance database. Because oramon gather performance data at every 10 seconds, so the alert rules is not based one point of data, it's based on the recent 5 points of data, it can improve the alert rules quanlity greatly. </p>

<p>&nbsp; &nbsp; After one days test, I add the following database performance alert rules to my databases. If the active sessions in the last 5 points are greater than given value (different value for different databases), send out the performance alert. If the enqueue wait sesssions in the last 5 points are greater than 10, send out the performance alert, because I think enqueue wait should be avoided in OLTP systems. If the CPU WIO percent in the last 5 points are greater than 40, send out the performance alert. If the CPU USER percent in the last 5 points are greater than 80, send out the performance alert. If the active parallel slave sessions in the last 5 points are greater than 4, send out the performance alert. </p>

<p>&nbsp; &nbsp; With the data gathered by oramon, we can add more performance alert rules according to swap in and out, physical read, physical writes, the average db file sequential read time, the IOPS (summary of database read and write event waits) of the database. Don't send performance alert just according to the load average or CPU utilization. </p>

<p>&nbsp; &nbsp; By embed the performance alert rules into the data scan tool, we can get the performance alert quickly, right after it happens, because it's applying the rules at every 10 seconds. By check the last 5 points of data, it can eliminate lot's of unnecessary performance alerts. Last day, we get some performance alert from the enqueue wait rule, and we get it resolved quickly without impaction of the service. With these effective performance alert rules, DBAs can master the database well, and then can sleep well every day.</p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html">Get more than expected from oramon performance alert.</a> (2)</div>
        
            <div><a href="http://www.dbatools.net/experience/deploy-new-oramon-version.html">Deploy the new oramon version to production database hosts.</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mytools/load-oramon-perf-data.html">Load oramon performance data into database for further analyze</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/install-and-start-oramon.html">Install and start oramon to gather performance data</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/oramon-gather-perf-data.html">Gather and keep Oracle performance data with oramon</a> (0)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/oramon-performance-perf-alert.html#comments" title="Comment on: Send oracle performance alert based on oramon performance data">Leave New Comment</a></b>(Current: 1)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/oramon-performance-perf-alert.html">http://www.dbatools.net/experience/oramon-performance-perf-alert.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=9zMbHU5wBgs:qzOJOdZDcO8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=9zMbHU5wBgs:qzOJOdZDcO8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=9zMbHU5wBgs:qzOJOdZDcO8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=9zMbHU5wBgs:qzOJOdZDcO8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=9zMbHU5wBgs:qzOJOdZDcO8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=9zMbHU5wBgs:qzOJOdZDcO8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2009-05-23T09:07:21+08:00</dc:date>
  <pubDate>Sat, 23 May 2009 09:07:21 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Alert</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Oracle</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">oramon</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Perl</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tuning</category>
  
  </item>
  
  <item>
  <title>Deploy the new oramon version to production database hosts.</title>
  <link>http://www.dbatools.net/experience/deploy-new-oramon-version.html</link>
  <description><![CDATA[&nbsp; &nbsp; I was changing the code of oramon in recent few weeks, keeping on adding more useful performance data and removing useless performance data, it took me one month to finally release the new version of oramon, and deploy...]]></description>
  <guid isPermaLink="false">1083@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; I was changing the code of oramon in recent few weeks, keeping on adding more useful performance data and removing useless performance data, it took me one month to finally release the new version of oramon, and deploy it to our production databases. The most important thing of new version is that we can load more performance data into performance database, and we can show it easily with WebChart. Here is a few charts from the data gathered by the new version. </p>

<p>&nbsp; &nbsp; The CPU utilization, including SYS, WIO, USER percent value, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_cpu.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The total wait count of db file sequential read and db file scatter read event, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_read.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The total wait time of db file sequential read and db file scatter read event, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_readtime.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The total wait count of db file parallel write and log file parallel write event, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_write.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The total wait time of db file parallel write and log file parallel write event, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_writetime.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The average wait time of db file sequential read event, an important measure of the IO response time of the storage, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_iotime.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; The total wait count of database read and write wait event, include dba file sequential read, db file scatter read,  db file parallel write and log file parallel write event, we get an IOPS from Oracle database layer, and display the data of all the core database hosts into one page for comparation. </p> 
<blockquote>
<img src="http://www.dbatools.net/images/neworamon_iops.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; Oramon gathered more data than the above, will draw more charts for better performance analyze. </p>
</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/mytools/load-oramon-perf-data.html">Load oramon performance data into database for further analyze</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/install-and-start-oramon.html">Install and start oramon to gather performance data</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/oramon-gather-perf-data.html">Gather and keep Oracle performance data with oramon</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html">Get more than expected from oramon performance alert.</a> (2)</div>
        
            <div><a href="http://www.dbatools.net/experience/oramon-performance-perf-alert.html">Send oracle performance alert based on oramon performance data</a> (1)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/deploy-new-oramon-version.html#comments" title="Comment on: Deploy the new oramon version to production database hosts.">Leave New Comment</a></b>(Current: 1)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/deploy-new-oramon-version.html">http://www.dbatools.net/experience/deploy-new-oramon-version.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=r-g4_jkFweA:caC_OOaLn0I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=r-g4_jkFweA:caC_OOaLn0I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=r-g4_jkFweA:caC_OOaLn0I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=r-g4_jkFweA:caC_OOaLn0I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=r-g4_jkFweA:caC_OOaLn0I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=r-g4_jkFweA:caC_OOaLn0I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2009-05-21T07:50:40+08:00</dc:date>
  <pubDate>Thu, 21 May 2009 07:50:40 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Oracle</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">oramon</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tuning</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">WebChart</category>
  
  </item>
  
  <item>
  <title>How to Anayze Oracle Performance Data, Lession Two</title>
  <link>http://www.dbatools.net/experience/analyze-perf-data-two.html</link>
  <description><![CDATA[&nbsp; &nbsp; Oracle give use lots of performance views, not only for database only, but also some important data about the applications. As a DBA we should analyze those data, and show the data to others. For example, how to...]]></description>
  <guid isPermaLink="false">1079@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Oracle give use lots of performance views, not only for database only, but also some important data about the applications. As a DBA we should analyze those data, and show the data to others. For example, how to configure the database connection pool in application, the minimum and the maximum connects? </p>

<p>&nbsp; &nbsp; It seems DBAs cannot get any data about it, we should analyze the application log and then get the required information . But it's not ture, usually the application use connection pool, so the database connection is permanent to database, we can simply keep a history of the database connections, to see whether it always reachs the configured maximum connection. </p>

<p>&nbsp; &nbsp; Run the following SQL every 5 minutes, and keep the data into a table for further analyze. </p>

<blockquote class="prefont">
select sysdate day, INSTANCE_NAME,<br />
&nbsp; &nbsp; &nbsp;  machine, username, count(*) conncount<br />
&nbsp; from v$session, v$instance <br />
&nbsp; group by machine, username, instance_name
</blockquote> 

<p>&nbsp; &nbsp; Then we can display the last three days' data of the application host, it will tell us whether we should change the configuration. </p>

<blockquote>
<img src="http://www.dbatools.net/images/app_db_conns_line.gif" border="0" />
</blockquote>

<p>&nbsp; &nbsp; It's a easy job, but it make us tuning the application connection based on data, not by somebody's personal experience. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/experience/analyze-perf-data-one.html">How to Anayze Oracle Performance Data, Lession one</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/mixed-analyze-and-dbms-stats.html">Analyze or DBMS_STATS, choose one but don't mix them</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/asyncdata-perf-tuning.html">Tuning the performance of data replication with asyncdata</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/perl-copy-data-scripts.html">Copy data between different databases with copydata script</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html">Get more than expected from oramon performance alert.</a> (2)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/analyze-perf-data-two.html#comments" title="Comment on: How to Anayze Oracle Performance Data, Lession Two">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/analyze-perf-data-two.html">http://www.dbatools.net/experience/analyze-perf-data-two.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=89f0AZI1_gg:BIWLGf-vaME:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=89f0AZI1_gg:BIWLGf-vaME:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=89f0AZI1_gg:BIWLGf-vaME:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=89f0AZI1_gg:BIWLGf-vaME:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=89f0AZI1_gg:BIWLGf-vaME:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=89f0AZI1_gg:BIWLGf-vaME:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2009-05-10T22:04:04+08:00</dc:date>
  <pubDate>Sun, 10 May 2009 22:04:04 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Analyze</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Data</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tuning</category>
  
  </item>
  
  <item>
  <title>How to Anayze Oracle Performance Data, Lession one</title>
  <link>http://www.dbatools.net/experience/analyze-perf-data-one.html</link>
  <description><![CDATA[&nbsp; &nbsp; Oracle give use lots of performance views, not only for database only, but also some important data about the applications. As a DBA we should analyze those data, and show the data to others. For example, the SQL...]]></description>
  <guid isPermaLink="false">1078@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; Oracle give use lots of performance views, not only for database only, but also some important data about the applications. As a DBA we should analyze those data, and show the data to others. For example, the SQL execute ratio of each application hosts for a database. It may be useful in application capacity plaing. </p>

<p>&nbsp; &nbsp; It seems DBAs cannot get any data about it, we should analyze the application log and then get the required data. But it's not ture, usually the application use connection pool, so the database connection is permanent to database, sessions are not reconnected between different calls. So we can get the SQL execute count staistics from V$SESSTAT performance view. Create a user with select catalog role and create a table to hold the data under the created user. </p>

<blockquote class="prefont">
create table TMP_SESSION_EXECUTES<br />
(<br />
&nbsp; &nbsp;  ID NUMBER(38),<br />
&nbsp; &nbsp;  SID NUMBER(12),<br />
&nbsp; &nbsp;  serial# number(12),<br />
&nbsp; &nbsp;  machine varchar2(64),<br />
&nbsp; &nbsp;  username varchar2(30),<br />
&nbsp; &nbsp;  execute number(38)<br />
);
</blockquote>

<p>&nbsp; &nbsp; Create a sequence to generate the snap id for each data collect. </p>

<blockquote class="prefont">
create sequence seq_temp_sesstat;
</blockquote>

<p>&nbsp; &nbsp; Run the following PL/SQL codes for few hours, we will get lots of data to analyze the above problem. </p>

<blockquote class="prefont">
declare<br />
&nbsp;  ver number:=0;<br />
begin<br />
loop<br />
&nbsp;  select seq_temp_sesstat.nextval into ver from dual;<br />
&nbsp;  insert into TMP_SESSION_EXECUTES<br />
&nbsp;  select ver, a.sid,<br />
&nbsp; &nbsp;  a.serial#, a.machine, a.username, b.value <br />
&nbsp;  from v$session a, v$sesstat b<br />
&nbsp;  where a.sid=b.sid<br />
&nbsp; &nbsp;  and b.STATISTIC#=238;<br />
&nbsp;  commit;<br />
&nbsp;  dbms_lock.sleep(300);<br />
end loop;<br />
end;<br />
/<br />
</blockquote>

<p>&nbsp; &nbsp; The data we gathered is cumulative data, we need to get the changed value for each snap, and then do a summary by application machine and schema name. </p> 

<blockquote class="prefont">
SELECT MACHINE, USERNAME,&nbsp; SUM(EXECUTE) EXECUTE<br />
FROM (<br />
SELECT A.MACHINE, A.USERNAME, <br />
&nbsp; A.EXECUTE - NVL(B.EXECUTE,0) EXECUTE<br />
FROM TMP_SESSION_EXECUTES A, TMP_SESSION_EXECUTES B<br />
WHERE A.ID=B.ID+1<br />
&nbsp; AND A.SID=B.SID<br />
&nbsp; AND A.SERIAL#=B.SERIAL#<br />
&nbsp; AND A.MACHINE=B.MACHINE<br />
&nbsp; AND A.USERNAME=B.USERNAME<br />
&nbsp; AND A.EXECUTE &gt; NVL(B.EXECUTE,0) )<br />
GROUP BY MACHINE, USERNAME<br />
</blockquote>

<p>&nbsp; &nbsp; Now we get the SQL executions of each application machine in a given duration, and calculate the ratio of each application machine, it's very useful infromation. </p>

</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/experience/analyze-perf-data-two.html">How to Anayze Oracle Performance Data, Lession Two</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/mixed-analyze-and-dbms-stats.html">Analyze or DBMS_STATS, choose one but don't mix them</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/asyncdata-perf-tuning.html">Tuning the performance of data replication with asyncdata</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/mytools/perl-copy-data-scripts.html">Copy data between different databases with copydata script</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/experience/benifit-from-oramon-perf-alert.html">Get more than expected from oramon performance alert.</a> (2)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/experience/analyze-perf-data-one.html#comments" title="Comment on: How to Anayze Oracle Performance Data, Lession one">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/experience/analyze-perf-data-one.html">http://www.dbatools.net/experience/analyze-perf-data-one.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=JfF3jfWzRbs:T99p90Hm9Dc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JfF3jfWzRbs:T99p90Hm9Dc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JfF3jfWzRbs:T99p90Hm9Dc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JfF3jfWzRbs:T99p90Hm9Dc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=JfF3jfWzRbs:T99p90Hm9Dc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=JfF3jfWzRbs:T99p90Hm9Dc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Experience</dc:subject>
  <dc:date>2009-05-09T17:53:28+08:00</dc:date>
  <pubDate>Sat, 09 May 2009 17:53:28 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Analyze</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Data</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Tuning</category>
  
  </item>
  
  <item>
  <title>PayPal charge too much for payment, welcome to AliPay.</title>
  <link>http://www.dbatools.net/support/paypal-charge-too-much.html</link>
  <description><![CDATA[&nbsp; &nbsp; I provide one hour consultant service for somebody, and got 75USD consultant fee by PayPal, PayPal charged me 3.23 USD for this payment, it's really expensive! The fee ratio is 3.23USD/75USD, about 4.3 percent. As the global economic...]]></description>
  <guid isPermaLink="false">1074@http://www.dbatools.net/</guid>
  <content:encoded><![CDATA[
      <p>Author: <a href="http://www.dbatools.net">AnySQL</a>, published on <a href="http://www.dbatools.net">dbatools.net</a>, Oracle Data Recovery, Tools, WebChart Report, etc. </p><p>&nbsp; &nbsp; I provide one hour consultant service for somebody, and got 75USD consultant fee by PayPal, PayPal charged me 3.23 USD for this payment, it's really expensive! The fee ratio is 3.23USD/75USD, about 4.3 percent. As the global economic crisis, it really charged too much from all of us. </p>

<p>&nbsp; &nbsp; In China the maximum charge ratio by bank is 1 percent and up to 100RMB maximumly, for online  payment service, such as <a href="http://www.alipay.com">AliPay</a>, unless you exceed the free limit, you are freely for payment transfer usually. Why don't PayPal give us a free payment transfer limit between different account? </p>

<p>&nbsp; &nbsp; <a href="http://www.alipay.com">AliPay</a> is very popular in China, about 150 millions registed users, still growing with very rapidly, more than 100% every year since it created. If you want to develop a new market or expand existing market in China, you can choose <a href="http://www.alipay.com">AliPay</a> as the payment solution, lot's of Chinese will buy your products due to the easy payment with <a href="http://www.alipay.com">AliPay</a>. While PayPal is not not popular in China at all due to high charge ratio. </p>

<p>&nbsp; &nbsp; We'd like to start business with you by a easy payment solution. You can sell your products on <a href="http://www.taobao.com">Taobao</a> and accept payment by <a href="http://www.alipay.com">AliPay</a>, just hire somebody who can read Chinese.</p>
</p>
      <p><b>Related Posts</b></p>
	
            <div><a href="http://www.dbatools.net/support/post-question-by-askme.html">Click "Ask Me" to post a question to me now</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/mydul/aul-servmode.html">AUL/MyDUL data recovery service models</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/support/aul-2tb-oracle-recovery.html">Using AUL/MyDUL in a 2TB Oracle database recovery</a> (1)</div>
        
            <div><a href="http://www.dbatools.net/support/fastest-aul-data-recovery.html">Fastest Oracle data recovery service by AUL/MyDUL utility</a> (0)</div>
        
            <div><a href="http://www.dbatools.net/support/oracle-tuning-service.html">Track Oracle database performance with oramon utility</a> (4)</div>
        
      </p>
      <p><b><a href="http://twitter.com/dbatools" target="_blank">Twitter Me?</a> | <a href="http://www.dbatools.net/support/paypal-charge-too-much.html#comments" title="Comment on: PayPal charge too much for payment, welcome to AliPay.">Leave New Comment</a></b>(Current: 0)</p> 
      <p>Link: <a href="http://www.dbatools.net/support/paypal-charge-too-much.html">http://www.dbatools.net/support/paypal-charge-too-much.html</a> </p>
      </description>
      
  <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dbatools?a=h7v27dhiENk:TI1CyB-MBuE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=h7v27dhiENk:TI1CyB-MBuE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dbatools?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=h7v27dhiENk:TI1CyB-MBuE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dbatools?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=h7v27dhiENk:TI1CyB-MBuE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dbatools?i=h7v27dhiENk:TI1CyB-MBuE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dbatools?a=h7v27dhiENk:TI1CyB-MBuE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dbatools?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
  <dc:subject>Support</dc:subject>
  <dc:date>2009-05-06T08:58:43+08:00</dc:date>
  <pubDate>Wed, 06 May 2009 08:58:43 +0800</pubDate>
  
     <category domain="http://www.sixapart.com/ns/types#tag">AliPay</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Payment</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">PayPal</category>
  
     <category domain="http://www.sixapart.com/ns/types#tag">Support</category>
  
  </item>
  
</channel>
</rss>
