<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Arul&#039;s Oracle Zone</title>
	<atom:link href="http://oraclezone.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraclezone.wordpress.com</link>
	<description>~my references and inferences of Oracle, MySQL, GoldenGate</description>
	<lastBuildDate>Thu, 05 Jan 2012 16:37:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oraclezone.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Arul&#039;s Oracle Zone</title>
		<link>http://oraclezone.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oraclezone.wordpress.com/osd.xml" title="Arul&#039;s Oracle Zone" />
	<atom:link rel='hub' href='http://oraclezone.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MySQL: how to delete duplicates from a table</title>
		<link>http://oraclezone.wordpress.com/2012/01/04/mysql-how-to-delete-duplicates-from-a-table/</link>
		<comments>http://oraclezone.wordpress.com/2012/01/04/mysql-how-to-delete-duplicates-from-a-table/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 07:08:43 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/?p=76</guid>
		<description><![CDATA[To show an example of this, let us create a table called DUPS with duplicate records: mysql&#62; create table temp ( id smallint unsigned not null auto_increment primary key, table_schema varchar(64), table_name varchar(64) ); Query OK, 0 rows affected (0.02 sec) mysql&#62; desc temp; +--------------+----------------------+------+-----+---------+----------------+ &#124; Field &#124; Type &#124; Null &#124; Key &#124; Default [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=76&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To show an example of this, let us create a table called DUPS with duplicate records:</p>
<pre>mysql&gt; create table temp ( id smallint unsigned not null auto_increment primary key, table_schema varchar(64), table_name varchar(64) );
Query OK, 0 rows affected (0.02 sec)

mysql&gt; desc temp;
+--------------+----------------------+------+-----+---------+----------------+
| Field        | Type                 | Null | Key | Default | Extra          |
+--------------+----------------------+------+-----+---------+----------------+
| id           | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| table_schema | varchar(64)          | YES  |     | NULL    |                |
| table_name   | varchar(64)          | YES  |     | NULL    |                |
+--------------+----------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql&gt; insert into temp ( table_schema, table_name ) select table_schema, table_name from information_schema.tables;
Query OK, 89 rows affected (0.01 sec)
Records: 89  Duplicates: 0  Warnings: 0

mysql&gt; select max(id), count(*) from temp;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |       89 |
+---------+----------+
1 row in set (0.00 sec)</pre>
<p>let us create a new table that will contain some duplicate records:</p>
<pre>mysql&gt; create table dups as select * from temp ;
Query OK, 89 rows affected (0.03 sec)
Records: 89  Duplicates: 0  Warnings: 0

mysql&gt; desc dups;
+--------------+----------------------+------+-----+---------+-------+
| Field        | Type                 | Null | Key | Default | Extra |
+--------------+----------------------+------+-----+---------+-------+
| id           | smallint(5) unsigned | NO   |     | 0       |       |
| table_schema | varchar(64)          | YES  |     | NULL    |       |
| table_name   | varchar(64)          | YES  |     | NULL    |       |
+--------------+----------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)</pre>
<p>let us insert 50 duplicates records:</p>
<pre>mysql&gt; insert into dups select * from temp limit 50 ;
Query OK, 50 rows affected (0.00 sec)
Records: 50  Duplicates: 0  Warnings: 0

mysql&gt; select max(id), count(*) from dups ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |      139 |
+---------+----------+
1 row in set (0.00 sec)</pre>
<p>There are a few options to delete duplicate records from DUPS table:</p>
<p>Option 1:</p>
<p>create a new temporary table without duplicates and rename this table to original table:</p>
<pre>mysql&gt; create table dups_temp as select * from dups group by table_schema, table_name ;
Query OK, 89 rows affected (0.04 sec)
Records: 89  Duplicates: 0  Warnings: 0

mysql&gt; select max(id), count(*) from dups_temp ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |       89 |
+---------+----------+
1 row in set (0.00 sec)

mysql&gt; drop table dups;
Query OK, 0 rows affected (0.12 sec)

mysql&gt; rename table dups_temp to dups;
Query OK, 0 rows affected (0.02 sec)</pre>
<p>Option 2:</p>
<p>Create an unique index (with IGNORE clause) on columns table_schema, table_name eliminates duplicates:</p>
<pre>mysql&gt; select max(id), count(*) from dups ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |      139 |
+---------+----------+
1 row in set (0.00 sec)

mysql&gt; alter ignore table dups add unique index (table_schema, table_name);
Query OK, 139 rows affected (0.14 sec)
Records: 139  Duplicates: 50  Warnings: 0

mysql&gt; select max(id), count(*) from dups ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |       89 |
+---------+----------+
1 row in set (0.00 sec)

mysql&gt; show indexes from dups\G
*************************** 1. row ***************************
       Table: dups
  Non_unique: 0
    Key_name: table_schema
Seq_in_index: 1
 Column_name: table_schema
   Collation: A
 Cardinality: 6
    Sub_part: NULL
      Packed: NULL
        Null: YES
  Index_type: BTREE
     Comment:
*************************** 2. row ***************************
       Table: dups
  Non_unique: 0
    Key_name: table_schema
Seq_in_index: 2
 Column_name: table_name
   Collation: A
 Cardinality: 89
    Sub_part: NULL
      Packed: NULL
        Null: YES
  Index_type: BTREE
     Comment:
2 rows in set (0.00 sec)

mysql&gt; alter table dups drop index table_schema ;
Query OK, 89 rows affected (0.12 sec)
Records: 89  Duplicates: 0  Warnings: 0
</pre>
<p>Option 3:</p>
<p>In this method we will use a DELETE statement; also we would need to create a column to serve as unique identifier if one is not already present:</p>
<pre>
mysql&gt; alter table dups add ( dummy_id smallint unsigned not null auto_increment primary key );
Query OK, 139 rows affected (0.11 sec)
Records: 139  Duplicates: 0  Warnings: 0

mysql&gt; select min(dummy_id), max(dummy_id) from dups ;
+---------------+---------------+
| min(dummy_id) | max(dummy_id) |
+---------------+---------------+
|             1 |           139 |
+---------------+---------------+
1 row in set (0.00 sec)

mysql&gt; select max(id), count(*) from dups ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |      139 |
+---------+----------+
1 row in set (0.00 sec)

mysql&gt; delete from dups using dups, dups as vtable where (dups.dummy_id &gt; vtable.dummy_id)
    -&gt; and (dups.table_schema = vtable.table_schema)
    -&gt; and (dups.table_name = vtable.table_name);
Query OK, 50 rows affected (0.01 sec)

mysql&gt; select max(id), count(*) from dups ;
+---------+----------+
| max(id) | count(*) |
+---------+----------+
|      89 |       89 |
+---------+----------+
1 row in set (0.00 sec)

mysql&gt; alter table dups drop column dummy_id ;
Query OK, 89 rows affected (0.15 sec)
Records: 89  Duplicates: 0  Warnings: 0
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=76&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2012/01/04/mysql-how-to-delete-duplicates-from-a-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Query to get the undocumented parameters and their values</title>
		<link>http://oraclezone.wordpress.com/2008/01/04/query-to-get-the-undocumented-parameters-and-their-values/</link>
		<comments>http://oraclezone.wordpress.com/2008/01/04/query-to-get-the-undocumented-parameters-and-their-values/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 09:05:57 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[Tuning]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2008/01/04/query-to-get-the-undocumented-parameters-and-their-values/</guid>
		<description><![CDATA[I am posting this to have a handy reference, as x$ tables are greek to me and I am not aware of another way to do this other than query the x$ tables. Here is a query to display all hidden or undocumented parameters and their default values. SELECT a.ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=60&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am posting this to have a handy reference, as x$ tables are greek to me <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  and I am not aware of another way to do this other than query the x$ tables.</p>
<p>Here is a query to display all hidden or undocumented parameters and their default values.</p>
<blockquote>
<pre>
SELECT
a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
FROM
x$ksppi a,
x$ksppcv b,
x$ksppsv c
WHERE
a.indx = b.indx
AND
a.indx = c.indx
AND
a.ksppinm LIKE '/_%' escape '/'
/</pre>
</blockquote>
<p>When you run this query, expect to see hundreds of rows where the undocumented parameters start with an &#8220;_&#8221;. Hence you&#8217;d probably want to filter this by providing the parameter of interest in the LIKE clause of the query.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/60/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/60/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=60&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2008/01/04/query-to-get-the-undocumented-parameters-and-their-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle 10g RAC Cluster interconnects</title>
		<link>http://oraclezone.wordpress.com/2008/01/03/oracle-10g-rac-cluster-interconnects/</link>
		<comments>http://oraclezone.wordpress.com/2008/01/03/oracle-10g-rac-cluster-interconnects/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 20:59:03 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[RAC]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2008/01/03/oracle-10g-rac-cluster-interconnects/</guid>
		<description><![CDATA[Yet another post on &#8230; say, you’ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster. This time it is on the Cluster private interconnects. The private interconnects used in a RAC are typically configured during the Clusterware install [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=59&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yet another post on &#8230; say, you’ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster.</p>
<p>This time it is on the Cluster private interconnects.</p>
<p>The private interconnects used in a RAC are typically configured during the Clusterware install and would be registered in OCR. However this default config could thereafter be overrided using cluster_interconnects initialization parameter (not recommended though ) for various reasons.</p>
<p>In order to troubleshoot interconnect related issues, a starting point would be to find out  what interconnects were originally configured and/or what interconnects are presently in use by the cluster. Here are a few ways to do this.</p>
<p>1. Using the dynamic view gv$cluster_interconnects:</p>
<pre>select * from gv$cluster_interconnects ;

INST_ID    NAME            IP_ADDRESS       IS_ SOURCE
---------- --------------- ---------------- --- -------------------------------
1          eth0            192.168.10.1     NO  Oracle Cluster Repository
1          eth1            192.168.11.1     NO  Oracle Cluster Repository
2          eth0            192.168.10.2     NO  Oracle Cluster Repository
2          eth1            192.168.11.2     NO  Oracle Cluster Repository</pre>
<p>In the above output, the column SOURCE indicates where  the private interconnect info was derived from; this column could be one of OCR, OS dependent software or cluster_interconnects parameter.</p>
<p>2. Using the clusterware command <i>oifcfg</i>:</p>
<blockquote><p>$oifcfg getif<br />
eth2 10.104.95.0 global public<br />
eth0 192.168.10.0 global cluster_interconnect<br />
eth1 192.168.11.0 global cluster_interconnect</p></blockquote>
<p>3. Using <i>oradebug ipc</i>:</p>
<blockquote><p>sqlplus &#8220;/ as sysdba&#8221;</p>
<p>SQL&gt;oradebug setmypid<br />
Statement processed.<br />
SQL&gt;oradebug ipc<br />
Information written to trace file.</p></blockquote>
<p>The above command would dump a trace to user_dump_dest. The last few lines of the trace would indicate the IP of the cluster interconnect. Below is a sample output of those lines.</p>
<p>From the trace file on node1:</p>
<p>SSKGXPT 0x5edf558 flags SSKGXPT_READPENDING socket no 9 IP 192.168.11.1 UDP 18852</p>
<p>From the trace file on node2:</p>
<p>SSKGXPT 0x5edf558 flags SSKGXPT_READPENDING socket no 9 IP 192.168.10.2 UDP 38967</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=59&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2008/01/03/oracle-10g-rac-cluster-interconnects/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle RAC Clusterware: Voting disks</title>
		<link>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-voting-disks/</link>
		<comments>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-voting-disks/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 00:54:25 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[RAC]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-voting-disks/</guid>
		<description><![CDATA[Say, you’ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster. The voting disk is one such component in 10g RAC that is used to store the hearbeat information between nodes. Like OCR, the voting disk also is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=58&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Say, you’ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster.</p>
<p>The voting disk is one such component in 10g RAC that is used to store the hearbeat information between nodes. Like <a href="http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-ocr-disks/">OCR</a>, the voting disk also is a shared disk component that is accessed by the nodes during the cluster operation. If a node is unable to ping the voting disk, the cluster immediately detects a communication failure and the node is evicted from the cluster to keep the cluster healthy.</p>
<p><i>crsctl</i> command can be used to check out the voting disk info of a cluster. Here is the usage of crsctl to determine the voting disks.</p>
<blockquote><p>$ crsctl query css votedisk<br />
0. 0 /dev/vx/rdsk/ocrdg/vdvol00<br />
1. 0 /dev/vx/rdsk/ocrdg/vdvol01<br />
2. 0 /dev/vx/rdsk/ocrdg/vdvol02</p></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=58&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-voting-disks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle RAC Clusterware: OCR Disks</title>
		<link>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-ocr-disks/</link>
		<comments>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-ocr-disks/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 00:48:46 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[RAC]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-ocr-disks/</guid>
		<description><![CDATA[Say, you&#8217;ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster. Oracle Cluster Registry (OCR) is one such component in 10g RAC used to store the cluster configuration information. It is a shared disk component, typically located in a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=57&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Say, you&#8217;ve just joined a new client, you are in a new RAC environment and you are trying to figure out the different components of the cluster.</p>
<p>Oracle Cluster Registry (OCR) is one such component in 10g RAC used to store the cluster configuration information. It is a shared disk component, typically located in a shared raw volume that must be accessible to all nodes in the cluster. The daemon OCSSd manages the configuration info in OCR and maintains the changes to cluster in the registry.</p>
<p><i>ocrcheck</i> is the command to check out the OCR. Here is a sample output of ocrcheck.</p>
<blockquote><p>$ocrcheck<br />
Status of Oracle Cluster Registry is as follows :<br />
Version : 2<br />
Total space (kbytes) : 1048296<br />
Used space (kbytes) : 5116<br />
Available space (kbytes) : 1043180<br />
ID : 834229908<br />
Device/File Name : /dev/vx/rdsk/ocrdg/ocrvol<br />
Device/File integrity check succeeded<br />
Device/File Name : /dev/vx/rdsk/ocrdg/ocrvol2<br />
Device/File integrity check succeeded</p>
<p>Cluster registry integrity check succeeded</p></blockquote>
<p>The file <b>/etc/oracle/ocr.loc</b> can also be used for this.</p>
<blockquote><p>$cat /etc/oracle/ocr.loc<br />
ocrconfig_loc=/dev/vx/rdsk/ocrdg/ocrvol<br />
ocrmirrorconfig_loc=/dev/vx/rdsk/ocrdg/ocrvol2<br />
local_only=FALSE</p></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=57&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/12/28/oracle-rac-clusterware-ocr-disks/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Undo size: 10g 10.2.0.3 vs 9i 9.2.0.6</title>
		<link>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/</link>
		<comments>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 07:19:34 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[10G]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[UNDO]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/</guid>
		<description><![CDATA[Does 10g R2 generate more undo than 9i R2? While trying to inspect the undo details for an UPDATE statement using v$transaction in my previous post (this was tested in Oracle 10.2.0.3) , I found something strange. While the UPDATE statement updated only 100,000 rows, the column USED_UREC from v$transaction displayed 200,000 rows. I was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=56&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Does 10g R2 generate more undo than 9i R2?</p>
<p>While trying to inspect the undo details for an UPDATE statement using v$transaction in my <a href="http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/">previous post</a> (this was tested in Oracle 10.2.0.3) , I found something strange. While the UPDATE statement updated only 100,000 rows, the column USED_UREC from v$transaction displayed 200,000 rows. I was curious to see the behavior in 9i.</p>
<p>Here is what I saw from v$transaction in 9i:</p>
<pre>SQL_TEXT                                    RECORDS     BLOCKS     KBYTES
---------------------------------------- ---------- ---------- ----------
update t1 set name = rpad('y', 30, 'y' )     100000       1516      12128</pre>
<p>RECORDS field is the alias for column USED_UREC and it shows only 100,000 records. BLOCKS field is the alias for column USED_UBLK shows 1516 blocks, which is about half of what [3078 blocks] I saw in 10G (see <a href="http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/">previous post</a>). Does this mean 10GR2 generates twice as much undo?</p>
<p>As a next step, I did a tkprof for both tests.</p>
<p>On 9.2.0.6, tkprof shows the following:</p>
<pre>
update t1 set name = rpad('y', 30, 'y' )       

call     count       cpu    elapsed    disk      query    current        rows
------- ------  -------- ---------- ------- ---------- ----------  ----------
Parse        1      0.00       0.00       0          0          0           0
Execute      1      1.23       4.84       0        675     103151      100000
Fetch        0      0.00       0.00       0          0          0           0
------- ------  -------- ---------- ------- ---------- ----------  ----------
total        2      1.23       4.84       0        675     103151      100000</pre>
<p>There is nothing unusual here.</p>
<p>On 10.2.0.3, tkprof shows the following:</p>
<pre>update t1 set name = rpad('a', 30, 'a' )                 

call     count       cpu    elapsed    disk      query    current        rows
------- ------  -------- ---------- ------- ---------- ----------  ----------
Parse        1      0.00       0.00       0          0          0           0
Execute      1      2.07       2.72       0        724     205112      100000
Fetch        0      0.00       0.00       0          0          0           0
------- ------  -------- ---------- ------- ---------- ----------  ----------
total        2      2.07       2.72       0        724     205112      100000</pre>
<p>Here the value of current mode gets is twice that of 9.2.0.6. Why so?</p>
<p>For both cases 9i and 10g, table T1 did not have any indexes.</p>
<p>Digging further to check if the recursive sql&#8217;s had any effect, from the tkprof and the trace, notice another difference:</p>
<p>On 9.2.0.6</p>
<pre>select file#
from
 file$ where ts#=:1                 

call     count       cpu    elapsed    disk      query    current        rows
------- ------  -------- ---------- ------- ---------- ----------  ----------
Parse       12      0.00       0.00       0          0          0           0
Execute     12      0.00       0.00       0          0          0           0
Fetch       36      0.00       0.00       0         48          0          24
------- ------  -------- ---------- ------- ---------- ----------  ----------
total       60      0.00       0.00       0         48          0          24       

Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: SYS   (recursive depth: 1)                 

Rows     Row Source Operation
-------  ---------------------------------------------------
      2  TABLE ACCESS BY INDEX ROWID FILE$
      2   INDEX RANGE SCAN I_FILE2 (object id 42)</pre>
<p>On 10.2.0.3</p>
<pre>select file#
from
 file$ where ts#=:1                 

call     count       cpu    elapsed    disk      query    current        rows
------- ------  -------- ---------- ------- ---------- ----------  ----------
Parse       23      0.00       0.00       0          0          0           0
Execute     23      0.00       0.00       0          0          0           0
Fetch       46      0.00       0.00       0         92          0          23
------- ------  -------- ---------- ------- ---------- ----------  ----------
total       92      0.00       0.00       0         92          0          23       

Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS   (recursive depth: 1)                 

Rows     Row Source Operation
-------  ---------------------------------------------------
      1  TABLE ACCESS FULL FILE$ (cr=4 pr=0 pw=0 time=44 us)</pre>
<p>Note the number of executions in 10G has doubled for this sql and it does a table scan on FILE$.</p>
<p>Does the change in the access path of this recursive SQL lend to the increase in the current mode gets? and does that impact the undo size? at this point, I am really puzzled <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=56&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>How much UNDO does a SQL use?</title>
		<link>http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/</link>
		<comments>http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 04:28:26 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[UNDO]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/</guid>
		<description><![CDATA[If you wish to know how much UNDO does a DML statement use, here is a method. First, let&#8217;s create a test table to populate 100,000 rows. SQL&#62; create table t1 ( id number(6), name varchar2(30) ); Table created. SQL&#62; create sequence seq; Sequence created. SQL&#62; insert into t1 select seq.nextval, rpad(&#8216;x&#8217;,30, &#8216;x&#8217;) from test [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=48&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you wish to know how much UNDO does a DML statement use, here is a method.</p>
<p>First, let&#8217;s create a test table to populate 100,000 rows.</p>
<p>SQL&gt; create table t1 ( id number(6), name varchar2(30) );</p>
<p>Table created.</p>
<p>SQL&gt; create sequence seq;</p>
<p>Sequence created.</p>
<p>SQL&gt; insert into t1 select seq.nextval, rpad(&#8216;x&#8217;,30, &#8216;x&#8217;) from test where rownum &lt; 100001;</p>
<p>100000 rows created.</p>
<p>SQL&gt; commit;</p>
<p>Commit complete.</p>
<p>SQL&gt; select count(*) from t1;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;-<br />
100000</p>
<p>The dynamic view v$transaction provides details of active transactions in the database ; the column USED_UBLK provides the number of undo blocks consumed by a transaction; the column USED_UREC provides the number of undo records used.</p>
<blockquote><p>col sql_text format a40<br />
set lines 130<br />
select sq.sql_text sql_text, t.USED_UREC Records, t.USED_UBLK Blocks, (t.USED_UBLK*8192/1024) KBytes from v$transaction t,<br />
v$session s,<br />
v$sql sq<br />
where t.addr = s.taddr<br />
and s.sql_id = sq.sql_id<br />
and s.username = &#8216;&lt;user&gt;&#8217;<br />
/</p></blockquote>
<p>Let&#8217;s update the table using</p>
<p>SQL&gt; update t1 set name = rpad(&#8216;y&#8217;, 30, &#8216;y&#8217;) ;</p>
<p>100000 rows updated.</p>
<p>and run the v$ script from another window to get the output below:</p>
<pre>SQL_TEXT                                    RECORDS     BLOCKS     KBYTES
---------------------------------------- ---------- ---------- ----------
update t1 set name = rpad('y', 30, 'y')      200000       3078      24624</pre>
<p>Using v$transaction provides an insight to the active transactions on the system and the resources used by those transactions.</p>
<p>This tells the update dml used 3078 blocks or 24Mb of undo. But, look at USED_UREC column &#8211; it shows 200,000 records when I updated only 100,000 records.. this seems strange&#8230; this is not what I&#8217;ve seen before.. I need to check more on this .. stay tuned&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=48&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/12/08/how-much-undo-does-a-sql-use/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>Weird RAC issue due to an incorrect setup</title>
		<link>http://oraclezone.wordpress.com/2007/11/18/weird-rac-issue-due-to-an-incorrect-setup/</link>
		<comments>http://oraclezone.wordpress.com/2007/11/18/weird-rac-issue-due-to-an-incorrect-setup/#comments</comments>
		<pubDate>Sun, 18 Nov 2007 04:47:56 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[RAC]]></category>
		<category><![CDATA[interconnect]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/11/18/weird-rac-issue-due-to-an-incorrect-setup/</guid>
		<description><![CDATA[When setting up a 4-node Oracle 10.2.0.2 RAC on RHEL4, after installing Oracle Clusterware, Oracle RAC binaries and creating a clustered database, I went ahead to open the instance on the first node and and then the second node. The instance on the first node would come up without any problem, but the instance on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=6&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When setting up a 4-node Oracle 10.2.0.2 RAC on RHEL4, after installing Oracle Clusterware, Oracle RAC binaries and creating a clustered database, I went ahead to open the instance on the first node and and then the second node. The instance on the first node would come up without any problem, but the instance on the second node would take a while to come up.  However, on further checking  we realized that the first instance was down. It turned out that while the second instance was coming up the first instance would crash. It all seemed weird because one would think both instances were healthy, but just the fact of bringing up an instance would crash the already open instance.</p>
<p>The alert log had the following messages:</p>
<blockquote><p> Interface type 1 eth0 192.168.10.0 configured from OCR for use as a cluster interconnect<br />
<font color="#ff0000">Interface type 1 eth3 192.168.11.0 configured from OCR for use as a cluster interconnect<br />
WARNING 192.168.11.0 could not be translated to a network address error 1<br />
</font>Interface type 1 eth2 1#.1##.145.0 configured from OCR for use as a public interface</p></blockquote>
<p>I went ahead to check if both interconnects are healthy.</p>
<p>A ping command on the primary interconnect revealed it was fine.</p>
<blockquote><p>$ping &lt;Primary-NIC&gt;<br />
PING Primary-NIC (192.168.10.2) 56(84) bytes of data.<br />
64 bytes from Primary-NIC (192.168.10.2): icmp_seq=0 ttl=64 time=0.035 ms<br />
64 bytes from Primary-NIC (192.168.10.2): icmp_seq=1 ttl=64 time=0.045 ms</p>
<p>&#8212; Primary-NIC ping statistics &#8212;<br />
2 packets transmitted, 2 received, 0% packet loss, time 999ms<br />
rtt min/avg/max/mdev = 0.035/0.040/0.045/0.005 ms, pipe 2</p></blockquote>
<p>A ping command on the secondary interconnect indicated there was a problem.</p>
<blockquote><p>$ping &lt;Secondary-NIC&gt;<br />
PING Secondary-NIC (192.168.11.2) 56(84) bytes of data.</p>
<p>&#8212; Secondary-NIC ping statistics &#8212;<br />
28 packets transmitted, 0 received, 100% packet loss, time 27018ms</p></blockquote>
<p>Once the SysAdmin fixed the secondary interconnect, both instances came up without any issues. This reinforces the importance of a functioning primary and secondary interconnect, if you specify both interconnects during the install &#8211; however, this does not provide redundancy or the ability to failover to the good interconnect if one interconnect fails.</p>
<p>The setup did not use NIC bonding, instead it used a primary and secondary interconnect for private interface (secondary interconnect for failover capability). I am positive both NIC cards should have been working during the install as the install pre-requisites were all met. But, it is evident from the alert log messages the second interconnect had some trouble.</p>
<p>Multiple interconnects allow Cache Fusion traffic to be distributed on all interconnects. However, if any one of the interconnects does not function, Oracle will assume the private network is down and will not open in cluster mode. Therefore it is highly recommended to use NIC bonding at the OS level for NIC failover and traffic sharing capability.</p>
<p>Bottom line: this incident clearly indicates the configuration of the interconnect plays a crucial role in RAC. Should I even make this statement? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>P.S: for the dirty details of setting up NIC bonding in Linux check out this excellent <a href="http://www.cyberciti.biz/tips/linux-bond-or-team-multiple-network-interfaces-nic-into-single-interface.html" target="_blank">link</a> by Vivek.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=6&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/11/18/weird-rac-issue-due-to-an-incorrect-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>RAC Hangs due to small cache size on SYS.AUDSES$</title>
		<link>http://oraclezone.wordpress.com/2007/11/15/rac-hangs-due-to-small-cache-size-on-sysaudses/</link>
		<comments>http://oraclezone.wordpress.com/2007/11/15/rac-hangs-due-to-small-cache-size-on-sysaudses/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 11:42:59 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[RAC]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/11/18/rac-hangs-due-to-small-cache-size-on-sysaudses/</guid>
		<description><![CDATA[If you run Oracle RAC on 10.2.0.2 or 9i watch out for the following. I&#8217;ve seen on a certain occasions when there is heavy system activity, all instances in RAC hang, even connecting as sysdba was terribly slow. It turned out this was due to the sequence SYS.AUDSES$ has its cache setting at default value [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=5&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you run Oracle RAC on 10.2.0.2 or 9i watch out for the following.</p>
<p>I&#8217;ve seen on a certain occasions when there is heavy system activity, all instances in RAC hang, even connecting as sysdba was terribly slow. It turned out this was due to the sequence SYS.AUDSES$ has its cache setting at default value of 20.  Metalink note: 395314.1 mentions that the some of the symptoms are:</p>
<p>- Checkpoint not completing on all RAC nodes<br />
- Waits expire on row cache enqueue lock dc_sequences<br />
- RAC hangs due to QMON deadlocking</p>
<p>It also mentions the fix to increase the cache size to a large value.</p>
<p>alter sequence sys.audses$ cache 10000;</p>
<p>Apparently this is fixed in 10.2.0.3.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=5&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/11/15/rac-hangs-due-to-small-cache-size-on-sysaudses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
		<item>
		<title>ORA-04030</title>
		<link>http://oraclezone.wordpress.com/2007/11/12/ora-04030/</link>
		<comments>http://oraclezone.wordpress.com/2007/11/12/ora-04030/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 10:33:53 +0000</pubDate>
		<dc:creator>Arul Ramachandran</dc:creator>
				<category><![CDATA[PGA]]></category>

		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/11/18/ora-04030/</guid>
		<description><![CDATA[On seeing the ORA-04030 error reported on a Oracle 9.2.0.6 RAC database running on Solaris 9, VCS SFRAC, being somewhat familiar with this error message I started looking at PGA and ulimit related settings. Before I delve any further, here is a bit of background: oerr ora 4030 04030, 00000, &#8220;out of process memory when [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=3&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On seeing the ORA-04030 error reported on a Oracle 9.2.0.6 RAC database running on Solaris 9, VCS SFRAC, being somewhat familiar with this error message I started looking at PGA and ulimit related settings.</p>
<p>Before I delve any further, here is a bit of background:</p>
<p>oerr ora 4030<br />
04030, 00000, &#8220;out of process memory when trying to allocate %s bytes (%s,%s)&#8221;<br />
// *Cause:  Operating system process private memory has been exhausted<br />
// *Action:</p>
<p>Automatic PGA had been set on this database:</p>
<pre>NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy                 string      AUTO
pga_aggregate_target                 big integer 1073741824</pre>
<p>1Gb for pga_aggregate_target on a server with 16Gb memory for the nature of the database operations seemed quite reasonable.</p>
<p>ulimit settings were as follows:</p>
<p>ulimit -a<br />
time(seconds)        unlimited<br />
file(blocks)         unlimited<br />
data(kbytes)         unlimited<br />
stack(kbytes)        8192<br />
coredump(blocks)     unlimited<br />
nofiles(descriptors) 4096<br />
vmemory(kbytes)      unlimited</p>
<p>On some further checking, it was found processes and sessions were set as follows</p>
<pre>NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sessions                             integer     2500
processes                            integer     700</pre>
<p>These settings were odd, on further checking it was found that another DBA had changed these values to test a change to VCS SFRAC, but the old values were not restored after the test.</p>
<p>On changing these parameters back to old values processes=1000 and sessions=1105, the problem disappeared.</p>
<p>The moral of the story here is, when troubleshooting issues we need to keep an eye on not so straightforward causes as well.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oraclezone.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oraclezone.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclezone.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclezone.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclezone.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclezone.wordpress.com&amp;blog=2146991&amp;post=3&amp;subd=oraclezone&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oraclezone.wordpress.com/2007/11/12/ora-04030/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe2e943b95e88714add2b899c97c7597?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oraclezone</media:title>
		</media:content>
	</item>
	</channel>
</rss>
