<?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/"
	>

<channel>
	<title>AristaDBA's Oracle Blog....</title>
	<atom:link href="http://blog.aristadba.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.aristadba.com</link>
	<description>An Oracle Blog Of  A Learner....</description>
	<lastBuildDate>Mon, 06 Sep 2010 16:12:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Sangam 2010 Summarized&#8230;.</title>
		<link>http://blog.aristadba.com/?p=163</link>
		<comments>http://blog.aristadba.com/?p=163#comments</comments>
		<pubDate>Mon, 06 Sep 2010 16:12:14 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[sangam]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=163</guid>
		<description><![CDATA[As I mentioned before leaving that I shall be attending AIOUG’s 2nd user group conference Sangam. I got back today morning from the 2 day schedule. It was a fantastic event and definitely, presence of Jonathan Lewis was the key attraction of it. I am too small to say anything about Jonathan Lewis so would [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned before leaving that I shall be attending <a href="http://aioug.org" target="_blank">AIOUG</a>’s 2nd user group conference <a href="http://www.aioug.org/sangam10.php " target="_blank">Sangam</a>. I got back today morning from the 2 day schedule. It was a fantastic event and definitely, presence of <a href="https://jonathanlewis.wordpress.com/" target="_blank">Jonathan Lewis</a> was the key attraction of it. I am too small to say anything about Jonathan Lewis so would just say that it was my pleasure and honor to attend his two, half day sessions about SQL optimization and see in person that how great and knowledgeable he is! I can’t say enough about him except this that I was completely mesmerized by him, by his knowledge and his willingness to share it all with people like us! I always wanted to attend his session and it was just a dream come true that I got a chance at this user conference. It was Jonathan’s first ever visit to India and I am just so glad that I didn’t miss this golden opportunity. This was my first ever chance to see him presenting( have attended his webinars before) and all I can say is that he is just awesome! Here is a snapshot of him when he was delivering his session, </p>
<p><a href="http://blog.aristadba.com/wp-content/uploads/2010/09/IMG_5031.jpg"><img title="IMG_5031" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_5031" src="http://blog.aristadba.com/wp-content/uploads/2010/09/IMG_5031_thumb.jpg" width="244" border="0" /></a>&#160; </p>
<p>In addition to Jonathan Lewis, this presentation became so special for me since I got a chance to meet my friend and an <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:2969968348560672::NO:4:P4_ID:268" target="_blank">Oracle ACE Director</a> , <a href="http://www.dbisonline.com" target="_blank">Francisco Munoz Alvarez</a> in person. Though we interact almost every day on various web platforms but this was going to be the first ever chance when I was going to meet him in person and I am just so glad that it happened in this conference where he came to gave two presentations. It was for the first time that I saw him presenting and he was just so good!&#160; We also did spend some time after the conference was over munching snacks and discussing tons of things <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . It was just so good to meet him and I hope we do meet again very soon!&#160; Here is a pic of him presenting at the same conference, </p>
<p><a href="http://blog.aristadba.com/wp-content/uploads/2010/09/IMG_5033.jpg"><img title="IMG_5033" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_5033" src="http://blog.aristadba.com/wp-content/uploads/2010/09/IMG_5033_thumb.jpg" width="244" border="0" /></a> </p>
<p>In addition to Jonathan and Francisco, the conference also had the presentations from <a href="http://www.rittmanmead.com/" target="_blank">Mark Rittman</a>, <a href="http://iggyfernandez.wordpress.com/" target="_blank">Iggy Fernandez</a>, <a href="http://mvallath.wordpress.com/" target="_blank">Murali Vallath</a> and <a href="http://viveklsharma.wordpress.com/" target="_blank">Vivek Sharma</a>. It was a high doze of hard core technical content for 2 days <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Overall, it was a very good event and I am glad that I did attend it with my friends <a href="http://amardeepsidhu.com" target="_blank">Amardeep Sidhu</a>, <a href="http://twitter.com/nrjbhatia" target="_blank">Neeraj Bhatia</a> and <a href="http://twitter.com/ankitkgoel" target="_blank">Ankit Goel</a>. We had a great time there and I hope, it would be the same in next year as well. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=163</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I Shall Be At Sangam, Will You&#8230;.</title>
		<link>http://blog.aristadba.com/?p=158</link>
		<comments>http://blog.aristadba.com/?p=158#comments</comments>
		<pubDate>Thu, 02 Sep 2010 03:57:19 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[aioug]]></category>
		<category><![CDATA[sangam]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=158</guid>
		<description><![CDATA[This is just a quick post to say that I shall be leaving today with Amardeep Sidhu , Ankit Goel and Neeraj Bhatia to attend AIOUG’s annual oracle conference Sangam which is happening at Hyderabad this year. If you are also attending, just come and say Hi! I hope it would be good two days [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick post to say that I shall be leaving today with Amardeep Sidhu , Ankit Goel and Neeraj Bhatia to attend <a href="http://www.aioug.org/" target="_blank">AIOUG</a>’s annual oracle conference <a href="http://www.aioug.org/sangam10.php" target="_blank">Sangam</a> which is happening at <a href="http://en.wikipedia.org/wiki/Hyderabad,_India" target="_blank">Hyderabad</a> this year. If you are also attending, just come and say Hi! I hope it would be good two days of Oracle and just Oracle <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . I am not presenting this time so I would have plenty of time to attend my favorite sessions and meet my friend, <a href="http://oraclenz.com/" target="_blank">Francisco Munoz Alvarez</a> and one of the best known Oracle guru’s in this world, <a href="http://jonathanlewis.wordpress.com/" target="_blank">Jonathan Lewis</a>. </p>
<p>Its time for me to get going and do the last minute checks for ticket printouts and everything else. Next stop would be Hyderabad! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=158</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0.1 Available And Applied&#8230;.</title>
		<link>http://blog.aristadba.com/?p=150</link>
		<comments>http://blog.aristadba.com/?p=150#comments</comments>
		<pubDate>Fri, 30 Jul 2010 07:24:26 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[genernal]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=150</guid>
		<description><![CDATA[Just when I was writing the last post, I saw the notification that WordPress 3.0.1 is available for the download. Its not much time since the last upgrade was released but nonetheless, I have upgraded my blog to the current release and it happened like a charm .]]></description>
			<content:encoded><![CDATA[<p>Just when I was writing the last post, I saw the notification that <a href="http://wordpress.org/news/2010/07/wordpress-3-0-1/" target="_blank">WordPress 3.0.1</a> is available for the download. Its not much time since the last upgrade was released but nonetheless, I have upgraded my blog to the current release and it happened like a charm <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=150</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast Recovery Using Incrementally Updated Image Copies&#8230;.</title>
		<link>http://blog.aristadba.com/?p=149</link>
		<comments>http://blog.aristadba.com/?p=149#comments</comments>
		<pubDate>Fri, 30 Jul 2010 07:14:57 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[genernal]]></category>
		<category><![CDATA[image copy]]></category>
		<category><![CDATA[recovery]]></category>
		<category><![CDATA[rman]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=149</guid>
		<description><![CDATA[Its always a requirement when we are doing recovery that it must get complete as soon as possible. Also, the time taken to do the restore should be as minimum as possible. A pretty tough thing to do if you are managing a large db of few hundred gigabytes or terabytes. Fortunately, as the requirements [...]]]></description>
			<content:encoded><![CDATA[<p>Its always a requirement when we are doing recovery that it must get complete as soon as possible. Also, the time taken to do the restore should be as minimum as possible. A pretty tough thing to do if you are managing a large db of few hundred gigabytes or terabytes. Fortunately, as the requirements do keep coming, Oracle database also keeps on bringing new features to cater those requirements. This post is about one such feature which surely can help immensely when there is a requirement to get things done ASAP!</p>
<p>We know that the backups can be done in two ways, either by full or by incremental. The full backup is a must and is needed even for doing an incremental backup. The time taken for the full backup surely would be high and to bring it down, its suggested to do the incremental backup. There is a &quot;fast incremental backup&quot; also possible using the block change tracking file but that&#8217;s not the topic of this post today. For Change Tracking file and how it works, I would suggest to read the excellent paper from Alex which goes in real deep about it. So coming back to the backups, we know this as well that only the backup sets are elgible get backed up incrementally. The image copies are not elgible for being a part of the incremental backup and must be backed up full all the time. Actually, there is still chance to do the backup of image copies in the incremental manner but that&#8217;s only &quot;level 0&quot; which is actually nothing but the full backup only. So if we are expecting a lot of changes happening to our db and we have chosen to take the backup of the database via image copies, its a must to create new copies to capture the new values entered in the db.This is not a very good thing to do if you have many many datafiles which are also very large in size. Also, in the case of the recovery, it would be a tedious thing to first restore and then recover those copies! The best way would be that if somehow we could update the already backed up image copies with the current data and also can use them for recovery without restoring them! Wouldn&#8217;t that be faster? If your answer is yes, its possible from 10g onwards using the &quot;recoverable image copies&quot; via incremental backups.    <br />The concept of &quot;recoverable image copies&quot; and incremental backup is that the image copy which you would be creating, would be constantly updated by oracle when the next time an incremental backup call for it would be issued! For doing this, the incremental backups that you would be creating , would be applied to the image copies, thus making them &quot;refreshed&quot; with the current work done within db. Since the resultant image copies would be having all the data available in them, they can be used right away for doing the recovery and on top of it, without even being required to be restored. We can &quot;switch&quot; to these &quot;updated copies&quot; and thus can start using them right away! Think about a situation that you have your datafiles stored on Disk 1 and it has got bad sectors now. There are updated image copies available for you on Disk2. With this mechanism, you can simply switch over to those copies and once you are done with the troubleshooting of your original drive, you can switch back to it! And in this whole process, the only thing that would be moved will be the file location pointers within the control file which would now start pointing towards the image copies! Isn&#8217;t that a &quot;fast recovery&quot; ?</p>
<p>Enough of talking, let&#8217;s see it in action. I am using a 11201 db on OEL5 here with the name called Sample! Its having couple of tablespaces which did come at the time of the creation of this db. I shall add to it one new tablespace which would be our candidate for testing. Here is the information about the db first,    
<pre class="brush:sql">SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 29 09:03:54 2010 

Copyright (c) 1982, 2009, Oracle.&#160; All rights reserved. 

Connected to: 

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production 

With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SQL&gt; select name from V$database; 

NAME 

--------- 

SAMPLE 

SQL&gt; 

SQL&gt; 

SQL&gt; select name from V$datafile; 

NAME 

-------------------------------------------------------------------------------- 

/u01/app/oracle/oradata/sample/system01.dbf 

/u01/app/oracle/oradata/sample/sysaux01.dbf 

/u01/app/oracle/oradata/sample/undotbs01.dbf 

/u01/app/oracle/oradata/sample/users01.dbf
</pre>
<p>I shall now create a new tablespace and also a table within that tablespace which would contain some initial data. This table would go into the backup with this initial data and then we shall add more data to it which would be updated to the previously done backup using the incremenal methodology!Also, we shall take the backup as well.</p>
<p>
<pre class="brush:sql">SQL&gt; create tablespace testtbs
  2&#160; datafile 

3&#160; '/u01/app/oracle/oradata/sample/testtbs.dbf' size 100m; 

Tablespace created. 

SQL&gt; create table emp tablespace testtbs as select * from scott.emp; 

Table created. 

Now, using RMAN, we shall initiate the backup via image copies. Take a closer look at the command, 



RMAN&gt; configure device type disk parallelism 4; 

using target database control file instead of recovery catalog
  new RMAN configuration parameters: 

CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET; 

new RMAN configuration parameters are successfully stored 

RMAN&gt; backup incremental level 1 for recover of copy tag 'testtbs_incr' database; 

Starting backup at 29-JUL-10
  allocated channel: ORA_DISK_1 

channel ORA_DISK_1: SID=20 device type=DISK 

allocated channel: ORA_DISK_2 

channel ORA_DISK_2: SID=142 device type=DISK 

allocated channel: ORA_DISK_3 

channel ORA_DISK_3: SID=21 device type=DISK 

allocated channel: ORA_DISK_4 

channel ORA_DISK_4: SID=143 device type=DISK 

no parent backup or copy of datafile 1 found 

no parent backup or copy of datafile 2 found 

no parent backup or copy of datafile 5 found 

no parent backup or copy of datafile 3 found 

no parent backup or copy of datafile 4 found 

channel ORA_DISK_1: starting datafile copy 

input datafile file number=00001 name=/u01/app/oracle/oradata/sample/system01.dbf 

channel ORA_DISK_2: starting datafile copy 

input datafile file number=00002 name=/u01/app/oracle/oradata/sample/sysaux01.dbf 

channel ORA_DISK_3: starting datafile copy 

input datafile file number=00005 name=/u01/app/oracle/oradata/sample/testtbs.dbf 

channel ORA_DISK_4: starting datafile copy 

input datafile file number=00003 name=/u01/app/oracle/oradata/sample/undotbs01.dbf 

output file name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_undotbs1_653b1sl7_.dbf tag=TESTTBS_INCR RECID=1 STAMP=725645515 

channel ORA_DISK_4: datafile copy complete, elapsed time: 00:00:43 

channel ORA_DISK_4: starting incremental level 1 datafile backup set 

channel ORA_DISK_4: specifying datafile(s) in backup set 

output file name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_sysaux_653b1sk5_.dbf tag=TESTTBS_INCR RECID=2 STAMP=725645539 

channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:43 

channel ORA_DISK_2: starting datafile copy 

input datafile file number=00004 name=/u01/app/oracle/oradata/sample/users01.dbf 

including current control file in backup set 

channel ORA_DISK_4: starting piece 1 at 29-JUL-10 

channel ORA_DISK_4: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_ncnn1_TESTTBS_INCR_653b34w8_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_4: backup set complete, elapsed time: 00:00:01 

channel ORA_DISK_4: starting incremental level 1 datafile backup set 

channel ORA_DISK_4: specifying datafile(s) in backup set 

including current SPFILE in backup set 

channel ORA_DISK_4: starting piece 1 at 29-JUL-10 

output file name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_users_653b36by_.dbf tag=TESTTBS_INCR RECID=3 STAMP=725645544 

channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:05 

channel ORA_DISK_4: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnsn1_TESTTBS_INCR_653b369y_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_4: backup set complete, elapsed time: 00:00:04 

output file name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf tag=TESTTBS_INCR RECID=4 STAMP=725645551 

channel ORA_DISK_3: datafile copy complete, elapsed time: 00:01:06 

output file name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_system_653b3bqy_.dbf tag=TESTTBS_INCR RECID=5 STAMP=725645591 

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:36 

Finished backup at 29-JUL-10</pre>
</p>
<p>There are couple of interesting things here. First, we are taking a backup via image copy format. The second thing, there is an option added here which says &quot;recover of copy&quot;. Yes, I did say backup and that&#8217;s what we did too but since we are talking about incrementally updated copies, this command contains the trick. Before opening the cards, the last interesting bit is mentioning of the incremental level 1 right away when we haven&#8217;t taken the level 0 backup yet! Again, this is how this image copy mechanism works!</p>
<p>What is happening is that we have asked the RMAN to take our database via image copy format with a supplied tag to it from us. But we have also mentioned that this backup, if is already done , should be just updating the previously done backup. So if we would had done a backup before, the recover command would had kicked and would had &quot;updated&quot; our previously dont image copy backup but if there is no level 0 backup is there to start with, Oracle would first take a level 0 backup only. This is also visible from the command output as available which does say that there was no parent backup found. So if there was no level 0 backup to start with, Oracle would take this level of backup on day 1. On the next day, the backup command would create&#160; level 1 backup whose base would be the previous day&#8217;s level 0 backup. At this moment, for both day 1 and 2, only backup command is the one which would be working. Now, we do have a level 0 and a level 1 backup available with us. On day 3,the backup command would again create an incremental level 1 backup ranging the changes done from day 2 to day 3. Also, the Recover command would kick in now and would update the day 2 image copies with the incremental backup and the same process would keep on going on the subsequent days. For the identification of the datafiles which need to be updated like this, the use of the TAG is a must as this is the way through which the backup and recover commands would work with each other. So at any point, you have&#160; updated image copies, incremental backups and the archived files to do the recovery! You would use the image copy, apply the incremental backup over it and wuold use the archive log files to update them with the latest work done in the db.<br />
  <br />So, we have a backup that we have taken now as level 0 backup. Let&#8217;s add some data to our table EMP. </p>
<p></p>
<p>
<pre class="brush:sql">SQL&gt; select count(*) from emp;
  COUNT(*) 

---------- 

14 



SQL&gt; insert into emp select * from emp; 

14 rows created. 

SQL&gt; / 

28 rows created. 

SQL&gt; / 

56 rows created. 

SQL&gt; / 

112 rows created. 

SQL&gt; / 

224 rows created. 

SQL&gt; / 

448 rows created. 

SQL&gt; / 

896 rows created. 

SQL&gt; / 

1792 rows created. 

SQL&gt; / 

3584 rows created. 

SQL&gt; / 

7168 rows created. 

SQL&gt; / 

14336 rows created. 

SQL&gt; / 

28672 rows created. 

SQL&gt; / 

57344 rows created. 

SQL&gt; commit; 

Commit complete. 

SQL&gt; select name from V$datafile
  &#160; 2&#160; ; 

NAME
  -------------------------------------------------------------------------------- 

/u01/app/oracle/oradata/sample/system01.dbf 

/u01/app/oracle/oradata/sample/sysaux01.dbf 

/u01/app/oracle/oradata/sample/undotbs01.dbf 

/u01/app/oracle/oradata/sample/users01.dbf 

/u01/app/oracle/oradata/sample/testtbs.dbf 

SQL&gt; select count(*) from emp; 

&#160; COUNT(*)
  ---------- 

&#160;&#160;&#160; 114688 

SQL&gt; </pre>
</p>
<p>So we have enough rows inserted into the table to make sure that in the next backup, there would be surely some new data that would be added to the backup files. Let’s some check some more things about the available tablespace and also about the backups that we have created. </p>
<p>Since we are wiling to update our image copy with the incremental backup, we can verify that its indeed update by the comparisons of the checkpoint scn of it before and after the recovery. If we check the copy of the tablespace TESTTBS that we have created, it would show the current checkpoint scn of it,<br />
  </p>
<p>
<pre class="brush:sql">RMAN&gt; list copy of tablespace testtbs; 

List of Datafile Copies
  ======================= 

Key&#160;&#160;&#160;&#160; File S Completion Time Ckp SCN&#160;&#160;&#160; Ckp Time&#160;&#160;&#160;&#160;&#160;&#160; ------- ---- - --------------- ---------- --------------- 

4&#160;&#160;&#160;&#160;&#160;&#160; 5&#160;&#160;&#160; A 29-JUL-10&#160;&#160;&#160;&#160;&#160;&#160; 804275&#160;&#160;&#160;&#160; 29-JUL-10&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; Name: /u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; Tag: TESTTBS_INCR</pre>
</p>
<p>So the number is &quot;804275&quot;. We shall use it to see whether we have got the image copies updated or not. Since we have added a lot from our intial backup, we shall kick in the backup again. This time, as we do have a level 0 backup already with us, the backup done would be a level 1 backup.<br />
  </p>
<p>
<pre class="brush:sql">RMAN&gt; backup incremental level 1 for recover of copy tag 'testtbs_incr' database; 

Starting backup at 29-JUL-10
  using channel ORA_DISK_1 

using channel ORA_DISK_2 

using channel ORA_DISK_3 

using channel ORA_DISK_4 

channel ORA_DISK_1: starting incremental level 1 datafile backup set 

channel ORA_DISK_1: specifying datafile(s) in backup set 

input datafile file number=00001 name=/u01/app/oracle/oradata/sample/system01.dbf 

channel ORA_DISK_1: starting piece 1 at 29-JUL-10 

channel ORA_DISK_2: starting incremental level 1 datafile backup set 

channel ORA_DISK_2: specifying datafile(s) in backup set 

input datafile file number=00002 name=/u01/app/oracle/oradata/sample/sysaux01.dbf 

input datafile file number=00004 name=/u01/app/oracle/oradata/sample/users01.dbf 

channel ORA_DISK_2: starting piece 1 at 29-JUL-10 

channel ORA_DISK_3: starting incremental level 1 datafile backup set 

channel ORA_DISK_3: specifying datafile(s) in backup set 

input datafile file number=00005 name=/u01/app/oracle/oradata/sample/testtbs.dbf 

input datafile file number=00003 name=/u01/app/oracle/oradata/sample/undotbs01.dbf 

channel ORA_DISK_3: starting piece 1 at 29-JUL-10 

channel ORA_DISK_4: starting incremental level 1 datafile backup set 

channel ORA_DISK_4: specifying datafile(s) in backup set 

including current control file in backup set 

channel ORA_DISK_4: starting piece 1 at 29-JUL-10 

channel ORA_DISK_4: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_ncnn1_TESTTBS_INCR_653bl7yd_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_4: backup set complete, elapsed time: 00:00:08 

channel ORA_DISK_4: starting incremental level 1 datafile backup set 

channel ORA_DISK_4: specifying datafile(s) in backup set 

including current SPFILE in backup set 

channel ORA_DISK_4: starting piece 1 at 29-JUL-10 

channel ORA_DISK_4: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnsn1_TESTTBS_INCR_653blj2q_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_4: backup set complete, elapsed time: 00:00:04 

channel ORA_DISK_2: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bl43m_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_2: backup set complete, elapsed time: 00:00:27 

channel ORA_DISK_1: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bl456_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:39 

channel ORA_DISK_3: finished piece 1 at 29-JUL-10 

piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bm4x8_.bkp tag=TESTTBS_INCR comment=NONE 

channel ORA_DISK_3: backup set complete, elapsed time: 00:00:49 

Finished backup at 29-JUL-10</pre>
</p>
<p>So the backup is done. This backup would be used to update the previously created image copies. As this is the current backup, there would be a difference in the checkpoint scn of it. Let’ssee the current backup of our tablespace and compare the checkpoint scn that we have,</p>
<p>
<pre class="brush:sql">RMAN&gt; list backup of tablespace testtbs; 

List of Backup Sets
  =================== 

BS Key&#160; Type LV Size&#160;&#160;&#160;&#160;&#160;&#160; Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ --------------- 

7&#160;&#160;&#160;&#160;&#160;&#160; Incr 1&#160; 6.05M&#160;&#160;&#160;&#160;&#160; DISK&#160;&#160;&#160;&#160;&#160;&#160;&#160; 00:00:42&#160;&#160;&#160;&#160; 29-JUL-10&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; BP Key: 7&#160;&#160; Status: AVAILABLE&#160; Compressed: NO&#160; Tag: TESTTBS_INCR 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; Piece Name: /u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bm4x8_.bkp 

&#160; List of Datafiles in backup set 7 

&#160; File LV Type Ckp SCN&#160;&#160;&#160; Ckp Time&#160; Name 

&#160; ---- -- ---- ---------- --------- ---- 

&#160; 5&#160;&#160;&#160; 1&#160; Incr 804762&#160;&#160;&#160;&#160; 29-JUL-10 /u01/app/oracle/oradata/sample/testtbs.dbf</pre>
</p>
<p>So the checkpoint scn of the backup of the tablespace TESTTBS is 804762 which is indeed higher than our previously done image copy. Just for the sake of comparison, let’s check one more time the image copy that we created. </p>
<p>
<pre class="brush:sql">RMAN&gt; list copy of tablespace testtbs; 

List of Datafile Copies
  ======================= 

Key&#160;&#160;&#160;&#160; File S Completion Time Ckp SCN&#160;&#160;&#160; Ckp Time&#160;&#160;&#160;&#160;&#160;&#160; ------- ---- - --------------- ---------- --------------- 

4&#160;&#160;&#160;&#160;&#160;&#160; 5&#160;&#160;&#160; A 29-JUL-10&#160;&#160;&#160;&#160;&#160;&#160; 804275&#160;&#160;&#160;&#160; 29-JUL-10&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; Name: /u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; Tag: TESTTBS_INCR </pre>
</p>
<p>Indeed its different than the backup! Its time now to recover this image copy with the current backup and archive logs, </p>
<p>
<pre class="brush:sql">RMAN&gt; recover copy of tablespace testtbs with tag 'testtbs_incr'; 

Starting recover at 29-JUL-10
  using channel ORA_DISK_1 

using channel ORA_DISK_2 

using channel ORA_DISK_3 

using channel ORA_DISK_4 

channel ORA_DISK_1: starting incremental datafile backup set restore 

channel ORA_DISK_1: specifying datafile copies to recover 

recovering datafile copy file number=00005 name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bm4x8_.bkp 

channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bm4x8_.bkp tag=TESTTBS_INCR 

channel ORA_DISK_1: restored backup piece 1 

channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 

Finished recover at 29-JUL-10</pre>
</p>
<p>Let’s compare both backup and image copy now with each other on the basis of their checkpoint scn’s, </p>
<p>
<pre class="brush:sql">RMAN&gt; list backup of tablespace testtbs; 

List of Backup Sets
  =================== 

BS Key&#160; Type LV Size&#160;&#160;&#160;&#160;&#160;&#160; Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ --------------- 

7&#160;&#160;&#160;&#160;&#160;&#160; Incr 1&#160; 6.05M&#160;&#160;&#160;&#160;&#160; DISK&#160;&#160;&#160;&#160;&#160;&#160;&#160; 00:00:42&#160;&#160;&#160;&#160; 29-JUL-10&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; BP Key: 7&#160;&#160; Status: AVAILABLE&#160; Compressed: NO&#160; Tag: TESTTBS_INCR 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; Piece Name: /u01/app/oracle/flash_recovery_area/SAMPLE/backupset/2010_07_29/o1_mf_nnnd1_TESTTBS_INCR_653bm4x8_.bkp 

&#160; List of Datafiles in backup set 7 

&#160; File LV Type Ckp SCN&#160;&#160;&#160; Ckp Time&#160; Name 

&#160; ---- -- ---- ---------- --------- ---- 

&#160; 5&#160;&#160;&#160; 1&#160; Incr 804762&#160;&#160;&#160;&#160; 29-JUL-10 /u01/app/oracle/oradata/sample/testtbs.dbf 

RMAN&gt; list copy of tablespace testtbs; 

List of Datafile Copies
  ======================= 

Key&#160;&#160;&#160;&#160; File S Completion Time Ckp SCN&#160;&#160;&#160; Ckp Time&#160;&#160;&#160;&#160;&#160;&#160; ------- ---- - --------------- ---------- --------------- 

6&#160;&#160;&#160;&#160;&#160;&#160; 5&#160;&#160;&#160; A 29-JUL-10&#160;&#160;&#160;&#160;&#160;&#160; 804762&#160;&#160;&#160;&#160; 29-JUL-10&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; Name: /u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; Tag: TESTTBS_INCR</pre>
</p>
<p>As expected, both have the same checkpoint SCN now and this does mean that the image copy is incrementally updated with our previous backup and is now containing the most current information. So we have an incrementally updated image copy available with us. Its time now to put this into action and simulate a datafile loss due to a faulty hardware. Due to this, the file is removed(we won’t remove it though) and also is needed to be recovered ASAP for which the updated image copy would help us. Let’s create the error first by renaming the file, </p>
<p>
<pre class="brush:sql">SQL&gt; !mv /u01/app/oracle/oradata/sample/testtbs.dbf /u01/app/oracle/oradata/sample/testtbs.dbf.orig 

SQL&gt; alter database datafile 5 offline; 

Database altered. 

SQL&gt; alter database datafile 5 online;
  alter database datafile 5 online 

* 

ERROR at line 1: 

ORA-01157: cannot identify/lock data file 5 - see DBWR trace file 

ORA-01110: data file 5: '/u01/app/oracle/oradata/sample/testtbs.dbf' </pre>
</p>
<p>So the file is not found and thus we have to recover it. Since we have the updated copy, we won’t need to restore the image copy and we can simply switch over to it. Let’s do it,</p>
<p>Though the file is switched to the image copy but if we would try to bring this file online ,it won&#8217;t be possible as we would need to apply the archive logs to be applied over it to make it consistent with the rest of the database. Let&#8217;s do this now,</p>
<p>
<pre class="brush:sql">RMAN&gt; switch datafile 5 to copy; 

datafile 5 switched to datafile copy &quot;/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf&quot; 

RMAN&gt; recover datafile 5 ; 

Starting recover at 29-JUL-10
  using channel ORA_DISK_1 

using channel ORA_DISK_2 

using channel ORA_DISK_3 

using channel ORA_DISK_4 

starting media recovery
  media recovery complete, elapsed time: 00:00:01 

Finished recover at 29-JUL-10

So the recovery is complete. Let’s bring the file online now and verify our data from the table that’s its matching with our original count or not. If the recovery is complete, it must match!

SQL&gt; alter database datafile 5 online; 

Database altered. 

SQL&gt; select count(*) from emp; 

&#160; COUNT(*)
  ---------- 

&#160;&#160;&#160; 114688</pre>
</p>
<p>Bingo!! </p>
<p>So using the image copy, we have very simply and quickly have recovered our lost datafile. Let’s verify this by looking at the file name and path. If its indeed switched, the path and name must reflect towards the backup location of the file, </p>
<p>
<pre class="brush:sql">RMAN&gt; report schema; 

Report of database schema for database with db_unique_name SAMPLE 

List of Permanent Datafiles
  =========================== 

File Size(MB) Tablespace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; RB segs Datafile Name 

---- -------- -------------------- ------- ------------------------ 

1&#160;&#160;&#160; 680&#160;&#160;&#160;&#160;&#160; SYSTEM&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/system01.dbf 

2&#160;&#160;&#160; 450&#160;&#160;&#160;&#160;&#160; SYSAUX&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/sysaux01.dbf 

3&#160;&#160;&#160; 75&#160;&#160;&#160;&#160;&#160;&#160; UNDOTBS1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/undotbs01.dbf 

4&#160;&#160;&#160; 5&#160;&#160;&#160;&#160;&#160;&#160;&#160; USERS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/users01.dbf 

5&#160;&#160;&#160; 100&#160;&#160;&#160;&#160;&#160; TESTTBS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

List of Temporary Files
  ======================= 

File Size(MB) Tablespace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Maxsize(MB) Tempfile Name 

---- -------- -------------------- ----------- -------------------- 

1&#160;&#160;&#160; 29&#160;&#160;&#160;&#160;&#160;&#160; TEMP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 32767&#160;&#160;&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/temp01.dbf</pre>
</p>
<p>So we can see that the control file is now pointing for the tablespace TESTTBS to the backup location only which just confirms our recovery using the incrementally updated image copies!</p>
<p>In case, you are willing to bring the file back to its original location, like in our case, to the ORADATA folder, its very simple. All what we need to do is to create a backup copy of this datafile at the required location and switch it back to that destination. Let’s do that as well.</p>
<p>Before doing the backup of the datafile, we shall add some more data to the datafile and will verify once the switching is over that it has come or not. So first, let’s insert some more data to the table,</p>
<p>
<pre class="brush:sql">SQL&gt; insert into emp select * from emp; 

114688 rows created. 

SQL&gt; commit; 

Commit complete. 

SQL&gt; select count(*) from emp; 

&#160; COUNT(*)
  ---------- 

&#160;&#160;&#160; 229376</pre>
</p>
<p>Now, we shall take the backup of the datafile as image copy to our required destination. </p>
<p>
<pre class="brush:sql">RMAN&gt; backup as copy to destination '/u01/app/oracle/oradata/sample' datafile 5; 

Starting backup at 29-JUL-10
  using channel ORA_DISK_1 

using channel ORA_DISK_2 

using channel ORA_DISK_3 

using channel ORA_DISK_4 

channel ORA_DISK_1: starting datafile copy 

input datafile file number=00005 name=/u01/app/oracle/flash_recovery_area/SAMPLE/datafile/o1_mf_testtbs_653b37bz_.dbf 

output file name=/u01/app/oracle/oradata/sample/SAMPLE/datafile/o1_mf_testtbs_653cbrlg_.dbf tag=TAG20100729T163328 RECID=7 STAMP=725646812 

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 

Finished backup at 29-JUL-10</pre>
</p>
<p>Before we can switch, the datafile must be offline so let’s do that followed by the switching of the file and recovering it. We shall query the table after bringing the datafile online to verify that our newly inserted data has come or not.</p>
<p>
<pre class="brush:sql">RMAN&gt; sql &quot;alter database datafile 5 offline&quot;; 

sql statement: alter database datafile 5 offline 

RMAN&gt; switch datafile 5 to copy; 

datafile 5 switched to datafile copy &quot;/u01/app/oracle/oradata/sample/SAMPLE/datafile/o1_mf_testtbs_653cbrlg_.dbf&quot; 

RMAN&gt; recover datafile 5; 

Starting recover at 29-JUL-10
  using channel ORA_DISK_1 

using channel ORA_DISK_2 

using channel ORA_DISK_3 

using channel ORA_DISK_4 

starting media recovery
  media recovery complete, elapsed time: 00:00:01 

Finished recover at 29-JUL-10 

RMAN&gt; sql &quot;alter database datafile 5 online&quot;; 

sql statement: alter database datafile 5 online

So the recovery is done. Let’s check the file name and path to verify that its switched back. We shall use RMAN to do so,

RMAN&gt; report schema; 

Report of database schema for database with db_unique_name SAMPLE 

List of Permanent Datafiles
  =========================== 

File Size(MB) Tablespace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; RB segs Datafile Name 

---- -------- -------------------- ------- ------------------------ 

1&#160;&#160;&#160; 680&#160;&#160;&#160;&#160;&#160; SYSTEM&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/system01.dbf 

2&#160;&#160;&#160; 450&#160;&#160;&#160;&#160;&#160; SYSAUX&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/sysaux01.dbf 

3&#160;&#160;&#160; 75&#160;&#160;&#160;&#160;&#160;&#160; UNDOTBS1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/undotbs01.dbf 

4&#160;&#160;&#160; 5&#160;&#160;&#160;&#160;&#160;&#160;&#160; USERS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/users01.dbf 

5&#160;&#160;&#160; 100&#160;&#160;&#160;&#160;&#160; TESTTBS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ***&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/SAMPLE/datafile/o1_mf_testtbs_653cbrlg_.dbf 

List of Temporary Files
  ======================= 

File Size(MB) Tablespace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Maxsize(MB) Tempfile Name 

---- -------- -------------------- ----------- -------------------- 

1&#160;&#160;&#160; 29&#160;&#160;&#160;&#160;&#160;&#160; TEMP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 32767&#160;&#160;&#160;&#160;&#160;&#160; /u01/app/oracle/oradata/sample/temp01.dbf </pre>
</p>
<p>Since we had mentioned the location to the ORADATA folder, the file has been shifted over it. Let’s check the table row count as a final verification,</p>
<p>
<pre class="brush:sql">SQL&gt; select count(*) from emp; 

&#160; COUNT(*)
  ---------- 

&#160;&#160;&#160; 229376</pre>
</p>
<p>Perfect!!!!</p>
<p>Though being a very powerful and relatively easy feature, I still find most of the dba’s unaware about it or if aware too, unsure how to use it. Hope the above demo would help to understand this feature somewhat and for complete understanding, nothing can beat oracle documentation,</p>
<p><a href="http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/rcmbckba.htm#i1034163">http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/rcmbckba.htm#i1034163</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=149</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The True Legends&#8230;.</title>
		<link>http://blog.aristadba.com/?p=147</link>
		<comments>http://blog.aristadba.com/?p=147#comments</comments>
		<pubDate>Fri, 23 Jul 2010 05:30:30 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=147</guid>
		<description><![CDATA[I am too small to say anything about these people! Just a collage of the who’s who of the computer industry who have changed for forever the ways, thinking and lives of millions in this world! True legends, true gurus! Thanks to Sidhu for sending me this pic! I always have believed in Steve Jobs [...]]]></description>
			<content:encoded><![CDATA[<p>I am too small to say anything about these people! Just a collage of the who’s who of the computer industry who have changed for forever the ways, thinking and lives of millions in this world! True legends, true gurus! Thanks to Sidhu for sending me this pic! </p>
<p><a href="http://blog.aristadba.com/wp-content/uploads/2010/07/gurus.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gurus" border="0" alt="gurus" src="http://blog.aristadba.com/wp-content/uploads/2010/07/gurus_thumb.jpg" width="415" height="335" /></a> </p>
<p>I always have believed in <a href="http://en.wikipedia.org/wiki/Steve_Jobs" target="_blank">Steve Jobs</a> saying “stay hungry, stay foolish” and looking at these legends, it just again strikes me that how much lesser knowledge I have! Hats off to you guys! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=147</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Case Used By My Query In Sql*Plus&#8230;.</title>
		<link>http://blog.aristadba.com/?p=144</link>
		<comments>http://blog.aristadba.com/?p=144#comments</comments>
		<pubDate>Mon, 05 Jul 2010 17:31:01 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[sqlplus]]></category>
		<category><![CDATA[trace]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=144</guid>
		<description><![CDATA[There was an interesting question which me and two other delegates were discussing in the last week&#8217;s session. One delegate asked that how can we make the queries fired use a particular case? I couldn’t recall any parameter which does so(any guesses?) . One solution which I proposed was to put all the queries in [...]]]></description>
			<content:encoded><![CDATA[<p>There was an interesting question which me and two other delegates were discussing in the last week&#8217;s session. One delegate asked that how can we make the queries fired use a particular case? I couldn’t recall any parameter which does so(any guesses?) . One solution which I proposed was to put all the queries in the stored programs. If they would be there in the stored procedures, it would be not possible to play around with their case-sensitivity. This also serves the mantra that all the things related to the database must remain within the database only. Another solution proposed by one delegate was to use triggers to make this kind of thing possible. I am not sure that how using triggers it would be possible but anyways, that’s not the point of this post. </p>
<p>So in this discussion, since we were using good’ol, terminal prompt, I just recalled that there is an option in this client tool to set the case to whatever we want! The default setting of this is set to “mixed” . The delegates immediately checked the parameter and changed it to UPPER case and then also to LOWER. Well, nothing changed <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . See for yourself,</p>
<pre class="brush:sql">

SQL&gt; set sqlcase upper
  SQL&gt; show sqlcase 

sqlcase UPPER 

SQL&gt; select * from scott.dept; 

&#160;&#160;&#160; DEPTNO DNAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; LOC
  ---------- -------------- ------------- 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10 ACCOUNTING&#160;&#160;&#160;&#160; NEW YORK 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 20 RESEARCH&#160;&#160;&#160;&#160;&#160;&#160; DALLAS 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 30 SALES&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CHICAGO 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 40 OPERATIONS&#160;&#160;&#160;&#160; BOSTON 

SQL&gt; set sqlcase lower
  SQL&gt; select * from scott.dept; 

&#160;&#160;&#160; DEPTNO DNAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; LOC
  ---------- -------------- ------------- 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10 ACCOUNTING&#160;&#160;&#160;&#160; NEW YORK 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 20 RESEARCH&#160;&#160;&#160;&#160;&#160;&#160; DALLAS 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 30 SALES&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CHICAGO 

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 40 OPERATIONS&#160;&#160;&#160;&#160; BOSTON
</pre>
<p>So what does this setting did actually? Well since its a client tool, the change of the case send the query , including everything with it, like literals and all, in the proposed case. But how do we go and check and confirm it? </p>
<p>Since sql*plus is a client tool, the best way to check such thing was to enable client side network tracing. For this, we entered the following entries into the sqlnet.ora</p>
<p><a href="http://download.oracle.com/docs/cd/E11882_01/network.112/e10835/sqlnet.htm#BIIIJHGH" target="_blank"><strong>TRACE_LEVEL_CLIENT= support</strong></a><strong> :</strong> This parameter would enable the tracing for the OCI client connections and the level is set to gather the maximum information. This is not something which should be used in a normal environment/condition because the information collected would be huge! </p>
<p><a href="http://download.oracle.com/docs/cd/E11882_01/network.112/e10835/sqlnet.htm#BIIIJHGH" target="_blank"><strong>TRACE_DIRECTORY_CLIENT=/tmp</strong></a><strong>:</strong>&#160; This parameter would set the directory where the trace file should go.</p>
<p><a href="http://download.oracle.com/docs/cd/E11882_01/network.112/e10835/sqlnet.htm#BIIHGAED" target="_blank"><strong>DIAG_ADR_ENABLED=OFF</strong></a><strong> :</strong> This parameter would not let the tracing information go to the 11g specific Automatic Diagnostic Repository(ADR) . </p>
<p></p>
<p>So after setting all these parameters, this is how the sqlnet.ora would look.</p>
<pre class="brush:sql">

TRACE_LEVEL_CLIENT=support 

TRACE_DIRECTORY_CLIENT=/tmp 

DIAG_ADR_ENABLED=OFF 

&#160;
</pre>
<p>After that, we connected from sql*plus with the user Scott again and issued the same command, select * from dept , first in lower case and then in upper case. Doing this would create immediately a file in the /tmp with a name like cli_25111.trc. Since we had used the tracing level to support, the file is very huge. So I am going to chop off lots of content from it. Here are the sections which actually we were looking for in the file,</p>
<pre class="brush:sql">

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........|
  [29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 12 73 65&#160; |......se| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 6C 65 63 74 20 2A 20 66&#160; |lect.*.f| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 72 6F 6D 20 64 65 70 74&#160; |rom.dept| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 01 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 01 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: 00 00 00 00&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |....&#160;&#160;&#160; | 

[29-JUN-2010 17:40:57:613] nsbasic_bsd: exit (0) 

[29-JUN-2010 17:40:57:613] nsbasic_brc: entry: oln/tot=0 

[29-JUN-2010 17:40:57:624] nsbasic_brc: type=6, plen=436 

[29-JUN-2010 17:40:57:624] nsbasic_brc: what=1, tot =436

&lt;output trimmed&gt;

[29-JUN-2010 17:41:06:731] nsbasic_bsd: FE FF FF FF FE FF FF FF&#160; |........|
  [29-JUN-2010 17:41:06:731] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 12 53 45 4C&#160; |.....SEL| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 45 43 54 20 2A 20 46 52&#160; |ECT.*.FR| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 4F 4D 20 44 45 50 54 01&#160; |OM.DEPT.| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 01 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00 00 00 00 00 00&#160; |........| 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: 00 00 00&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |...&#160;&#160;&#160;&#160; | 

[29-JUN-2010 17:41:06:732] nsbasic_bsd: exit (0) 

[29-JUN-2010 17:41:06:732] nsbasic_brc: entry: oln/tot=0 

[29-JUN-2010 17:41:06:742] nsbasic_brc: type=6, plen=436 

[29-JUN-2010 17:41:06:742] nsbasic_brc: what=1, tot =436
</pre>
<p>So we can see that the case used by both the queries from the sql*plus tool is changed. Nothing really great? Well did I say that it would be <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ? It was a just something which came across and was interesting so thought to share it! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=144</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0 Out &amp; Live On AristaDBA&#8230;.</title>
		<link>http://blog.aristadba.com/?p=141</link>
		<comments>http://blog.aristadba.com/?p=141#comments</comments>
		<pubDate>Fri, 18 Jun 2010 01:46:51 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[genernal]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=141</guid>
		<description><![CDATA[I just read on WordPress Blog that WordPress 3.0 is out. I did the upgrade right away over my blog and I must say, even the first experience looks really good. There are some fine points mentioned in the blog post about it and I shall also see what’s new but I guess, if you [...]]]></description>
			<content:encoded><![CDATA[<p>I just read on WordPress Blog that <a href="http://wordpress.org/development/2010/06/thelonious/" target="_blank">WordPress 3.0</a> is out. I did the upgrade right away over my blog and I must say, even the first experience looks really good. There are some fine points mentioned in the blog post about it and I shall also see what’s new but I guess, if you haven’t done it yet, you should do it even when you won’t use any new features of it! Isn’t it like doing an upgrade of Oracle db too <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AristaDBA Is Now Oracle ACE&#8230;.</title>
		<link>http://blog.aristadba.com/?p=140</link>
		<comments>http://blog.aristadba.com/?p=140#comments</comments>
		<pubDate>Wed, 09 Jun 2010 18:23:45 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[genernal]]></category>
		<category><![CDATA[ace]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=140</guid>
		<description><![CDATA[Few days back, on fine morning , when I woke up, I saw a tweet from my friend Francisco Munoz who is an Oracle ACE director , that I have been awarded ACE award by Oracle Corp’s Oracle ACE program. Yes, I am an Oracle ACE now and here is my ACE profile. Today, when [...]]]></description>
			<content:encoded><![CDATA[<p>Few days back, on fine morning , when I woke up, I saw a tweet from my friend <a href="http://www.oraclenz.com/" target="_blank">Francisco Munoz</a> who is an <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:2757305384359685::NO:4:P4_ID:268" target="_blank">Oracle ACE director</a> , that I have been awarded ACE award by Oracle Corp’s <a href="http://www.oracle.com/technology/community/oracle_ace/index.html" target="_blank">Oracle ACE program</a>. Yes, I am an Oracle ACE now and here is my <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:1447004400192399::NO:4:P4_ID:2121" target="_blank">ACE profile</a>. Today, when I am sitting here at Banglore, my ACE award has reached my home. I couldn’t resist having a look at it so asked my sister to take a picture of it and send it to me! Well,I must say, it looks bloody awesome! So here are few pics of my ACE award, </p>
<p><a href="http://blog.aristadba.com/wp-content/uploads/2010/06/photo3.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="photo (3)" border="0" alt="photo (3)" src="http://blog.aristadba.com/wp-content/uploads/2010/06/photo3_thumb.jpg" width="184" height="244" /></a> <a href="http://blog.aristadba.com/wp-content/uploads/2010/06/photo1.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="photo (1)" border="0" alt="photo (1)" src="http://blog.aristadba.com/wp-content/uploads/2010/06/photo1_thumb.jpg" width="184" height="244" /></a> <a href="http://blog.aristadba.com/wp-content/uploads/2010/06/photo.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="photo" border="0" alt="photo" src="http://blog.aristadba.com/wp-content/uploads/2010/06/photo_thumb.jpg" width="244" height="177" /></a> </p>
<p>And here is my ACE profile page’s snapshot!</p>
<p><a href="http://blog.aristadba.com/wp-content/uploads/2010/06/AmanACE.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Aman ACE" border="0" alt="Aman ACE" src="http://blog.aristadba.com/wp-content/uploads/2010/06/AmanACE_thumb.jpg" width="244" height="133" /></a> </p>
<p>&#160;</p>
<p>Its an amazing feeling to have this award, I must say! I am really happy and having a feeling of proud that I am a part of such esteemed group.&#160; Its just great to see that you are in those 280 names in this entire world who have got this award and are a part of this club. Its just so overwhelming to see that I am in that elite club whose member list contains names like Jonathan Lewis, Tim Hall, Hans Forbrich, Francisco Munoz and many many more Gurus who are like the pillars and ideals of millions within Oracle community. Words fail me to express what I am feeling at the moment but I must say, I am really really happy!</p>
<p>Thank you so much Francisco for nominating me for ACE award and thanks Oracle ACE program for considering me worthy enough to be awarded by this award! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=140</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Book Review, Oracle Database 11g-Underground Advice For DBAs&#8230;.</title>
		<link>http://blog.aristadba.com/?p=131</link>
		<comments>http://blog.aristadba.com/?p=131#comments</comments>
		<pubDate>Sun, 23 May 2010 04:12:36 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=131</guid>
		<description><![CDATA[I work as an Oracle consultant and most of the part of my work is related to train other Oracle professionals, letting them know that how this marvelous piece of software Oracle database, works! Though, we do discuss many things in the sessions, there are still tons of things which get skipped, either unwillingly because [...]]]></description>
			<content:encoded><![CDATA[<p>I work as an Oracle consultant and most of the part of my work is related to train other Oracle professionals, letting them know that how this marvelous piece of software Oracle database, works! Though, we do discuss many things in the sessions, there are still tons of things which get skipped, either unwillingly because of lack of time,&#160; or willingly because they are better explained than I could in some other book/note. Oracle docs is a mandatory reference from me to the delegates. In addition to it, I&#160; also refer lots of MOS notes, articles, web links and books to my delegates since there is so much that&#8217;s written out there about Oracle at these places which at times, surpass even the standard Oracle docs as well. </p>
<p>Books, though being a very integral part in the learning, need to be very carefully chosen. I normally mention that even though one read 10 (bad) books about Oracle database, he/she still may not learn even a single thing. It takes a lot of effort to write a good book and when such kind of book becomes a part of your library, it becomes an asset of yours. At least, this is true for me for sure since I do purchase a lot of Oracle related books and because I spend my own personal money for this purpose, I take utmost care when I am making a purchasing decision. Today, I want to share with you one such book which I would surely recommend in my next DBA session, </p>
<p>Packt Publishing is doing a great work by giving opportunities to many authors to share their knowledge with the rest of the Oracle community. I got an offer by <a href="http://www.packtpub.com/index" target="_blank">Packt Publishing</a> earlier also to review their title <a href="https://www.packtpub.com/middleware-management-with-oracle-enterprise-manager-grid-control-10g-r5/book?utm_source=aristadba.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_001963" target="_blank">Middleware Management with Oracle Enterprise Manager Grid Control 10g R5</a> by Debu Panda! You can read that review from <a href="http://blog.aristadba.com/?p=97" target="_blank">here</a> . Once again, I have got an opportunity by Packt to review another new title from them, <a href="https://www.packtpub.com/oracle-11g-database-implementations-guide/book" target="_blank"><strong>Oracle Database 11g – Underground Advice for Database Administrators</strong></a> by<strong><em> </em><a href="http://www.linkedin.com/in/aprilcsims" target="_blank">April C.Sims</a>. </strong>April has been working as a senior DBA with Utah University and also maintains an active <a href="http://aprilcsims.wordpress.com/" target="_blank">Oracle related blog.</a></p>
<p>The very first thing that I liked about the book is that it was really concise. I mean, there are not too many chapters,just created to increase the count. Also the distribution of the content within the chapters has also come up very nice. April starts with telling us(which is very very important) that what we should an should NOT do when we are dealing with Oracle database. There are tons of times, I have seen people making things more serious, more worse just by not stopping at the first step where they went wrong and also, by not asking for help when they really need it! In the first chapter, April brings us these key points! A must thing to tell if you ask me!</p>
<p>The second chapter deals the standards that are related to Oracle database. I have seen many databases made and maintained like a complete mess, where the name of the database is something like SR1 which completely fails to tell us anything meaningful about the database, the tablespace and datafile names coming up like <em>mytbs</em> and <em>mydatafile1.dbf</em>. Now surely they are yours but you don’t need to put that in the names too since someone, who would come from outside won’t be able to understand it all. The same is true for the installation which happen where a DBA would like to happen, some times in a properly maintained way and sometimes, just where ever he likes! Sure enough that Oracle would work but in the longer run, this may become a complete mess to deal with. April, in her second chapter, makes us aware about these key points and also tells us how we can deal with them in a better by making us remind that there is an OFA standard given to the Oracle community long time back, which can help in such of kind of things. Also, she tells us about some tools and some references which would help help us whenever we would get struck anywhere.</p>
<p>Chapter 3 is my favorite chapter since I am completely addicted to know how things work within Oracle database internally. In this chapter, April takes us to some not-so-well-explained domains of Oracle like Oracle block dumps and how to read and use them, explains us the working of the internal parts of Oracle database architecture. In addition to these, she also explains to some new goodies offered by 11g like Automatic Memory Management! Overall, its a very interesting chapter and has become my personal favorite as well!</p>
<p>The next chapter deals with something which is now becoming a hot topic everywhere, Maximum Availability! In this chapter, April explains quite well how MAA architecture works and also its related components like ASM, Flashback , Flashback Logs etc. April also explains to us how we can use Grid Control for the same task. This chapter is the starting point for the next two chapters which deal with the technical stuff related to MAA in a more deeper manner.</p>
<p>Subsequent&#160; chapters 5 and 6, as I said just now, go deeper into the MAA and in these, April shares with us some of the key components of it like <em>Dataguard </em>and <em>Flashback</em> which help a lot to achieve the minimum downtime approach requested by many shops. April covers up almost all what is needed to become highly available. A good description of complex technologies like <em>Dataguard</em> and also, how to do recoveries using both manual and 11g specific automated ways, give a very valuable information. April also explains quite extensively a very important and good tool, RMAN and its various uses, including the details of how to use it to make standby database in a very effective manner. </p>
<p>Since 11g is now the most latest release of Oracle database, there are and would be lots of migrations that would be happening from the pervious versions to 11g. The chapter 7 deals with the same topic and in it, April explains to us various ways to achieve a flawless migration to 11g with different approaches. Using this chapter as a reference and also the database upgrade guide, I believe , one would know everything that he needs to do a successful up gradation to 11g. </p>
<p>The last chapter, is a collection of information of various useful tools that can come very handy when it comes to performance tuning. Staring from <em>ORION, ADDM, ASH</em> , April explains to us <em>Statspack, AWR</em> and also the performance pages of the Enterprise Manager which are very helpful in order to both diagnose and troubleshoot performance related issues. April, in this chapter, not only talks about database related tuning tool but also touches the query tuning as well, explaining various things related to it like SPM , how statistics and optimizer works! Overall, the chapter comes up as a good reference for the performance tuning related material.</p>
<p>In addition to the material written by April based on her insights and experiences with Oracle database, she has also put up in almost every topic, a very extensive listing of Oracle’s <a href="https://support.oracle.com" target="_blank">My Oracle Support(MOS)</a> document note ids. Its always very difficult to find the right document, especially when you need it the most, so this listing is very useful IMO! Those who are familiar with MOS, must agree to this that its not an easy task to find the right note for the right topic so kudos to April for doing efforts and collecting these documents id’s for us. </p>
<p>As I said before too, a good book is always going to remain useful and this book from April, is one of those few good ones! The book content is rich and also the language chosen is simple, making it a very good read even when it deals with such a complex technology like Oracle database. A good work done by April and a recommended book! </p>
<p>The review, can’t be called complete without me saying thanks to Packt Publishing for two things. One, for giving me an opportunity to get my hands on this book and review it and second, for getting this book out for Oracle community! As much effort it takes to write a good piece of literature, the same goes for getting it furnished and bringing it out for the public and Packt is going a great work in it! Hope we shall see more good Oracle related titles coming from Packt in the future as well! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=131</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Good Blog To Read&#8230;.</title>
		<link>http://blog.aristadba.com/?p=130</link>
		<comments>http://blog.aristadba.com/?p=130#comments</comments>
		<pubDate>Sat, 22 May 2010 13:24:58 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://blog.aristadba.com/?p=130</guid>
		<description><![CDATA[I have just checked my Google Reader and saw three updates over Martin&#8217;s blog. One was about him and how he had a little rough time which kept him away from Oracle community for some time. Second, a good piece of note about Consistent and DB Block gets(must read) and third was about the introduction [...]]]></description>
			<content:encoded><![CDATA[<p>I have just checked my Google Reader and saw three updates over <a href="http://mwidlake.wordpress.com" target="_blank">Martin&#8217;s</a> blog. One was about him and how he had a little rough time which kept him away from Oracle community for some time. Second, a good piece of note about Consistent and DB Block gets(must read) and third was about the introduction of a new blog from <a href="http://nigelnoble.wordpress.com/about/" target="_blank">Nigel Noble.</a> I quickly checked Nigel’s blog and as like its said, first impression is the most important, I really liked Nigel’s blog. So its just an echo to what Martin already wrote <a href="http://mwidlake.wordpress.com/2010/05/22/a-new-blog-to-watch/" target="_blank">here.</a> Let’s encourage Nigel to have more oracle goodies from him <img src='http://blog.aristadba.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . And yes, I have already added it to my listing. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aristadba.com/?feed=rss2&amp;p=130</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
