<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Case study on some rowcache internals, cached non-existent objects and a describe bug</title>
	<atom:link href="http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/</link>
	<description>Oracle troubleshooting, internals and performance tuning</description>
	<lastBuildDate>Mon, 15 Mar 2010 01:50:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: tanelp</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-521</link>
		<dc:creator>tanelp</dc:creator>
		<pubDate>Sat, 13 Sep 2008 02:38:54 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-521</guid>
		<description>Yes, this is because a shared pool flush flushes out also the &quot;non-existent markers&quot; from rowcache (I also demoed this in my paper).

Another way is to try to create the &quot;lost&quot; table again, this creation will fail due a primary key violation on data dictionary tables, the recursive data dictionary transaction will be rolled back and corresponding rowcache entries invalidated. Flush shared pool is safer though.</description>
		<content:encoded><![CDATA[<p>Yes, this is because a shared pool flush flushes out also the &#8220;non-existent markers&#8221; from rowcache (I also demoed this in my paper).</p>
<p>Another way is to try to create the &#8220;lost&#8221; table again, this creation will fail due a primary key violation on data dictionary tables, the recursive data dictionary transaction will be rolled back and corresponding rowcache entries invalidated. Flush shared pool is safer though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miladin</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-520</link>
		<dc:creator>Miladin</dc:creator>
		<pubDate>Fri, 12 Sep 2008 15:19:07 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-520</guid>
		<description>SQL&gt; startup mount;
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2144824 bytes
Variable Size             922748360 bytes
Database Buffers          671088640 bytes
Redo Buffers                7430144 bytes
Database mounted.
SQL&gt; desc dual;
ERROR:
ORA-04043: object dual does not exist


SQL&gt; alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
Process ID: 17765
Session ID: 170 Serial number: 5

let&#039;s try again:

SQL&gt; startup mount;
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2144824 bytes
Variable Size             922748360 bytes
Database Buffers          671088640 bytes
Redo Buffers                7430144 bytes
Database mounted.
SQL&gt; desc dual
ERROR:
ORA-04043: object dual does not exist

now execute

SQL&gt; alter system flush shared_pool;

System altered.

SQL&gt; alter database open;

Database altered.

SQL&gt;</description>
		<content:encoded><![CDATA[<p>SQL&gt; startup mount;<br />
ORACLE instance started.</p>
<p>Total System Global Area 1603411968 bytes<br />
Fixed Size                  2144824 bytes<br />
Variable Size             922748360 bytes<br />
Database Buffers          671088640 bytes<br />
Redo Buffers                7430144 bytes<br />
Database mounted.<br />
SQL&gt; desc dual;<br />
ERROR:<br />
ORA-04043: object dual does not exist</p>
<p>SQL&gt; alter database open;<br />
alter database open<br />
*<br />
ERROR at line 1:<br />
ORA-01092: ORACLE instance terminated. Disconnection forced<br />
Process ID: 17765<br />
Session ID: 170 Serial number: 5</p>
<p>let&#8217;s try again:</p>
<p>SQL&gt; startup mount;<br />
ORACLE instance started.</p>
<p>Total System Global Area 1603411968 bytes<br />
Fixed Size                  2144824 bytes<br />
Variable Size             922748360 bytes<br />
Database Buffers          671088640 bytes<br />
Redo Buffers                7430144 bytes<br />
Database mounted.<br />
SQL&gt; desc dual<br />
ERROR:<br />
ORA-04043: object dual does not exist</p>
<p>now execute</p>
<p>SQL&gt; alter system flush shared_pool;</p>
<p>System altered.</p>
<p>SQL&gt; alter database open;</p>
<p>Database altered.</p>
<p>SQL&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Freek</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-523</link>
		<dc:creator>Freek</dc:creator>
		<pubDate>Sat, 23 Aug 2008 10:56:13 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-523</guid>
		<description>Tanel,

Could you shed some light on when a session might get an &quot;ORA-08103: object no longer exists&quot; error when selecting from a table that is truncated by another session?

I have blogged (http://freekdhooge.wordpress.com/2007/12/25/can-a-select-block-a-truncate/) about this in the past and I understand that it is the increase of the dataobj# column in obj$ that causes this, but I have not been able to discover when a session get this error.

regards,

Freek</description>
		<content:encoded><![CDATA[<p>Tanel,</p>
<p>Could you shed some light on when a session might get an &#8220;ORA-08103: object no longer exists&#8221; error when selecting from a table that is truncated by another session?</p>
<p>I have blogged (<a href="http://freekdhooge.wordpress.com/2007/12/25/can-a-select-block-a-truncate/" rel="nofollow">http://freekdhooge.wordpress.com/2007/12/25/can-a-select-block-a-truncate/</a>) about this in the past and I understand that it is the increase of the dataobj# column in obj$ that causes this, but I have not been able to discover when a session get this error.</p>
<p>regards,</p>
<p>Freek</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tanelp</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-522</link>
		<dc:creator>tanelp</dc:creator>
		<pubDate>Wed, 20 Aug 2008 17:15:58 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-522</guid>
		<description>Hi Slavik! This is a good one. I took a quick look and it looks sqlplus crashes when receiving the reply from the server, not during sending it. This makes the case even more interesting :) I think i need to write another blog entry ;)

Btw, I once blogged about writing SQL without whitespace, including
the /**/ approach..

http://blog.tanelpoder.com/2008/01/14/can-you-write-a-working-sql-statement-without-using-any-whitespace/

...yep it may break a lot of bad apps ;)

Sokrates, good finding :)
This crash seems to be because the database is opened by your current server process, which can not access DUAL table due the describe bug again. But there are some SQL statements which select from DUAL when opening the db, so if some of them unexpectedly fail, the server process has no other choice than abort he instance.

Here&#039;s a tail piece of my alert.log after this DUAL crash happened:

Errors in file /u01/app/oracle/admin/LIN10G/udump/lin10g1_ora_3193.trc:
ORA-00942: table or view does not exist
Thu Aug 21 08:37:30 2008
Error 942 happened during db open, shutting down database
USER: terminating instance due to error 942
Instance terminated by USER, pid = 3193
ORA-1092 signalled during: alter database open...</description>
		<content:encoded><![CDATA[<p>Hi Slavik! This is a good one. I took a quick look and it looks sqlplus crashes when receiving the reply from the server, not during sending it. This makes the case even more interesting :) I think i need to write another blog entry ;)</p>
<p>Btw, I once blogged about writing SQL without whitespace, including<br />
the /**/ approach..</p>
<p><a href="http://blog.tanelpoder.com/2008/01/14/can-you-write-a-working-sql-statement-without-using-any-whitespace/" rel="nofollow">http://blog.tanelpoder.com/2008/01/14/can-you-write-a-working-sql-statement-without-using-any-whitespace/</a></p>
<p>&#8230;yep it may break a lot of bad apps ;)</p>
<p>Sokrates, good finding :)<br />
This crash seems to be because the database is opened by your current server process, which can not access DUAL table due the describe bug again. But there are some SQL statements which select from DUAL when opening the db, so if some of them unexpectedly fail, the server process has no other choice than abort he instance.</p>
<p>Here&#8217;s a tail piece of my alert.log after this DUAL crash happened:</p>
<p>Errors in file /u01/app/oracle/admin/LIN10G/udump/lin10g1_ora_3193.trc:<br />
ORA-00942: table or view does not exist<br />
Thu Aug 21 08:37:30 2008<br />
Error 942 happened during db open, shutting down database<br />
USER: terminating instance due to error 942<br />
Instance terminated by USER, pid = 3193<br />
ORA-1092 signalled during: alter database open&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sokrates</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-526</link>
		<dc:creator>Sokrates</dc:creator>
		<pubDate>Tue, 19 Aug 2008 11:15:19 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-526</guid>
		<description>Tanel,

very interesting, thanx.

there is another bug: When you describe dual when database mounted, you won&#039;t be able to open it afterwards !


SQL&gt; startup mount
ORACLE instance started.

Total System Global Area  922746880 bytes
Fixed Size                  1222624 bytes
Variable Size             146802720 bytes
Database Buffers          767557632 bytes
Redo Buffers                7163904 bytes
Database mounted.
SQL&gt; describe dual
ERROR:
ORA-04043: object dual does not exist


SQL&gt; alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced




It&#039;s definitely the
describe dual
which causes the ORA-01092

Could you shed some light on this ?</description>
		<content:encoded><![CDATA[<p>Tanel,</p>
<p>very interesting, thanx.</p>
<p>there is another bug: When you describe dual when database mounted, you won&#8217;t be able to open it afterwards !</p>
<p>SQL&gt; startup mount<br />
ORACLE instance started.</p>
<p>Total System Global Area  922746880 bytes<br />
Fixed Size                  1222624 bytes<br />
Variable Size             146802720 bytes<br />
Database Buffers          767557632 bytes<br />
Redo Buffers                7163904 bytes<br />
Database mounted.<br />
SQL&gt; describe dual<br />
ERROR:<br />
ORA-04043: object dual does not exist</p>
<p>SQL&gt; alter database open;<br />
alter database open<br />
*<br />
ERROR at line 1:<br />
ORA-01092: ORACLE instance terminated. Disconnection forced</p>
<p>It&#8217;s definitely the<br />
describe dual<br />
which causes the ORA-01092</p>
<p>Could you shed some light on this ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Slavik Markovich</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-525</link>
		<dc:creator>Slavik Markovich</dc:creator>
		<pubDate>Tue, 19 Aug 2008 04:57:59 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-525</guid>
		<description>Wow, great explanation Tanel. Now, lets explain why running &quot;alter/**/session/**/set/**/nls_date_format=&#039;dd/mm/yyyy hh24:mi:ss&#039;&quot; segfaults on me :-) Did you notice that you can run most commands without using whitespaces at all thus defeating a lot of security tools using pattern matching?

Slavik</description>
		<content:encoded><![CDATA[<p>Wow, great explanation Tanel. Now, lets explain why running &#8220;alter/**/session/**/set/**/nls_date_format=&#8217;dd/mm/yyyy hh24:mi:ss&#8217;&#8221; segfaults on me :-) Did you notice that you can run most commands without using whitespaces at all thus defeating a lot of security tools using pattern matching?</p>
<p>Slavik</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tanelp</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-524</link>
		<dc:creator>tanelp</dc:creator>
		<pubDate>Tue, 19 Aug 2008 03:40:18 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-524</guid>
		<description>Thanks Marco &amp; special thanks to Alessandro for asking this interesting question :)</description>
		<content:encoded><![CDATA[<p>Thanks Marco &amp; special thanks to Alessandro for asking this interesting question :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alessandro</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-528</link>
		<dc:creator>Alessandro</dc:creator>
		<pubDate>Mon, 18 Aug 2008 21:16:08 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-528</guid>
		<description>Thanks Tanel !!!</description>
		<content:encoded><![CDATA[<p>Thanks Tanel !!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco Gralike</title>
		<link>http://blog.tanelpoder.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/comment-page-1/#comment-527</link>
		<dc:creator>Marco Gralike</dc:creator>
		<pubDate>Mon, 18 Aug 2008 19:29:46 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/08/18/case-study-on-some-rowcache-internals-cached-non-existent-objects-and-a-describe-bug/#comment-527</guid>
		<description>Very good read. Thanks for all the effort.</description>
		<content:encoded><![CDATA[<p>Very good read. Thanks for all the effort.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
