<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20407371</id><updated>2026-07-24T01:59:56.242-04:00</updated><category term="Oracle"/><category term="pl/sql"/><category term="trace"/><category term="10.2.0.3"/><category term="249"/><category term="Linux"/><category term="aco"/><category term="application"/><category term="architect"/><category term="aso"/><category term="assess"/><category term="bug"/><category term="cluster"/><category term="clusters"/><category term="context"/><category term="ctx"/><category term="ctxsys"/><category term="days"/><category term="decide"/><category term="decision"/><category term="dr0def"/><category term="interview"/><category term="invalid"/><category term="need"/><category term="performance"/><category term="rac"/><category term="rat"/><category term="real"/><category term="testing"/><category term="tuning"/><category term="upgrade"/><title type='text'>Oracle Database Technology</title><subtitle type='html'>Discuss, share &amp;amp; enhance knowledge on Oracle database &amp;amp; Applications technologies. Oracle is the way of the database world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20407371.post-3087617835440338136</id><published>2017-09-04T15:02:00.003-04:00</published><updated>2017-09-20T07:13:27.981-04:00</updated><title type='text'>Oracle Virtualbox - UUID conflict resolved for VM</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Now-a-days, we use virtual machines (VMs) a lot, to test operating systems, software, databases etc. as sandboxes - test, play, destroy ... repeat ! I had an interesting learning with Oracle virtualbox (issue &amp;amp; then solution discovery), which I&#39;m sharing here ... it might help someone with similar situation :&lt;br /&gt;
&lt;br /&gt;
I had a VM in virtualbox, which I copied into a separate folder, while it was powered off. Now, after the original VM was gone, I wanted to add it as a separate VM with a different name. However, I was seeing this UUID conflict. (UUID already exists) What I did :&lt;br /&gt;
&lt;br /&gt;
1) Created a new empty VM with the desired NAME.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh059pm-ipMzzRtcxdgMgRuboJhQ7JydkmIsirVWrX1Zg2HkSsuMkf2lxhd12FDD5p6mTL4X2IzsFFYKuCmg1O6jHmK3eroh6brXCBoE6j4q7oBWxw3PtX_m9dzGpkVr0Mq-bFZuQ/s1600/newVM.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;573&quot; data-original-width=&quot;771&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh059pm-ipMzzRtcxdgMgRuboJhQ7JydkmIsirVWrX1Zg2HkSsuMkf2lxhd12FDD5p6mTL4X2IzsFFYKuCmg1O6jHmK3eroh6brXCBoE6j4q7oBWxw3PtX_m9dzGpkVr0Mq-bFZuQ/s320/newVM.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje_PBc8pR0xlWl2cz1u7ymG86hhyV03GqP0wDP3UDZ38mERPJPAr7O4wjFg8WOuaZG71Xse-hKXZB3wW-vS35CMi_q2Gt4gNioVoqu7taqbqdrUaE9nvYHMjhJ4vzjMswxi63PPg/s1600/newVM-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;396&quot; data-original-width=&quot;348&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje_PBc8pR0xlWl2cz1u7ymG86hhyV03GqP0wDP3UDZ38mERPJPAr7O4wjFg8WOuaZG71Xse-hKXZB3wW-vS35CMi_q2Gt4gNioVoqu7taqbqdrUaE9nvYHMjhJ4vzjMswxi63PPg/s320/newVM-1.jpg&quot; width=&quot;281&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span id=&quot;goog_961878609&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_961878610&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
2) Located the new folder, where copy of the VM was there.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJr4j5xfQWvh4Q_D3kcqN5MCgT3_3sq581UENffJGuGiA1xCwYPdGlUrpPV1Pq72x1LuHcV3R7517bBt2s94qInVpX8uxsJ62RsDq2-4NSjdBO5b14nh2SU_TfGYWWuLaSrgXMUQ/s1600/cmd.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;509&quot; data-original-width=&quot;979&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJr4j5xfQWvh4Q_D3kcqN5MCgT3_3sq581UENffJGuGiA1xCwYPdGlUrpPV1Pq72x1LuHcV3R7517bBt2s94qInVpX8uxsJ62RsDq2-4NSjdBO5b14nh2SU_TfGYWWuLaSrgXMUQ/s320/cmd.jpg&quot; style=&quot;cursor: move;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;3) Ran the commands to change the UUID for each disk-file (.vmdk or others) I had there : &quot;C:\Program Files\Oracle\VirtualBox\vboxmanage.exe&quot; internalcommands sethduuid disk1.vmdk&lt;br /&gt;
(you have to be in the same directory as the disk files, to run this command. Easy, wherever you need&amp;nbsp; the command window, SHIFT+Right-click &amp;gt; open command window here)&lt;br /&gt;
4) I ran the above command 4 times for 4 disks I had in the folder. Each disk file got new UUID now. &lt;br /&gt;
(make sure to remember / note the sequence of disk file numbering if there are many)&lt;br /&gt;
5) Now, go into the settings of the empty VM, storage, add the disks in same sequence under SATA disks one-by-one (the pictures below show it for 1 disk).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBnB6VQN5QxmQ9Ks5-qiiHVWdpzezbKrFbR354iB3HrUcsqkRFJyGpDrfS5mlf0EG5bEC2cnkA-fjqwOh-etNUGmyMYirHJel6_Gw8-kfOIH6nXbwkrH97FucAUg99VOFjSBTsA/s1600/Addstorage.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;581&quot; data-original-width=&quot;783&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBnB6VQN5QxmQ9Ks5-qiiHVWdpzezbKrFbR354iB3HrUcsqkRFJyGpDrfS5mlf0EG5bEC2cnkA-fjqwOh-etNUGmyMYirHJel6_Gw8-kfOIH6nXbwkrH97FucAUg99VOFjSBTsA/s320/Addstorage.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmOiQIIzOb5wFAvDfU5SbZZ5OpGR4etaZvFBozq808v3oVtW-h9GxRGdzgKHd-Z7kgcvbGwyVrJdHHkFaSGuoZqaLtaMVgzjt2D_OWB8zuJ8nhGTTRrepNlBG5WKFyHdkhR9QC8w/s1600/Addstorage-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;147&quot; data-original-width=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmOiQIIzOb5wFAvDfU5SbZZ5OpGR4etaZvFBozq808v3oVtW-h9GxRGdzgKHd-Z7kgcvbGwyVrJdHHkFaSGuoZqaLtaMVgzjt2D_OWB8zuJ8nhGTTRrepNlBG5WKFyHdkhR9QC8w/s1600/Addstorage-1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP3EJt1oLnBFfuKmEGSvqfde8YmT0xZ3SqRKIkxdkP0qaZ97DXpjBEAiLrYJ40_Vku3zWw0I5f2L2PvIQnurpGzjAr1xg0R0Fvwmibqu8oe2kIVcjaK5HQwu6_3m5cLwFBMBjTRQ/s1600/Addstorage-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;477&quot; data-original-width=&quot;677&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP3EJt1oLnBFfuKmEGSvqfde8YmT0xZ3SqRKIkxdkP0qaZ97DXpjBEAiLrYJ40_Vku3zWw0I5f2L2PvIQnurpGzjAr1xg0R0Fvwmibqu8oe2kIVcjaK5HQwu6_3m5cLwFBMBjTRQ/s320/Addstorage-2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) That&#39;s it ! Now I could start my new VM without issues, as all the disks had new UUID without conflicts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/3087617835440338136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2017/09/oracle-virtualbox-uuid-conflict.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/3087617835440338136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/3087617835440338136'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2017/09/oracle-virtualbox-uuid-conflict.html' title='Oracle Virtualbox - UUID conflict resolved for VM'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh059pm-ipMzzRtcxdgMgRuboJhQ7JydkmIsirVWrX1Zg2HkSsuMkf2lxhd12FDD5p6mTL4X2IzsFFYKuCmg1O6jHmK3eroh6brXCBoE6j4q7oBWxw3PtX_m9dzGpkVr0Mq-bFZuQ/s72-c/newVM.jpg" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-5920164727390563110</id><published>2013-04-30T15:29:00.000-04:00</published><updated>2013-04-30T15:30:22.887-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aco"/><category scheme="http://www.blogger.com/atom/ns#" term="application"/><category scheme="http://www.blogger.com/atom/ns#" term="architect"/><category scheme="http://www.blogger.com/atom/ns#" term="aso"/><category scheme="http://www.blogger.com/atom/ns#" term="assess"/><category scheme="http://www.blogger.com/atom/ns#" term="cluster"/><category scheme="http://www.blogger.com/atom/ns#" term="clusters"/><category scheme="http://www.blogger.com/atom/ns#" term="decide"/><category scheme="http://www.blogger.com/atom/ns#" term="decision"/><category scheme="http://www.blogger.com/atom/ns#" term="need"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="rac"/><category scheme="http://www.blogger.com/atom/ns#" term="rat"/><category scheme="http://www.blogger.com/atom/ns#" term="real"/><category scheme="http://www.blogger.com/atom/ns#" term="testing"/><title type='text'>How do I know if I need Oracle ACO / ASO / RAC / RAT ?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&amp;nbsp;&amp;nbsp; The Database Technology market is full of various products, even when we look at just Oracle&#39;s line of products - Advanced Security, Advanced Compression, Real Application Clusters (RAC), Real Application Testing (RAT), Exadata &amp;amp; so on ! However, we don&#39;t just go out and buy anything - we have to have a need to have certain helper software / features to make our lives easier. How do we assess whether I need one or another ? Here&#39;s my humble attempt today to make a checklist for these 4 products (To print-out or view the sheets fully, use the direct links) ... Exadata coming soon :-) :&lt;br /&gt;
&lt;br /&gt;
(1) Assessing the need for Oracle Real Application Clusters (RAC) :&lt;br /&gt;
&lt;iframe height=&quot;650&quot; src=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbWGFjc01ITzctUkU/preview&quot; width=&quot;950&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbWGFjc01ITzctUkU/edit?usp=sharing&quot;&gt;RAC checklist&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(2) Assessing the need for Oracle Advanced Security Option (ASO) : &lt;br /&gt;
&lt;iframe height=&quot;650&quot; src=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbT0RhYWdUbzJPdFk/preview&quot; width=&quot;950&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbT0RhYWdUbzJPdFk/edit?usp=sharing&quot;&gt;ASO checklist sheet1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbaE9hRy1fOHBYYmc/edit?usp=sharing&quot;&gt;ASO checklist sheet2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(3) Assessing the need for Oracle Advanced Compression Option (ACO)&lt;br /&gt;
&lt;iframe height=&quot;650&quot; src=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbT1ZScF9UeFo0X00/preview&quot; width=&quot;950&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbT1ZScF9UeFo0X00/edit?usp=sharing&quot;&gt;ACO checklist&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(4) Assessing the need for Oracle Real Application Testing (RAT)&lt;br /&gt;
&lt;iframe height=&quot;650&quot; src=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbUWphdEpNX2lkbGs/preview&quot; width=&quot;950&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbT0RhYWdUbzJPdFk/edit?usp=sharing&quot;&gt;RAT checklist sheet1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0B-Qqga33NTxbaE9hRy1fOHBYYmc/edit?usp=sharing&quot;&gt;RAT checklist sheet2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; If you have any suggestions on improvement, please let me know. Ia appreciate your time spent here - I hope you get some useful information out of this. Have fun architect-ing :-) !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/5920164727390563110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2013/04/how-do-i-know-if-i-need-oracle-aco-aso.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5920164727390563110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5920164727390563110'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2013/04/how-do-i-know-if-i-need-oracle-aco-aso.html' title='How do I know if I need Oracle ACO / ASO / RAC / RAT ?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-6836660412806020731</id><published>2009-07-08T18:22:00.004-04:00</published><updated>2009-07-09T12:43:18.624-04:00</updated><title type='text'>HWM (high watermark) of a tablespace ?</title><content type='html'>How many times have you thought of calculating HWM (high watermark) of a tablespace as a DBA ? Have you ever found out that a tablespace is overallocated in a database, as compared to the data being used in it ? In such a case, you&#39;d want to reduce the wasted space &amp;amp; resize the tablespace to a smaller size, although greater than the current usage.&lt;br /&gt;  HWM is at the maximum blocks ever occupied by a SEGMENT (unless we perform a truncate on it). Segments span over datafiles however remain within a tablespace. All segments are physically allocated by way of extents, which are contiguous blocks of data. Now, when we talk about contiguous blocks, 2 datafiles (even from same tablespace) are highly unlikely to have contiguguos data blocks. Hence, theoretically, it&#39;s possible to calculate high watermark within a datafile, not a tablespace directly, as the latter is only a logical unit. Although, we can resize a tablespace, however the resize value needs to be based on exact calculations, or better, based on the above SEGMENT theory, we should resize individual datafiles within a tablespace more accurately.&lt;br /&gt;  For the sake of simplicity &amp;amp; ease of understanding, we may still see the datafile usage as an overall tablespace usage :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;set verify off&lt;br /&gt;column file_name format a50 word_wrapped&lt;br /&gt;column smallest format 999,990 heading &quot;Smallest|Size|Poss.&quot;&lt;br /&gt;column currsize format 999,990 heading &quot;Current|Size&quot;&lt;br /&gt;column savings  format 999,990 heading &quot;Poss.|Savings&quot;&lt;br /&gt;break on report&lt;br /&gt;compute sum of savings on report&lt;br /&gt;&lt;br /&gt;column value new_val blksize&lt;br /&gt;select value from v$parameter where name = &#39;db_block_size&#39;;&lt;br /&gt;&lt;br /&gt;--Tablespace-wise Used / unused blocks for HWM calculation&lt;br /&gt;&lt;br /&gt;select tablespace_name, file_name,&lt;br /&gt;      ceil( (nvl(hwm,1)*&amp;amp;&amp;amp;blksize)/1024/1024 ) smallest,&lt;br /&gt;      ceil( blocks*&amp;amp;&amp;amp;blksize/1024/1024) currsize,&lt;br /&gt;      ceil( blocks*&amp;amp;&amp;amp;blksize/1024/1024) -&lt;br /&gt;      ceil( (nvl(hwm,1)*&amp;amp;&amp;amp;blksize)/1024/1024 ) savings&lt;br /&gt;from dba_data_files a,&lt;br /&gt;    ( select file_id, max(block_id+blocks-1) hwm&lt;br /&gt;        from dba_extents&lt;br /&gt;       group by file_id ) b&lt;br /&gt;where a.file_id = b.file_id(+)&lt;br /&gt;order by 1;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;  You may save this above data output as a snapshot of starting point. Now, let&#39;s create a script to resize individual datafiles (you may exclude some important ones, like SYSTEM, UNDO, TEMP). I&#39;ve used 2 types of scripts - one is exact resizing to the HWM &amp;amp; other one is with some future space allocation planning built-in &amp;amp; still reducing wasted space :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;--Exact resizing&lt;br /&gt;&lt;br /&gt;select &#39;alter database datafile &#39;&#39;&#39; || file_name || &#39;&#39;&#39; resize &#39; ||&lt;br /&gt;      ceil( (nvl(hwm,1)*&amp;amp;&amp;amp;blksize)/1024/1024 )  || &#39;m;&#39; cmd&lt;br /&gt;from dba_data_files a,&lt;br /&gt;    ( select file_id, max(block_id+blocks-1) hwm&lt;br /&gt;        from dba_extents&lt;br /&gt;       group by file_id ) b&lt;br /&gt;where a.file_id = b.file_id(+)&lt;br /&gt; and ceil( blocks*&amp;amp;&amp;amp;blksize/1024/1024) -&lt;br /&gt;     ceil( (nvl(hwm,1)*&amp;amp;&amp;amp;blksize)/1024/1024 ) &gt; 0&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;-- Future Space planned resizing - change the 0.1, which is 10% estimate, to any other value less than 1, to alter how much extra you wish to still keep in each datafile / tablespace&lt;br /&gt;&lt;br /&gt;select &#39;alter database datafile &#39;&#39;&#39; || file_name || &#39;&#39;&#39; resize &#39; ||&lt;br /&gt;      ceil( (nvl(hwm,1)*8192)/1024/1024 + 0.1*(nvl(hwm,1)*8192)/1024/1024) || &#39;m;&#39; cmd&lt;br /&gt;from dba_data_files a,&lt;br /&gt;    ( select file_id, max(block_id+blocks-1) hwm&lt;br /&gt;        from dba_extents&lt;br /&gt;       group by file_id ) b&lt;br /&gt;where a.file_id = b.file_id(+)&lt;br /&gt; and ceil( blocks*8192/1024/1024) -&lt;br /&gt;     ceil( (nvl(hwm,1)*8192)/1024/1024 ) &gt; 0&lt;br /&gt;/&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Dear reader, I&#39;ve been able to make use of this procedure successfully. Please let me know your results &amp;amp; learnings.&lt;br /&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input onclick=&quot;jsCall();&quot; id=&quot;jsProxy&quot; type=&quot;hidden&quot;&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input onclick=&quot;jsCall();&quot; id=&quot;jsProxy&quot; type=&quot;hidden&quot;&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/6836660412806020731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2009/07/hwm-high-watermark-of-tablespace.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/6836660412806020731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/6836660412806020731'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2009/07/hwm-high-watermark-of-tablespace.html' title='HWM (high watermark) of a tablespace ?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-150192911034970208</id><published>2009-06-09T18:02:00.031-04:00</published><updated>2011-04-08T08:44:28.363-04:00</updated><title type='text'>How to speed up data transfer between servers</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;   This article contains values as an example of a specific case. Your servers may have different configuration. Please use accordingly.&lt;br /&gt;
&lt;br /&gt;
Over a network, although the network bandwidth could be 10 GigaBits, yet, if the servers have&lt;br /&gt;
1 GigE Ethernet network cards (1 GigaBit), the overall file-transfer&lt;br /&gt;
throughput is 1 GigaBits / sec, which means (1024*1024*1024 / 8) bytes&lt;br /&gt;
per sec = &lt;b&gt;125 MB/sec&lt;/b&gt;. This is the maximum throughput available on the network.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;For convenience, the 2 esrvers we need to improve data transfer speeds between - we&#39;d call one as source, &amp;amp; other target. Now, if we ping from a source to target server, we get about 42 ms of turnaround time.&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuU44vKRyBSC9ut6cA05PbSUEkqcJiSq65OLi_IgaBPqrWJcU7fuFjZyF1PxPutiblTOlz46-EBGekx_0g81EsKwyxROzdmcFTTINeTWfGHdJsniefZ-efqg6jWalGs-xTkF3IQQ/s1600-h/Ping.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5345455387918415890&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuU44vKRyBSC9ut6cA05PbSUEkqcJiSq65OLi_IgaBPqrWJcU7fuFjZyF1PxPutiblTOlz46-EBGekx_0g81EsKwyxROzdmcFTTINeTWfGHdJsniefZ-efqg6jWalGs-xTkF3IQQ/s400/Ping.JPG&quot; style=&quot;cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;   &lt;a href=&quot;&quot; name=&quot;0.1_graphic04&quot;&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;This gives us maximum amount of data at any point of time possible on this network as (125 MB / s) * (0.042) = 5.250 MB . However, the default network level settings on the servers don’t let this much bandwith to be used. We may verify it with “ndd &amp;amp; route” commands (only SA can run these commands): &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;If you have root access to any locale Linux box, you may try &quot;ndd get ...&quot; &amp;amp; &quot;route print&quot; commands, otherwise ask the SA to provide you the outputs, to find out the current settings.&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvc6WnxiHCvlAoG4bd5Le9AE7uQCeWZnC3-hDLl5DL8Bqvnx29AJnqb1KOjOWo2GramotP_ThT-KpLTdXgBoky5Rl7bHelz5wDUMnj1Ug0MATu9iS2Yor7CjkoFQPmAwQj4HMinQ/s1600-h/Commands.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5345455537364184898&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvc6WnxiHCvlAoG4bd5Le9AE7uQCeWZnC3-hDLl5DL8Bqvnx29AJnqb1KOjOWo2GramotP_ThT-KpLTdXgBoky5Rl7bHelz5wDUMnj1Ug0MATu9iS2Yor7CjkoFQPmAwQj4HMinQ/s400/Commands.JPG&quot; style=&quot;cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;The **recv** &amp;amp; **xmit** (receive &amp;amp; transmit) values are the default ones, used by the server &amp;amp; maximum values are defined by **cwnd** &amp;amp; **max_buf. e.g. The 49152 value indicates that this server (or any RMAN job) would send / receive, by default, 48 KB of traffic only. Moreover, if someone is manually writing a program, may use the maximum of  1048576 bytes&lt;br /&gt;
= 1 MB, by using the **max** variables)&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;Now, our purpose is to be able to use the whole 5.25 MB that can be used on the current&lt;br /&gt;
connection. However, the allowed values for these 4 variables, should be a power of 2. Hence, we would pick the next higher power of 2, which is 8 MB (=2 ^ 3). We would need to set the **max** limit variables also equal to 8 MB.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;DBA should ask SA to run these commands for setting the values, with “set” option, instead of “get”. E.g. “sudo ndd -set /dev/tcp tcp_recv_hiwat 8388608”&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;The “ndd” commands get / set values for ALL connections. We may not want to do that everytime,&lt;br /&gt;
because if a non Netbackup / media server (say, a windows client) connects to this server, which has a lower capacity of being able to handle traffic (say, 1 MB), then the 5 MB packets would overwhelm the connection. Hence, &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;to avoid this scenario, we should use “route” commands to set connections settings between specific IP’s , which don’t work the same as “ndd”. &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;&lt;b&gt;It’s always safer to use “route” settings instead of&lt;br /&gt;
“ndd” &lt;/b&gt;except&lt;b&gt; “&lt;/b&gt;tcp_max_buf”&lt;b&gt;.&lt;/b&gt; Here are some screenshots (please esarch internet to see more detailed syntax of route / ndd commands) : &lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy_tIpHhMr9UVk28a4JP7js8m29i38tN4MHQaCBJ8kq89cQjPH56EEX3tgD8B8AJNalsMW9UCXQ8oqg-KYQZuMtzvqOHdUmDIdkxTKxrd-Qh68G2SFl-DhVW1lpJuOtGY0N-ulQ/s1600-h/Final.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5345475039297852530&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy_tIpHhMr9UVk28a4JP7js8m29i38tN4MHQaCBJ8kq89cQjPH56EEX3tgD8B8AJNalsMW9UCXQ8oqg-KYQZuMtzvqOHdUmDIdkxTKxrd-Qh68G2SFl-DhVW1lpJuOtGY0N-ulQ/s400/Final.JPG&quot; style=&quot;cursor: pointer; display: block; height: 327px; margin: 0px auto 10px; text-align: center; width: 400px;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;&quot; name=&quot;0.1_graphic06&quot;&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;The “sendpipe” option is same as “tcp_xmit_hiwat” of ndd &amp;amp; recvpipe is “tcp_recv_hiwat”.&lt;br /&gt;
The “ssthresh” is same as “tcp_cwnd_max”. However, the “tcp_max_buf” still needs to be set through “ndd”. &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;With &quot;route&quot; settings, all these settings will be wiped out &amp;amp; will go back to default whenever a server is rebooted, so changes are temporary till next boot. With &quot;ndd&#39;, it may be made permanent, which may be unnecessary, unless it&#39;s between some DB &amp;amp; RMAN backup server (viz. Netbackup) where there&#39;s a regular transfer of data.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;&quot;ndd&quot; uses get / set options to show or edit values, whereas &quot;route&quot; uses print / add / delete options.&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #3366ff; font-weight: bold;&quot;&gt;Now, having understood all the above concepts, when a DBA / SA is ready to start working on their specific environment of servers, you may follow this :&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
1)       1st we need to get the current values from the SA, of the 4 parameters (to be executed from source / target server),&lt;br /&gt;
a.       ndd –get /dev/tcp tcp_recv_hiwat&lt;br /&gt;
b.       ndd –get /dev/tcp tcp_xmit_hiwat&lt;br /&gt;
c.       ndd –get /dev/tcp tcp_max_buf&lt;br /&gt;
d.       ndd –get /dev/tcp tcp_cwnd_max&lt;br /&gt;
e.       route get &lt;ip-of-a-server&gt;&lt;br /&gt;
&lt;br /&gt;
2)       For “route get” output, these parameters are named sendpipe, recvpipe, ssthresh (there’s no equivalent of tcp_&lt;/ip-of-a-server&gt;&lt;span style=&quot;font-family: Arial; font-size: 100%;&quot;&gt;max_buf&lt;/span&gt;&lt;ip-of-a-server&gt; here – it can be set only through ndd command). “ndd” sets the parameters universally, for all IP’s, whereas “route” can be used to set between specific IP’s &amp;amp; temporarily.&lt;br /&gt;
&lt;br /&gt;
3)       Along with this we need to know the server Ethernet card types (on both source &amp;amp; target servers) , viz. 1 GigE, 10GigE ; AND the network bandwidth , viz. a 10 Gbps line, 24 Mbps line etc.&lt;br /&gt;
&lt;br /&gt;
4)       Then we need to make calculations based on the above network bandwidth values, taking into the consideration, an example calculation on my Blog - http://databaseoracle.blogspot.com/2009/06/how-to-speed-up-data-transfer-between.html .&lt;br /&gt;
&lt;br /&gt;
5)       This way, we’d arrive at a number, which is the total bandwidth that CAN BE available between the 2 servers under consideration. We’ll call this number (if it is a power of 2) or the next power of 2, MAX-BANDWIDTH&lt;br /&gt;
&lt;br /&gt;
6)       Then we request the SA to set the above parameters to new values (use route command, instead of ndd , to set these values temporarily) :&lt;br /&gt;
a. route add –host &lt;target-ip&gt; &lt;target-ip&gt; … -sendpipe  MAX-BANDWIDTH  -recvpipe  MAX-BANDWIDTH  -ssthresh  MAX-BANDWIDTH&lt;target-ip&gt;&lt;target-ip&gt;&lt;target-ip&gt;&lt;target-ip&gt;&lt;br /&gt;
b. ndd –set /dev/tcp tcp_cwnd_max  MAX-BANDWIDTH    (this parameter is available only through ndd &amp;amp; SA may decide whether to set it or not, based on implications) .&lt;br /&gt;
&lt;br /&gt;
7)       If the SA is responding in minutes, this whole calculation would take about 10-20 minutes.&lt;br /&gt;
&lt;br /&gt;
8)       Please let me know in case of any doubts &amp;amp; your experience when you try these modifications.&lt;br /&gt;
&lt;br /&gt;
9) Happy transferring lightning-fast data !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;/target-ip&gt;&lt;/target-ip&gt;&lt;/target-ip&gt;&lt;/target-ip&gt;&lt;/target-ip&gt;&lt;/target-ip&gt;&lt;/ip-of-a-server&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/150192911034970208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2009/06/how-to-speed-up-data-transfer-between.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/150192911034970208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/150192911034970208'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2009/06/how-to-speed-up-data-transfer-between.html' title='How to speed up data transfer between servers'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuU44vKRyBSC9ut6cA05PbSUEkqcJiSq65OLi_IgaBPqrWJcU7fuFjZyF1PxPutiblTOlz46-EBGekx_0g81EsKwyxROzdmcFTTINeTWfGHdJsniefZ-efqg6jWalGs-xTkF3IQQ/s72-c/Ping.JPG" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-3466540720740370537</id><published>2008-01-27T17:10:00.000-05:00</published><updated>2008-01-27T17:17:42.646-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="10.2.0.3"/><category scheme="http://www.blogger.com/atom/ns#" term="context"/><category scheme="http://www.blogger.com/atom/ns#" term="ctx"/><category scheme="http://www.blogger.com/atom/ns#" term="ctxsys"/><category scheme="http://www.blogger.com/atom/ns#" term="dr0def"/><category scheme="http://www.blogger.com/atom/ns#" term="invalid"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="upgrade"/><title type='text'>Issue with invalid objects while upgrading the database to 10.2.0.3</title><content type='html'>Some times we face a problem with invalid objects while &lt;strong&gt;&lt;span style=&quot;color:#3333ff;&quot;&gt;upgrading a 9i database to 10.2.0.3 &lt;/span&gt;&lt;/strong&gt;…When the objects in CTXSYS are invalid the upgrade will not proceed. In this case we need manually uninstall &amp;amp; install Oracle text. This is what we have done with one of our databases on a Solaris 9 unix server.&lt;br /&gt;&lt;br /&gt;Please refer the following notes for uninstalling &amp;amp; installing the Oracle text&lt;br /&gt;&lt;br /&gt;Note 275689.1 &quot;Manual installation, deinstallation of Oracle Text 9.2.0.x&quot;&lt;br /&gt;Note.280713.1  Manual installation, deinstallation of Oracle Text 10gR1 and 10gR2&lt;br /&gt;&lt;br /&gt;An additional point to remember ……….. We faced this problem while doing it in one database :&lt;br /&gt;&lt;br /&gt;While installing oracle text, especially when we run the script “start ?/ctx/admin/defaults/drdefus.sql”  (refer the aforementioned notes), it may throw the following error..&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#990000;&quot;&gt;SQL&gt; create index dropme_idx on dropme(name) indextype is ctxsys.context;&lt;br /&gt;create index dropme_idx on dropme(name) indextype is ctxsys.context&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine&lt;br /&gt;ORA-04068: existing state of packages has been discarded&lt;br /&gt;ORA-04063: stored procedure &quot;CTXSYS.TEXTINDEXMETHODS&quot; has errors&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;IN this case please do the following…….&lt;br /&gt;&lt;br /&gt;Sql&gt;connect ctxsys/****&lt;br /&gt;Sql&gt;@$ORACLE_HOME/ctx/admin/dr0def.sql&lt;br /&gt;Sql&gt;connect sys as sysdba&lt;br /&gt;Sql&gt;declare&lt;br /&gt;  ver varchar2(80);&lt;br /&gt;begin&lt;br /&gt;  select ver_dict into ver from ctxsys.ctx_version;&lt;br /&gt;  dbms_registry.loaded(&#39;CONTEXT&#39;, ver,&lt;br /&gt;                       &#39;Oracle Text Release &#39;ver&#39; - Production&#39;);&lt;br /&gt;&lt;br /&gt;  -- to do: a validation procedure&lt;br /&gt;  dbms_registry.valid(&#39;CONTEXT&#39;);&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;Sql&gt;exit&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/3466540720740370537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2008/01/issue-with-invalid-objects-while.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/3466540720740370537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/3466540720740370537'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2008/01/issue-with-invalid-objects-while.html' title='Issue with invalid objects while upgrading the database to 10.2.0.3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-4298444036286702623</id><published>2007-11-29T18:52:00.000-05:00</published><updated>2007-11-29T18:58:39.738-05:00</updated><title type='text'>How to optimize UNDO tablespace  ?</title><content type='html'>&lt;span style=&quot;color: rgb(51, 51, 255); font-size: 130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;--contributed by Manjunath Ulthi,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It becomes a challenge to figure out the right amount of UNDO to be allocated to a database. Try this method :&lt;br /&gt;&lt;br /&gt;UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)&lt;br /&gt;&lt;br /&gt;where,&lt;br /&gt;(UR) UNDO_RETENTION in seconds - an init parameter&lt;br /&gt;(UPS) Number of undo data blocks generated per second&lt;br /&gt;(DBS) Overhead varies based on extent and file size (db_block_size)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Two (UPS) can be obtained from the initialization file: UNDO_RETENTION and DB_BLOCK_SIZE.&lt;br /&gt;The third piece of the formula (DBS) requires a query against the database. The number of undo blocks generated per second can be acquired from V$UNDOSTAT.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following formula calculates the total number of blocks generated and divides&lt;br /&gt;it by the amount of time monitored, in seconds:&lt;br /&gt;&lt;br /&gt;SQL&gt;SELECT (SUM(undoblks))/ SUM ((end_time - begin_time) * 86400)&lt;br /&gt;FROM v$undostat;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following query calculates the number of bytes needed:&lt;br /&gt;&lt;br /&gt;SQL&gt; SELECT (UR * (UPS * DBS)) + (DBS * 24) AS &quot;Bytes&quot;&lt;br /&gt;FROM (SELECT value AS UR FROM v$parameter WHERE name = &#39;undo_retention&#39;),&lt;br /&gt;(SELECT (SUM(undoblks)/SUM(((end_time - begin_time)*86400))) AS UPS FROM v$undostat),&lt;br /&gt;(select block_size as DBS from dba_tablespaces where tablespace_name=&lt;br /&gt;(select value from v$parameter where name = &#39;undo_tablespace&#39;));&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  Simple, ain&#39;t it ? Please provide your inputs &amp;amp; actual case studies through the comments link ! We love feedback.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/4298444036286702623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2007/11/how-to-optimize-undo-tablespace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/4298444036286702623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/4298444036286702623'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2007/11/how-to-optimize-undo-tablespace.html' title='How to optimize UNDO tablespace  ?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-9054977668347790821</id><published>2007-10-18T12:12:00.000-04:00</published><updated>2007-10-18T14:41:43.582-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="249"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="days"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Intereseting --- 249 days bug for Oracle on Linux servers</title><content type='html'>&lt;span style=&quot;color: rgb(51, 51, 255);font-size:130%;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;--contributed by Manjunath Ulthi, Senior DBA at Infosys Technologies limited&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;1 Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Problem:&lt;/span&gt; OCI client spins when machine uptime &gt;= 249 days in Linux machines. Once the uptime crosses 249 days the database client hangs and leads to high CPU utilization and server hung state. The user will not be able to connect to the databases This is oracle known bug 4612267.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Solution:&lt;/span&gt; This can be handled by applying the patch 4612267.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The patch has been applied in the servers server126, server041 &amp;amp; server120 and tested. After the patch has been applied the client connections were normal after 249 days and all the operations of databases/applications were normal and didn’t encounter any problems.&lt;br /&gt;&lt;br /&gt;For further information refer the Metalink Notes&lt;br /&gt;&lt;br /&gt;Note: 338461.1: SQL*Plus With Instant Client 10.2.0.1 Hangs, When System Uptime Is More Than 248 Days&lt;br /&gt;&lt;br /&gt;Note:4612267.8 : Bug 4612267 - OCI client spins when machine uptime &gt;= 249 days&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 51, 255);font-size:130%;&quot; &gt;2 General Instructions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procedure to apply the patch&lt;br /&gt;&lt;br /&gt;1. Download the patch from oracle metalink.&lt;br /&gt;&lt;br /&gt;The downloaded patch (p4612267_10201_LINUX.zip) is available at server120 at location /app/oracle&lt;br /&gt;&lt;br /&gt;2. Copy the Zip file at $ORACLE_HOME&lt;br /&gt;3. Unzip the file .It will create a directory with patch number 4612267&lt;br /&gt;4. Test the opatch utility and check the patches which have been applied to the database server.&lt;br /&gt;&lt;br /&gt;bash-2.05b$ $ORACLE_HOME/OPatch/opatch lsinventory&lt;br /&gt;&lt;br /&gt;bash-2.05b$ $ORACLE_HOME/OPatch/opatch lsinventory&lt;br /&gt;&lt;br /&gt;Invoking OPatch 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Oracle interim Patch Installer version 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Copyright (c) 2005, Oracle Corporation. All rights reserved..&lt;br /&gt;&lt;br /&gt;Oracle Home : /app/oracle/product/10.2.0&lt;br /&gt;&lt;br /&gt;Central Inventory : /app/oracle/oraInventory&lt;br /&gt;&lt;br /&gt;from : /app/oracle/product/10.2.0/oraInst.loc&lt;br /&gt;&lt;br /&gt;OPatch version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI location : /app/oracle/product/10.2.0/oui&lt;br /&gt;&lt;br /&gt;Log file location : /app/oracle/product/10.2.0/cfgtoollogs/opatch/opatch-2007_Oct_13_10-11-13-EDT_Sat.log&lt;br /&gt;&lt;br /&gt;Lsinventory Output file location : /app/oracle/product/10.2.0/cfgtoollogs/opatch/lsinv/lsinventory-2007_Oct_13_10-11-13-EDT_Sat.txt&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Installed Top-level Products (1):&lt;br /&gt;&lt;br /&gt;Oracle Database 10g 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;There are 1 products installed in this Oracle Home.&lt;br /&gt;&lt;br /&gt;Interim patches (2) :&lt;br /&gt;&lt;br /&gt;Patch 5865568 : applied on Thu Mar 01 21:50:15 EST 2007&lt;br /&gt;&lt;br /&gt;Created on 15 Feb 2007, 20:01:44 hrs PST8PDT&lt;br /&gt;&lt;br /&gt;Bugs fixed:&lt;br /&gt;&lt;br /&gt;5865568&lt;br /&gt;&lt;br /&gt;Patch 4516865 : applied on Wed Sep 20 04:47:39 EDT 2006&lt;br /&gt;&lt;br /&gt;Created on 14 Feb 2006, 00:22:00 hrs US/Pacific&lt;br /&gt;&lt;br /&gt;Bugs fixed:&lt;br /&gt;&lt;br /&gt;5039292, 4747264, 4908101, 4516865&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;OPatch succeeded.&lt;br /&gt;&lt;br /&gt;5. Take the backup of lib directory in $ORACLE_HOME&lt;br /&gt;&lt;br /&gt;bash-2.05b$ pwd&lt;br /&gt;&lt;br /&gt;/app/oracle/product/10.2.0/lib&lt;br /&gt;&lt;br /&gt;bash-2.05b$ cp -R * ../bkp_lib/&lt;br /&gt;&lt;br /&gt;6. Go to $ORACLE_HOME/4612267&lt;br /&gt;7. Bring down the databases, listeners and DB consoles. Ensure that you have good backup pieces before proceeding&lt;br /&gt;8. Apply the patch&lt;br /&gt;&lt;br /&gt;$ORACLE_HOME/4612267&gt;&gt;&gt;$ $ORACLE_HOME/OPatch/opatch apply&lt;br /&gt;&lt;br /&gt;Invoking OPatch 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Oracle interim Patch Installer version 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Copyright (c) 2005, Oracle Corporation. All rights reserved..&lt;br /&gt;&lt;br /&gt;Oracle Home : /app/oracle/product/10.2.0&lt;br /&gt;&lt;br /&gt;Central Inventory : /app/oracle/oraInventory&lt;br /&gt;&lt;br /&gt;from : /app/oracle/product/10.2.0/oraInst.loc&lt;br /&gt;&lt;br /&gt;OPatch version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI location : /app/oracle/product/10.2.0/oui&lt;br /&gt;&lt;br /&gt;Log file location : /app/oracle/product/10.2.0/cfgtoollogs/opatch/opatch-2007_Oct_13_10-22-20-EDT_Sat.log&lt;br /&gt;&lt;br /&gt;ApplySession applying interim patch &#39;4612267&#39; to OH &#39;/app/oracle/product/10.2.0&#39;&lt;br /&gt;&lt;br /&gt;Invoking fuser to check for active processes.&lt;br /&gt;&lt;br /&gt;Invoking fuser on &quot;/app/oracle/product/10.2.0/bin/oracle&quot;&lt;br /&gt;&lt;br /&gt;OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.&lt;br /&gt;&lt;br /&gt;Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.&lt;br /&gt;&lt;br /&gt;(Oracle Home = &#39;/app/oracle/product/10.2.0&#39;)&lt;br /&gt;&lt;br /&gt;Is the local system ready for patching?&lt;br /&gt;&lt;br /&gt;Do you want to proceed? [y|n]&lt;br /&gt;&lt;br /&gt;y&lt;br /&gt;&lt;br /&gt;User Responded with: Y&lt;br /&gt;&lt;br /&gt;Backing up files and inventory (not for auto-rollback) for the Oracle Home&lt;br /&gt;&lt;br /&gt;Backing up files affected by the patch &#39;4612267&#39; for restore. This might take a while...&lt;br /&gt;&lt;br /&gt;Backing up files affected by the patch &#39;4612267&#39; for rollback. This might take a while...&lt;br /&gt;&lt;br /&gt;Patching component oracle.oracore.rsf, 10.2.0.1.0...&lt;br /&gt;&lt;br /&gt;Updating archive file &quot;/app/oracle/product/10.2.0/lib/libcore10.a&quot; with &quot;lib/libcore10.a/sltrg.o&quot;&lt;br /&gt;&lt;br /&gt;Patching component oracle.rdbms, 10.2.0.1.0...&lt;br /&gt;&lt;br /&gt;Updating archive file &quot;/app/oracle/product/10.2.0/lib/libcore10.a&quot; with &quot;lib/libcore10.a/sltrg.o&quot;&lt;br /&gt;&lt;br /&gt;Running make for target client_sharedlib&lt;br /&gt;&lt;br /&gt;Running make for target client_sharedlib&lt;br /&gt;&lt;br /&gt;Running make for target ioracle&lt;br /&gt;&lt;br /&gt;ApplySession adding interim patch &#39;4612267&#39; to inventory&lt;br /&gt;&lt;br /&gt;The local system has been patched and can be restarted.&lt;br /&gt;&lt;br /&gt;OPatch succeeded.&lt;br /&gt;&lt;br /&gt;9. Verify the patch in inventory……. Check the patch number 4612267 in the results&lt;br /&gt;&lt;br /&gt;bash-2.05b$ $ORACLE_HOME/OPatch/opatch lsinventory&lt;br /&gt;&lt;br /&gt;Invoking OPatch 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Oracle interim Patch Installer version 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;Copyright (c) 2005, Oracle Corporation. All rights reserved..&lt;br /&gt;&lt;br /&gt;Oracle Home : /app/oracle/product/10.2.0&lt;br /&gt;&lt;br /&gt;Central Inventory : /app/oracle/oraInventory&lt;br /&gt;&lt;br /&gt;from : /app/oracle/product/10.2.0/oraInst.loc&lt;br /&gt;&lt;br /&gt;OPatch version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI version : 10.2.0.1.0&lt;br /&gt;&lt;br /&gt;OUI location : /app/oracle/product/10.2.0/oui&lt;br /&gt;&lt;br /&gt;Log file location : /app/oracle/product/10.2.0/cfgtoollogs/opatch/opatch-2007_Oct_13_10-24-32-EDT_Sat.log&lt;br /&gt;&lt;br /&gt;Interim patches (3) :&lt;br /&gt;&lt;br /&gt;Patch 4612267 : applied on Sat Oct 13 10:23:06 EDT 2007&lt;br /&gt;&lt;br /&gt;Created on 5 Oct 2005, 13:48:00 hrs US/Pacific&lt;br /&gt;&lt;br /&gt;Bugs fixed:&lt;br /&gt;&lt;br /&gt;4612267&lt;br /&gt;&lt;br /&gt;Patch 5865568 : applied on Thu Mar 01 21:50:15 EST 2007&lt;br /&gt;&lt;br /&gt;Created on 15 Feb 2007, 20:01:44 hrs PST8PDT&lt;br /&gt;&lt;br /&gt;Bugs fixed:&lt;br /&gt;&lt;br /&gt;5865568&lt;br /&gt;&lt;br /&gt;Patch 4516865 : applied on Wed Sep 20 04:47:39 EDT 2006&lt;br /&gt;&lt;br /&gt;Created on 14 Feb 2006, 00:22:00 hrs US/Pacific&lt;br /&gt;&lt;br /&gt;Bugs fixed:&lt;br /&gt;&lt;br /&gt;5039292, 4747264, 4908101, 4516865&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;OPatch succeeded.&lt;br /&gt;&lt;br /&gt;10. Start the databases, listeners &amp;amp; DB Consoles and verify the databases &amp;amp; applications ::::&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/9054977668347790821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2007/10/intereseting-249-days-bug-for-oracle-on.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/9054977668347790821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/9054977668347790821'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2007/10/intereseting-249-days-bug-for-oracle-on.html' title='Intereseting --- 249 days bug for Oracle on Linux servers'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-4707210455787602708</id><published>2007-10-01T15:19:00.000-04:00</published><updated>2007-10-02T12:25:43.196-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="trace"/><category scheme="http://www.blogger.com/atom/ns#" term="tuning"/><title type='text'>The art and science of Oracle DB performance tuning</title><content type='html'>Back to square one, where I started this blog ? ...&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: right;&quot;&gt;   Nooooo ... Here I am not providing a step by step procedure for Oracle performance tuning, however a framework to help a DBA with tackling Oracle performance issues. This could be seen as a reference to understand where to start, what information to collect, where to proceed, how to conclude, etc. .&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Without much ado, let&#39;s go ahead.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;What&#39;s the problem ?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;   Some of us (DBA&#39;s) get bad performance notice from users &amp;amp; we might tend to directly jump into trying to find a solution. Instead of trying that, a better way to do that is to first find out what that problem is &amp;amp; how is it seen by the user. First, start with these questions asking the requestor :&lt;br /&gt;&lt;br /&gt;1     Is the whole application slow or only some modules are slow ?&lt;br /&gt;2.   When did you first notice this problem ?&lt;br /&gt;3.   Is the problem noticed all of sudden? Is it gradual ?&lt;br /&gt;4.   Is it recurring as you mentioned ?&lt;br /&gt;5.   Is there any recent upgrade to application ?&lt;br /&gt;6.   Is there any substantial increase in data ?&lt;br /&gt;7.   Is there any increase in number of concurrent users ?&lt;br /&gt;8.   Is there any increase in total number of users ?&lt;br /&gt;8.   Define the problem in your own words.&lt;br /&gt;9.   Suppose if we find the certain module of the application is causing the problem, Is it possible to change that module ?&lt;br /&gt;10.  Any other comments about the problem ?&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;PS : &lt;/span&gt;I recently got a request to bounce (/ restart) a PRODuction database from a user, stating that the DB was down. When I spoke to him, I discovered that just because he was not able to connect to his application &amp;amp; see anything, he thought the Oracle database behind his application, was down &amp;amp; needed a bounce. I already knew that the database was up &amp;amp; fine, I asked him to speak to the Application team. It was discovered as an application issue, never to be handled by a DBA :-)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;Tackle the problem now&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;   Once the problem is clear &amp;amp; the DBA knows that there is a real issue, one may follow these  sure-shot steps. You are welcome to follow your own strategy &amp;amp; resolve the issue. If anyone has some strategy to go about performance issues, please share your way of doing things, through comments on this post. I will incorporate them here, as your contribution.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Talk to the user who is facing the problem, to clarify any of the above inputs&lt;/li&gt;&lt;li&gt;Install &amp;amp; run STATSPACK on the concerned Oracle database. By default, spauto.sql schedules the snapshots hourly.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;STATSPACK would take some time to provide some useful report. Meanwhile, look at the other aspects below.&lt;/li&gt;&lt;li&gt;If the user knows some areas / schema / SQL / PL/SQL code areas of the database, which might be causing trouble, look at them once. Understand from the user, the database logic used in their &quot;problem operation&quot;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Analyze the database objects involved in the above key areas, for appropriate indexing, fresh statistics.&lt;/li&gt;&lt;li&gt;Look at the explain plan if there&#39;s already a SQL code pointed out , otherwise perform this step after you get STATSPACK report.&lt;/li&gt;&lt;li&gt;Start tracing for the schema(s) which the users use to connect to the database.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have the user run their operation once, to make sure it is captured in STATSPACK &amp;amp; the trace.&lt;/li&gt;&lt;li&gt;Generate the STATSPACK report &amp;amp; use my &quot;&lt;a href=&quot;http://databaseoracle.blogspot.com/2007/09/statspack-report-analysis.html&quot;&gt;STATSPACK post&lt;/a&gt;&quot; , the &quot;&lt;a href=&quot;http://www.akadia.com/services/ora_statspack_survival_guide.html&quot;&gt;Survival guide&lt;/a&gt;&quot; or a statspack analysis tool to see it in a more understandable format with recommendations too (this tool is not necessary, however, it is helpful).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Format the recent trace (with tkprof utility), generated after the trial of the concerned operation by the user.&lt;/li&gt;&lt;li&gt;Analyze the above 2 reports &amp;amp; find out the issues / areas to be focussed on. STATSPACK  report can list out top SQL&#39;s / PL/SQL areas of the database. We can start your real, concentrated analysis here. You may repeat steps 4, 5, 6, 7 again if required (most of the times, they will be).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the problem area is identified as PL/SQL code, it&#39;s best to use DBMS_PROFILER to find out the problem line(s) of code. You may use &quot;&lt;a href=&quot;http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_profil.htm&quot;&gt;Oracle official area&lt;/a&gt;&quot; to know how to use DBMS_PROFILER or try the database journal (you may just enter DBMS_PROFILER in a search engine &amp;amp; get 100&#39;s of results on how to use it). DBMS_PROFILER needs to be installed first as SYS user (profload.sql) &amp;amp; then some objects are created in the concerned schema through schema login (proftab.sql).&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Let me know your case-studies - I&#39;ll post them here too, along with mine. More on tuning later ...&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/4707210455787602708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2007/10/art-and-science-of-oracle-db.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/4707210455787602708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/4707210455787602708'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2007/10/art-and-science-of-oracle-db.html' title='The art and science of Oracle DB performance tuning'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-5707435781894299179</id><published>2007-09-26T11:45:00.000-04:00</published><updated>2007-10-01T18:21:19.899-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="trace"/><title type='text'>Tracing Errors</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOJPJK7cjXHRX3_N0QXb-5rypgsRDd_fbVff06hVvMpFLGl_HJd0_DkHTAPCliYl7ejdSfLPY-kqvPVprC887Cm4WBJcSsRo7I3bQs6JrOT_dreYqpwpM97OVS9fhXTzWH2lL7BA/s1600-h/grid.jpg&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5114602801673591906&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOJPJK7cjXHRX3_N0QXb-5rypgsRDd_fbVff06hVvMpFLGl_HJd0_DkHTAPCliYl7ejdSfLPY-kqvPVprC887Cm4WBJcSsRo7I3bQs6JrOT_dreYqpwpM97OVS9fhXTzWH2lL7BA/s320/grid.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;For most of us, writing procedures, functions or say just a PL/SQL Code Block based on a given logic is wasy. The challenge lies in designing and placing the &quot;Exception Handling&quot; Block with the intent of capturing the correct line of Code that raised the exception so that one can them Zoom into the erroneous line and do make the necessary fixes. Now many of you would agree that this comes with experience &#39;n&#39; ofcourse proactive thinking.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Now conder the following Code Snippet,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;WHEN NO_DATA_FOUND &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;THEN dbms_output.put_line (sqlerrm);&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;END;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;Looks familiar...? But here&#39;s a catch - this code block will keep rescuing us as far as Error String is less than 255 Characters. (The limitation with put_line() is that it can capture a max of 255 Characters). &lt;/div&gt;&lt;div align=&quot;left&quot;&gt;Oracle has revolved this by its offering -&lt;a href=&quot;http://oraclesvca2.oracle.com/docs/cd/B14117_01/appdev.101/b10802/d_util.htm&quot;&gt;DBMS_UTILITY&lt;/a&gt;.FORMAT_ERROR_STACK&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;BEGIN &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;error(); &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;EXCEPTION WHEN OTHERS THEN &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;DBMS_OUTPUT.PUT_LINE( SQLERRM ); &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;DBMS_OUTPUT.PUT_LINE( DBMS_UTILITY.FORMAT_ERROR_BACKTRACE ); &lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;END; &lt;/em&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;ORA-00900: invalid SQL statement&lt;/div&gt;&lt;div&gt;ORA-06512: at line 2&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;Now, as evident from output above, the information provided in error stack is sufficent for application error logs and can be worked upon accordingly. And the best part is there&#39;s no limitation of number of characters we can &lt;a href=&quot;http://oraclesvca2.oracle.com/docs/cd/B14117_01/appdev.101/b10802/d_util.htm#1002464&quot;&gt;capture&lt;/a&gt; in error stack. Makes life easy indeed :)&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/5707435781894299179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2007/09/tracing-errors.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5707435781894299179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5707435781894299179'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2007/09/tracing-errors.html' title='Tracing Errors'/><author><name>Chinmay</name><uri>http://www.blogger.com/profile/16841373377201134572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj29fEgD6SrIySavxV9jpSKt4ZCMkXDyk_xUnFKkP_GVXVMEmjDuJiHuKpUwDeViD9fpUbQbGs-36RAitVD2ByawlABgGT4ERXOFYsPiyxnxPeOLs57KVCaFaFT4k1bUY/s220/C.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOJPJK7cjXHRX3_N0QXb-5rypgsRDd_fbVff06hVvMpFLGl_HJd0_DkHTAPCliYl7ejdSfLPY-kqvPVprC887Cm4WBJcSsRo7I3bQs6JrOT_dreYqpwpM97OVS9fhXTzWH2lL7BA/s72-c/grid.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-5598441581964703897</id><published>2007-09-19T00:25:00.000-04:00</published><updated>2007-10-01T15:17:38.108-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Statspack report analysis</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9IOl5_di5McyCv3ZRU1A_xRRED2o3YDSwMcwyPe6nknw8MN_L3w-wfSBndbmHhyNpPdK1uIB-MltuO-7ILgeSzlY-d1O4M_w0sszdScT__447hdjmvaphH6fN824mFhob90oYaA/s1600-h/statsp.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9IOl5_di5McyCv3ZRU1A_xRRED2o3YDSwMcwyPe6nknw8MN_L3w-wfSBndbmHhyNpPdK1uIB-MltuO-7ILgeSzlY-d1O4M_w0sszdScT__447hdjmvaphH6fN824mFhob90oYaA/s400/statsp.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5111771168838038530&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Have you ever faced this ? ... You have your statspack report ready &amp;amp; are trying to work with your Statspack analyzer tool, which performs statspack report analysis &amp;amp; generates an html file, which is more understandable to non-DBA&#39;s too (with some charts, top-queries, recommendations, etc.) . At this moment, either your analysis tool gives up, or the website which you used for analysis, is unavailable (recently happened with oraperf, which we used) !&lt;br /&gt;A solution to this, for a DBA, is to be able to read through the statspack report &amp;amp; identify the key areas, issues of importance . This place offers a simple &lt;a href=&quot;http://www.akadia.com/services/ora_statspack_survival_guide.html&quot;&gt;statspack survival guide&lt;/a&gt;, to help understand the report. Hope this helps a DBA in speedy statspack analysis, instead of depending on a tool that is not working, or giving erratic results.&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/5598441581964703897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2007/09/statspack-report-analysis.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5598441581964703897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/5598441581964703897'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2007/09/statspack-report-analysis.html' title='Statspack report analysis'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9IOl5_di5McyCv3ZRU1A_xRRED2o3YDSwMcwyPe6nknw8MN_L3w-wfSBndbmHhyNpPdK1uIB-MltuO-7ILgeSzlY-d1O4M_w0sszdScT__447hdjmvaphH6fN824mFhob90oYaA/s72-c/statsp.JPG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-116259810487587910</id><published>2006-11-03T18:24:00.000-05:00</published><updated>2007-10-01T15:17:38.108-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Permitting a user on UNIX / Linux to use sqlplus</title><content type='html'>We encountered an interesting scenario worth mentioning.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(102, 102, 204);&quot;&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Oracle is installed on a Linux server newly &amp; another ftp user wants to just use sqlplus also.&lt;/li&gt;&lt;li&gt;Just setting the ORACLE_HOME, LD_LIBRARY_PATH, ORACLE_SID, PATH in the user&#39;s profile did not let him run the &quot;sqlplus&quot; command at all. The error shown was :&lt;br /&gt;&lt;/li&gt;&lt;li&gt;$ sqlplus                                                                     &lt;br /&gt;ld.so.1: sqlplus: fatal: /app/oracle/product/10.2/lib/libsqlplus.so: Permission&lt;br /&gt;denied                                                                        &lt;br /&gt;Killed                                                                        &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The files under &quot;lib&quot; directory under home didn&#39;t have permission for anybody other than &quot;oracle&quot; user. &lt;img src=&quot;file:///C:/DOCUME%7E1/singarea/LOCALS%7E1/Temp/moz-screenshot-2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;&lt;li&gt;-rwxr-x---   1 oracle   oinstall 1320016 Jun 28  2005 /app/oracle/product/10.2/lib/libsqlplus.so                                                              &lt;br /&gt;&lt;/li&gt;&lt;li&gt;When we permit the other users (other than oracle) to read/execute on the lib directory (chmod -R o+rx $ORACLE_HOME/lib), the error changed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;$ sqlplus&lt;br /&gt;Error 6 initializing SQL*Plus&lt;br /&gt;Message file sp1&lt;lang&gt;.msb not found&lt;br /&gt;SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory&lt;/lang&gt;&lt;/li&gt;&lt;li&gt;Now, sqlplus is looking for sp1us.lang file under $ORACLE_HOME/sqlplus/mesg directory as per the information available on Oracle forums. Hence, the error. I allowed the others to &quot;rx&quot; here too.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The error changed again :&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;file:///C:/DOCUME%7E1/singarea/LOCALS%7E1/Temp/moz-screenshot-3.jpg&quot; alt=&quot;&quot; /&gt;$ sqlplus&lt;br /&gt;SP2-1503: Unable to initialize Oracle call interface&lt;br /&gt;SP2-0152: ORACLE may not be functioning properly&lt;/li&gt;&lt;li&gt;The actual procedure followed was to allow &quot;rx&quot; on all directories after &quot;sqlplus&quot; &amp;amp; then removing &quot;rx&quot; privilege one-by-one from each unimportant directory &amp; testing sqlplus command at each step, from another session.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I used a little script to change all the directory permissions interactively, only if I want to (by looking at the name &amp;amp; thinking as an Oracle DBA ;-) )  and ran this from inside ORACLE_HOME .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;$ for i in `ls $ORACLE_HOME`;&lt;br /&gt;do&lt;br /&gt;echo &quot;Dir or file : $i&quot;;&lt;br /&gt;echo &quot;change ?&quot;;&lt;br /&gt;read ans;&lt;br /&gt;if [ $ans -eq &#39;1&#39; ];&lt;br /&gt;then chmod -R o-rx $i;&lt;br /&gt;else echo &quot;Didn&#39;t change&quot;;&lt;br /&gt;fi;&lt;br /&gt;done                                                              &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The new information I discovered was on allowing &quot;rx&quot; to &quot;oracore&quot; directory in ORACLE_HOME, &quot;sqlplus&quot; started working. There&#39;s a mesg directory there too, which none of the errors pointed to :-( !&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-weight: bold; color: rgb(102, 102, 204);&quot;&gt;Conclusion :&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;For any normal user (not a part of &quot;oinstall&quot; / &quot;dba&quot; groups ) to be able to run sqlplus and access an ORACLE database , read/execute permissions are required for these 4 directories :&lt;/li&gt;&lt;ol&gt;&lt;li&gt;$ORACLE_HOME/bin&lt;/li&gt;&lt;li&gt;$ORACLE_HOME/lib&lt;/li&gt;&lt;li&gt;$ORACLE_HOME/oracore&lt;/li&gt;&lt;li&gt;$ORACLE_HOME/sqlplus&lt;/li&gt;&lt;/ol&gt;&lt;li&gt; In addition, these 4 parameters should also be set in the user&#39;s environment (.profile) :&lt;/li&gt;&lt;ol&gt;&lt;li&gt;ORACLE_HOME,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;LD_LIBRARY_PATH,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ORACLE_SID,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PATH&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/116259810487587910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/11/permitting-user-on-unix-linux-to-use.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/116259810487587910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/116259810487587910'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/11/permitting-user-on-unix-linux-to-use.html' title='Permitting a user on UNIX / Linux to use sqlplus'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-115931057423601946</id><published>2006-09-26T14:58:00.000-04:00</published><updated>2007-10-01T18:21:54.880-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="interview"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Oracle DBA Interview process</title><content type='html'>As a standard practice, the  DBA selection process is split into 3 phases :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Screening of resumes &amp;amp; filtering out the suitable candidates that can be interviewed.&lt;/li&gt;&lt;li&gt;Scheduling &amp;amp; completing the interviews (rating &amp;amp; grading also go hand-in-hand during interview).&lt;/li&gt;&lt;li&gt;Final rating of candidates &amp;amp; decision making.&lt;/li&gt;&lt;/ol&gt;   The above procedures are described in detail below :&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 153, 0); font-weight: bold;&quot;&gt;Screening of resumes &amp;amp; filtering out the suitable candidates that can be interviewed :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is one of the relatively simpler stages.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When we receive resumes for DBA interviews, the first step is to skim through it &amp;amp; get a general idea about the layout, tidiness, clutter (if any) of the resume. &lt;/li&gt;&lt;li&gt;However, care needs to be taken to not reject a resume due to an unnecessary detail mentioned. The candidate might still be worth a trial.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 153, 0);&quot;&gt;Scheduling &amp;amp; completing the interviews (rating &amp;amp; grading also go hand-in-hand during interview) :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If possible, have multiple DBA&#39;s design and take the interview.&lt;/li&gt;&lt;li&gt;Use the rating chart (illustrated in next section) during the interview also. This will provide rough figures.&lt;/li&gt;&lt;li&gt;After the interview, consulting other DBA&#39;s who were present during interview, finalize the ratings.&lt;/li&gt;&lt;li&gt;We describe below a set of interview questions that we use progressively, to rate candidates on DBA track.&lt;/li&gt;&lt;li&gt;The &lt;span style=&quot;font-weight: bold;&quot;&gt;standard first question &lt;/span&gt;that we ask to get the candidate comfortable &amp;amp; be able to exhibit his best, is to invite him to introduce himself as a DBA throughout his carrier since he / she started working.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Preliminary screening questions :&lt;/span&gt;    These questions should be used to filter out candidates at an initial stage by testing the conceptual knowledge &amp;amp; smaller details about database administration. If one passes 70% of a chosen subset of preliminary questions, move to intermediate test. Same law applies to next section too. If preliminary passing is below 70%, pick only 2 questions from each next phase &amp;amp; seek answers.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is tnsping ? Can you use tnsping to confirm the database status ? Always ?&lt;/li&gt;&lt;li&gt;What are the database startup phases ? What&#39;s importance of each phase ?&lt;/li&gt;&lt;li&gt;How to monitor a log file that is continuously updated ? How do you monitor databases ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do you go about tuning a SQL statement ? What is Explain plan &amp;amp; what is it&#39;s use ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Types of backups ? Difference between hot, cold, logical backups ?&lt;/li&gt;&lt;li&gt;Difference between data block, extent &amp;amp; segment ? What is meant by PCTFREE &amp;amp; PCTUSED ? &lt;/li&gt;&lt;li&gt;Difference between truncate &amp;amp; delete ? Difference between CHAR(10) / VARCHAR2(10) ?&lt;/li&gt;&lt;li&gt;Unix (if worked) : How to see hidden files ? How to search specific text in unknown files ?&lt;/li&gt;&lt;li&gt;What&#39;s the significance of listener configuration file on a client ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Intermediate-knowledge test :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Difference between gv$, v$, v_$ &amp;amp; x$ objects ?&lt;/li&gt;&lt;li&gt;How does column cardinality affect your choice of indexes during DB design ?&lt;/li&gt;&lt;li&gt;Statspack (if worked) : What are the levels of snapshots ? How to install &amp;amp; deinstall Statspack ? How would you use it for clustered environment ?&lt;/li&gt;&lt;li&gt;DB cloning procedure ? &lt;/li&gt;&lt;li&gt;How&#39;d you recreate a parent table without affecting the child objects ?&lt;/li&gt;&lt;li&gt;Import - 40 GB &amp;amp; Undo tablespace - 20 / 30 GB - how to import ? How to improve import performance ?&lt;/li&gt;&lt;li&gt;RMAN (if worked) : Recovery procedure ?&lt;/li&gt;&lt;li&gt;How to find Oracle background processes in Windows ?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Advanced database administration questions :&lt;/span&gt;&lt;br /&gt;We call these as &quot;super questions&quot; - which are the most tricky, with maximum chances of error. With clarity of concepts and enough experience, one can answer these.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to sync up the OEM with agent ?&lt;/li&gt;&lt;li&gt;Significant requirements / points of complete / incomplete recovery ?&lt;/li&gt;&lt;li&gt;Import - multiple times ? What should be the strategy ? &lt;/li&gt;&lt;li&gt;What should be the backup strategy of a large database - in TB&#39;s ?&lt;/li&gt;&lt;li&gt;We have a set of datafiles without controlfile &amp;amp; without DB-name on a disc. How to recover the database ? &lt;/li&gt;&lt;li&gt;RAC setup requirements &amp;amp; procedure ?&lt;/li&gt;&lt;li&gt;How to grant read-only access to v$session ?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Answer guidelines to above Oracle DBA interview questions :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Preliminary screening questions :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is tnsping ? Can you use tnsping to confirm the database status ? Always ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;Oracle utility to verify the status of a DB listener. No, we can never use - only listener can be verified.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What are the database startup phases ? What&#39;s importance of each phase ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Instance start (SGA allocation based on init parameters), Mount (read control file &amp;amp; locate database files), open (open all the files in read-write mode - or read-only if a tablespace is read-only)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to monitor a log file that is continuously updated ? How do you monitor databases ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Write a script, schedule in cron for frequent intervals. Script can have a temporary copy of log &amp;amp; compare (diff) it with current log at every run, if there&#39;s difference, REPORT to DBA &amp;amp; replace old temporary copy with current copy.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A.&lt;/span&gt; OEM / Unix scripts / manually&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do you go about tuning a SQL statement ? What is Explain plan &amp;amp; what is it&#39;s use ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Look at syntax, explain plan, index availability &amp;amp; usage, full table scans, etc. . Explain plan is an Oracle feature to see &amp;amp; analyze the detailed execution path of any SQL statement.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Types of backups ? Difference between hot, cold, logical backups ? How do you shutdown DB for logical backup ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Hot / online - DB isn&#39;t shutdown (tablespace begin / end backup is used); Logical - export (no shutdown) , Cold - shutdown &amp;amp; backup files.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Difference between data block, extent &amp;amp; segment ? What is meant by PCTFREE &amp;amp; PCTUSED ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;Data block - smallest unit of allocation in database; extent - group of data blocks that can be allocated to an object; segment - group of extents belonging to a specific database object.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Difference between truncate &amp;amp; delete ? Difference between CHAR(10) / VARCHAR2(10) ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;&#39;trunc&#39; resets high-water mark, deallocates space, can&#39;t be rolled back; &#39;delete&#39; doesn&#39;t reset HWM as it doesn&#39;t release space, &amp;amp; can be rolled back.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;CHAR(n) type allocates n fixed bytes, where VARCHAR2(n) allocates space upto n bytes only when an actual value is used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Unix (if worked) : How to see hidden files ? How to search specific text in unknown files ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;&#39;-a&#39; ; grep &quot;txt&quot; ./*&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What&#39;s the significance of listener configuration file on a client ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;No significance - it&#39;s not used.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Intermediate-knowledge test :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Difference between gv$, v$, v_$ &amp;amp; x$ objects ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;V_$ views are created over X$ base tables . v_$ views have v$ synonyms &amp;amp; gv$ views are global views that  have multiple instance information (of the same DB - as in Oracle parallel server, RAC)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How does column cardinality affect your choice of indexes during DB design ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;If table is large &amp;amp; any column&#39;s cardinality to total rows ratio is small (less than 1:200), that column should have bitmap index creteated on in, if it is used in queries. Simply, if the unique values in a column is quite less, as compared to total rows in a table,bitmap index is required for better performance.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Statspack (if worked) : What are the levels of snapshots ? How to install &amp;amp; deinstall Statspack ? How would you use it for clustered (say unix level) environment ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;L1-7 ; Installation / removal - spcreate / spdrop ; Cluster - no change, as it is installed on the database level, not instance level.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;DB cloning procedure ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;map &amp;amp; place online / cold backup data files --&gt; generate &amp;amp; edit basic text controlfile --&gt; nomount --&gt; run &#39;create controlfile&#39; from basic controlfile --&gt; OPEN with restlogs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How&#39;d you recreate a parent table without affecting the child objects ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Disable constraints, recreate, enable.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Import - 40 GB &amp;amp; Undo tablespace - 20 / 30 GB - how to import ? How to improve import performance ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;Use commit ; Performance : groups of schemas in parallel&lt;br /&gt;&lt;/li&gt;&lt;li&gt;RMAN (if worked) : Recovery procedure ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Tape identification --&gt; restore --&gt; recover&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to find Oracle background processes in Windows ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &#39;&lt;/span&gt;procexp&#39; - a windows tool helps find the Windows threads, which  are Oracle background processes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 102, 255);&quot;&gt;Advanced database administration questions :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to sync up the OEM with agent ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Shut agent, remove server, clean agent directories (of .q &amp;amp; snmp.ro / rw files), restart, discover server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Significant requirements / points of complete / incomplete recovery ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;Complete - point-in-time (time based / ARCH no. based), incomplete - past-time recovery with resetlogs (cancel based)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Import - multiple times ? What should be the strategy ? &lt;/li&gt;&lt;li&gt;What should be the backup strategy of a large database - in TB&#39;s ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;RMAN - incremental L1 daily, Full L0 weekly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We have a set of datafiles without controlfile &amp;amp; without DB-name on a disc. How to recover the database ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A&lt;/span&gt;. Generate basic text control file from any DB --&gt; map &amp;amp; arrange available datafiles --&gt; edit text controlfile  for new paths &amp;amp; DB name --&gt; NOMOUNT DB --&gt; run the file as .sql --&gt; OPEN DB with resetlogs &lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;RAC setup requirements &amp;amp; procedure ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A.&lt;/span&gt; Requirements - A. mimimum 2 servers, NAS storage, 2 NIC cards on all servers&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;A. &lt;/span&gt;Procedure - Coming soon.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to grant read-only access to v$session ?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;A. &lt;/span&gt;Grant select to v_$session&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 153, 0); font-weight: bold;&quot;&gt;Final rating of candidates &amp;amp; decision making :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For effective rating, have a chart ready to list your comments &amp;amp; grades. We use a standard chart like this (open the chart in another window, for clarity, by clicking on it).&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/330/2020/1600/intervu.0.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 673px; height: 202px;&quot; src=&quot;http://photos1.blogger.com/blogger/330/2020/400/intervu.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Feel free to add / subtract columns to the above Oracle DBA rating chart based on your individual interview requirements.&lt;/li&gt;&lt;li&gt;It&#39;s good to add interview dates, contact numbers, in &quot;remarks&quot; field along with other comments.&lt;/li&gt;&lt;li&gt;Have another round of interview if you feel necessary &amp;amp; make your decision based on the ratings.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;When you prepare well &amp;amp; go well equipped with your weapons, you will have successful interviews &amp;amp; candidates would also be happy about the professionalism of the interviewer. Happy interviewing !&lt;/span&gt;&lt;br /&gt;Feel free ask me any questions, through comments on this page.&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/115931057423601946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/09/oracle-dba-interview-process.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/115931057423601946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/115931057423601946'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/09/oracle-dba-interview-process.html' title='Oracle DBA Interview process'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-115655109687891416</id><published>2006-08-25T20:08:00.000-04:00</published><updated>2007-10-01T15:17:38.109-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Oracle certification information</title><content type='html'>Information to be posted soon .&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/115655109687891416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/08/oracle-certification-information.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/115655109687891416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/115655109687891416'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/08/oracle-certification-information.html' title='Oracle certification information'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-114410544177442901</id><published>2006-04-03T19:02:00.000-04:00</published><updated>2007-10-01T15:17:38.109-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Useful links on Oracle database and related topics</title><content type='html'>&lt;ol&gt;   &lt;li&gt;A place to find some useful scripts (database related Unix shell / SQL / PL/SQL / monitoring / Tuning etc.) : &lt;a href=&quot;http://www.orafaq.com/scripts/index.htm#UNIX&quot;&gt;Orafaq&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;Oracle Apps (applications) / E-business suite related tips : &lt;a href=&quot;http://searchoracle.techtarget.com/tipsIndex/0,289482,sid41_tax294569_alpD_idx0,00.html&quot;&gt;Searchoracle&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;A useful book available on &lt;a href=&quot;http://anshoe.alfaped.hop.clickbank.net&quot;&gt;Oracle Database Normalization&lt;/a&gt; . I&#39;ll review this soon &amp;amp; post here.&lt;br /&gt;  &lt;/li&gt; &lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/114410544177442901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/04/useful-links-on-oracle-database-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/114410544177442901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/114410544177442901'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/04/useful-links-on-oracle-database-and.html' title='Useful links on Oracle database and related topics'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-113761391761578492</id><published>2006-01-18T14:38:00.000-05:00</published><updated>2007-10-01T15:17:38.109-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>How to upgrade Oracle 9.2.0.1 to 9.2.0.5 or 9.2.0.6 (9i versions)</title><content type='html'>Applying Oracle upgrade to version 9.2.0.5 (patchset 3501955) or 9.2.0.6 (patchset 3948480)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Applying Oracle 9i Patch (This can be used for the Oracle client and server both)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; 1.      Log in to the database server machine as the oracle user (administrator role in case of windows) on Unix.&lt;br /&gt; 2.      Make sure that your environment contains the correct values for the ORACLE_HOME and ORACLE_SID variables.&lt;br /&gt; 3.      Stop the listener process (in case of Oracle server upgrade). As the oracle user:&lt;br /&gt;&lt;br /&gt;    lsnrctl stop&lt;br /&gt;             &lt;br /&gt;4. Download the patchset Extract the 9.2.0.5 patchset (3501955) or 9.2.0.6 patch set (3948480) archive into a temporary directory.&lt;br /&gt; 5.      Change to the directory that contains the 9.2.0.5 or 9.2.0.6 patch archive and execute the following:&lt;br /&gt;&lt;br /&gt;Unzip the patch archive, viz. p3948480_9206_***.zip (this example is for Linux. Windows &amp; other Unix patch names would be different.)&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt; 6.      Install the Oracle Universal Installer (setup.exe in case of Windows patch) :&lt;br /&gt;&lt;br /&gt;    cd /usr/local/tmp/oracle/patches/3948480&lt;br /&gt;    Disk1/runInstaller &amp;amp;&lt;br /&gt;     &lt;br /&gt;    Welcome&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Specify File Locations&lt;br /&gt;      Source Path: choose default&lt;br /&gt;      Destination Name: ORACLE_HOME&lt;br /&gt;      Destination Path: /usr/local/oracle/products/9.2&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Select a Product to Install&lt;br /&gt;      Select: Oracle Universal Installer 10.1.0.3.0&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Summary&lt;br /&gt;        Install -&gt;&lt;br /&gt;    End of Installation&lt;br /&gt;        Exit&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt; 7.      Install the Oracle 9.2.0.6 patch set:&lt;br /&gt;&lt;br /&gt;    Disk1/runInstaller &amp;&lt;br /&gt;&lt;br /&gt;    Welcome&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Specify File Locations&lt;br /&gt;      Source Path: choose default&lt;br /&gt;      Destination Name: ORACLE_HOME&lt;br /&gt;      Destination Path: &lt;oracle-home&gt;&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Select a Product to Install&lt;br /&gt;      Select: Oracle 9iR2 Patch Set 9.2.0.6.0&lt;br /&gt;        Next -&gt;&lt;br /&gt;    Summary&lt;br /&gt;        Install -&gt;&lt;br /&gt;&lt;br /&gt;        A window will open and you will be prompted to execute (This will not happen in Windows)&lt;br /&gt;        root.sh. Open a console window and run $ORACLE_HOME/root.sh as&lt;br /&gt;&quot;root&quot; user of Unix.&lt;br /&gt;          OK -&gt;&lt;br /&gt;    End of Installation&lt;br /&gt;        Exit&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Database Upgrade Presteps&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Before upgrading the database, do the following:&lt;br /&gt;&lt;br /&gt;  *&lt;br /&gt;&lt;br /&gt;If JServer is part of the installation, ensure that there is at least 10 MB of free space allocated to the SYSTEM tablespace.&lt;br /&gt;  *&lt;br /&gt;&lt;br /&gt;    For RAC installations, ensure that there is at least 50 MB of free space allocated to the XDB tablespace.&lt;br /&gt;  *&lt;br /&gt;&lt;br /&gt;    Set the value of the SHARED_POOL_SIZE and the JAVA_POOL_SIZE initialization parameters as follows:&lt;br /&gt;       1.            Start the database:&lt;br /&gt;&lt;br /&gt;          SQL&gt; startup&lt;br /&gt;                         &lt;br /&gt;&lt;br /&gt;2. Enter the following command to determine whether the system uses an initialization parameter file (initsid.ora) or a server parameter file (spfiledbname.ora):&lt;br /&gt;&lt;br /&gt;          SQL&gt; show parameter pfile;&lt;br /&gt;                         &lt;br /&gt;&lt;br /&gt;          This displays the name and location of the server parameter file or the initialization parameter file.&lt;br /&gt;&lt;br /&gt;          &lt;span style=&quot;font-weight: bold;&quot;&gt;If the system is using a server parameter file, do the following&lt;/span&gt;:&lt;br /&gt;1. Execute the following command to display the current value of the SHARED_POOL_SIZE initialization parameter:&lt;br /&gt;&lt;br /&gt;                SQL&gt; show parameter shared_pool_size;&lt;br /&gt;                                     &lt;br /&gt;&lt;br /&gt;2. If SHARED_POOL_SIZE initialization parameter is less than 150 MB, execute the following command:&lt;br /&gt;&lt;br /&gt;                SQL&gt; alter system set shared_pool_size=&#39;150M&#39; scope=spfile;&lt;br /&gt;                                     &lt;br /&gt;&lt;br /&gt;3. Execute the following command to display the current value of the JAVA_POOL_SIZE initialization parameter:&lt;br /&gt;&lt;br /&gt;                SQL&gt; show parameter java_pool_size;&lt;br /&gt;                                     &lt;br /&gt;&lt;br /&gt;4. If the JAVA_POOL_SIZE initialization parameter is less than 150 MB, execute the following command:&lt;br /&gt;&lt;br /&gt;                        &lt;br /&gt;                SQL&gt; alter system set java_pool_size=&#39;150M&#39; scope=spfile;&lt;br /&gt;                                     &lt;br /&gt;&lt;br /&gt;       3.            Shut down the database:&lt;br /&gt;&lt;br /&gt;          SQL&gt; shutdown immediate;&lt;br /&gt;                     &lt;br /&gt;&lt;br /&gt;          [Note]    Note&lt;br /&gt;&lt;br /&gt;The UF installation uses an spfile (Oracle9i Database will automatically use the $ORACLE_HOME/dbs/spfilewebct.ora file if it exists), but we want to make sure that the pfile and the spfile match up to reduce confusion.&lt;br /&gt;&lt;br /&gt;          If you adjust the above parameters, run the following:&lt;br /&gt;&lt;br /&gt;          SQL&gt; create pfile from spfile;&lt;br /&gt;                       &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Upgrading the Database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Perform the following steps on every database associated with the upgraded Oracle home:&lt;br /&gt;&lt;br /&gt; 1.      Log in as the oracle user:&lt;br /&gt;&lt;br /&gt;    sqlplus /nolog&lt;br /&gt;    SQL&gt; connect / as sysdba&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt; 2.      Enter the following SQL*Plus commands:&lt;br /&gt;&lt;br /&gt;    SQL&gt; startup migrate&lt;br /&gt;    SQL&gt; spool patch.log&lt;br /&gt;    SQL&gt; @?/rdbms/admin/catpatch.sql&lt;br /&gt;    SQL&gt; spool off&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;3. Review the patch.log file for errors and inspect the list of components that is displayed at the end of catpatch.sql script. This list provides the version and status of each SERVER component in the database. If necessary, rerun the catpatch.sql script after correcting any problems.&lt;br /&gt; 4.      Restart the database:&lt;br /&gt;&lt;br /&gt;    SQL&gt; shutdown immediate&lt;br /&gt;    SQL&gt; startup&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt; 5.      Execute the following script to recompile all invalid PL/SQL packages now. (This step is optional but recommended.)&lt;br /&gt;&lt;br /&gt;    SQL&gt; @?/rdbms/admin/utlrp.sql&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt; 6.      Restart the listener process (in case of Oracle server). As the oracle user:&lt;br /&gt;&lt;br /&gt;    lsnrctl start&lt;/oracle-home&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/113761391761578492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/01/how-to-upgrade-oracle-9201-to-9205-or.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/113761391761578492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/113761391761578492'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/01/how-to-upgrade-oracle-9201-to-9205-or.html' title='How to upgrade Oracle 9.2.0.1 to 9.2.0.5 or 9.2.0.6 (9i versions)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20407371.post-113615495861634528</id><published>2006-01-01T17:16:00.000-05:00</published><updated>2007-10-01T15:17:38.109-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>The art &amp; science of working with Oracle databases &amp; applications</title><content type='html'>I&#39;m an Oracle database &amp; applications specialist - that&#39;s what I call myself, for my experience, certifications &amp;amp; interest in the subject &amp; the technology. Oracle database administration (DBA) &amp;amp; Apps (also called as Oracle Applications) are my passion, as well as my job, my food &amp; water :-) . I&#39;m a certified OCP (Oracle Certified professional) for Oracle 9i and 8i both. I&#39;m planning further certifications soon - 10g and Apps DBA.&lt;br /&gt;&lt;br /&gt;I was recently looking for some information on Oracle Apps, when I landed upon a very useful discussion on &lt;a href=&quot;http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:637183178058&quot;&gt;Asktom website&lt;/a&gt; . I immediately thought, that I must save this piece of research somewhere, or it would be lost soon. After spending so much of resources research, I figure out that Asktom is a really wonderful resource of truthful &amp;amp; to the point information on the subject. Tom Kyte works in Oracle Corp. &amp; knows things in and out. A good source of Oracle Demos, news &amp;amp; developments is &lt;a href=&quot;http://www.psoug.org/library.html&quot;&gt;PSOUG.org&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Another rather small and useful piece of information was found in &lt;a href=&quot;http://www.dbaclick.com/forums/archive/28/3123.html&quot;&gt;Sridhar&#39;s posts&lt;/a&gt;, who seems to have researched the subject well. I appreciate his focussed information, organized into numbered statements. Two alltime good resources of Apps related information are &lt;a href=&quot;http://www.oracle.com/technology/community/apps/index.html&quot;&gt;Oracle Applications Community&lt;/a&gt; and included here, is &lt;a href=&quot;http://www.oracle.com/technology/documentation/applications.html&quot;&gt;Apps documentation&lt;/a&gt; . I&#39;ve found a really useful Oracle Apps blog (my wife searched for me :-) )  -- &lt;a href=&quot;http://www.Oracleappsblog.com&quot;&gt;Oracleappsblog&lt;/a&gt; . If you want to search for some more resources, try the Google search box below (there are few good ones on the left sidebar). You&#39;ll find Database industry news at the bottom.&lt;br /&gt;&lt;br /&gt;I myself plan to contribute some interesting pieces of knowledge which are not available in books &amp; could be gained only through experience &amp;amp; research. This would be my target in later posts on this page. So, here goes my first Oracle technology post ! I better keep it small &amp;amp; simple :-)&lt;br /&gt;&lt;br /&gt;--Anshu&lt;div class=&quot;blogger-post-footer&quot;&gt;We take every feedback seriously. Please leave feedback through comments section of the blog.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://databaseoracle.blogspot.com/feeds/113615495861634528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://databaseoracle.blogspot.com/2006/01/art-science-of-working-with-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/113615495861634528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20407371/posts/default/113615495861634528'/><link rel='alternate' type='text/html' href='http://databaseoracle.blogspot.com/2006/01/art-science-of-working-with-oracle.html' title='The art &amp; science of working with Oracle databases &amp; applications'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15207948281742132150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>