<?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-8181968733178829558</id><updated>2024-10-05T00:02:06.272-03:00</updated><category term="Oracle Database"/><category term="Oracle Database 11g"/><category term="Oracle 11g"/><category term="RMAN"/><category term="Oracle Database 10g"/><category term="Restore Database"/><category term="Tuning"/><category term="01180"/><category term="1180"/><category term="11g"/><category term="6.5"/><category term="Audit Trail"/><category term="BIGFILES"/><category term="Backups"/><category term="Clone ORACLE_HOME"/><category term="Clone Software Oracle"/><category term="Composite Index"/><category term="Copy ORACLE_HOME"/><category term="Default Auditing"/><category term="FGA"/><category term="FTS"/><category term="Full table scan"/><category term="Function Based Index"/><category term="Function-Based Index"/><category term="IS NULL"/><category term="Manage Audit Space"/><category term="Manage Audit Storage"/><category term="Multisection"/><category term="OEL"/><category term="ORA-01180"/><category term="ORA-01180: can not create datafile 1"/><category term="ORA-04023"/><category term="ORA-04023: Object SYS.STANDARD could not be validated or authorized"/><category term="ORACLE_HOME"/><category term="Oracle Auditing"/><category term="Oracle on Windows"/><category term="SYS.STANDARD"/><category term="TZ_VERSION"/><category term="VALUES"/><category term="WHERE clause"/><category term="backup database"/><category term="connection"/><category term="dba_dependencies"/><category term="dependencies"/><category term="error"/><category term="hierarquical"/><category term="local"/><category term="ohasd failed to start: Inappropriate ioctl for device"/><category term="oracle"/><category term="oracle enterprise linux"/><category term="oracle grid infraestructure"/><category term="password"/><category term="section"/><category term="security"/><category term="sqlplus"/><category term="user$"/><title type='text'>Blog do DBA Valentim</title><subtitle type='html'>Blog onde conhecimentos na área de TI, especialmente em banco de dados, são compartilhados assim como de como é o dia-a-dia de um DBA.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-5788548637229901603</id><published>2017-06-09T17:05:00.000-03:00</published><updated>2017-06-09T17:07:31.314-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dba_dependencies"/><category scheme="http://www.blogger.com/atom/ns#" term="dependencies"/><category scheme="http://www.blogger.com/atom/ns#" term="hierarquical"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><title type='text'>How to get Oracle Database dependents objects</title><content type='html'>&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Hi folks, (português mais abaixo)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;After some time I decided to continue posting at this blog even having a channel on youtube. My channel was created to share some stuff like tips, experiences, tutorials about Databases (specially Oracle), Linux and new techologies all in portuguese language.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;If you are interested in this stuff, please go to &lt;a href=&quot;https://www.youtube.com/channel/UCDncbo0hpBTEYMjZNZwsfmw&quot;&gt;https://www.youtube.com/channel/UCDncbo0hpBTEYMjZNZwsfmw&lt;/a&gt; and subscribe.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Today, I&#39;m glad to share with you a query to get objects dependencies in Oracle Databases. It&#39;s very useful when you have to change some object and want to see if some others objects have to be updated too to avoid a broken application. Here I&#39;m using a hierarchical query to get object depedency by level:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT LPAD(&#39;-&#39;,level) || owner || &#39;.&#39; || name ||&#39;(&#39;|| type || &#39;)&#39; DEPENDENCY&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;FROM dba_dependencies&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;CONNECT BY PRIOR owner = referenced_owner AND prior name = referenced_name&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND prior type = referenced_type&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;START WITH referenced_owner = &#39;&amp;amp;owner&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND referenced_name = &#39;&amp;amp;object&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND owner IS NOT NULL;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;You have to provide OWNER and OBJECT you are going to change. The depedencies will be tree-like displayed as below:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; / &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Enter value for owner: HR&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Enter value for object: JOB_HISTORY&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;-HR.ADD_JOB_HISTORY(PROCEDURE)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;-HR.UPDATE_JOB_HISTORY(TRIGGER)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;2 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Output above means UPDATE_JOB_HISTORY trigger depends on ADD_JOB_HISTORY procedure that depends on JOB_HISTORY table (provided object). Let&#39;s check:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; select text from dba_source where name=&#39;UPDATE_JOB_HISTORY&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;TRIGGER update_job_history&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; AFTER UPDATE OF job_id, department_id ON employees&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; FOR EACH ROW&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &lt;b&gt;add_job_history&lt;/b&gt;(:old.employee_id, :old.hire_date, sysdate,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :old.job_id, :old.department_id);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;7 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; select text from dba_source where name=&#39;ADD_JOB_HISTORY&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;PROCEDURE add_job_history&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; ( &amp;nbsp;p_emp_id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.employee_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_start_date &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.start_date%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_end_date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.end_date%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_job_id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.job_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_department_id &amp;nbsp; job_history.department_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;IS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; INSERT INTO &lt;b&gt;job_history&lt;/b&gt; (employee_id, start_date, end_date,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_id, department_id)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;END add_job_history;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;13 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;I hope this helps you, as DBA or DEVELOPER, to avoid broke things up when changing objects.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Til next post.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Eduardo Valentim&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;-------------------------------------------------- Português --------------------------------------------------&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Fala pessoal,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Depois de algum tempo decidi continuar postando nesse blog mesmo tendo um canal no youtube. Meu canal foi criado para compartilhar algumas coisas como dicas, experiências, tutoriais sobre bancos de dados (principalmente Oracle), Linux e novas tecnologias tudo em português. Se estiver interessado nesse tipo de coisa, por favor acesse&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCDncbo0hpBTEYMjZNZwsfmw&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;https://www.youtube.com/channel/UCDncbo0hpBTEYMjZNZwsfmw&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;e assine o canal.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Hoje estou feliz de trazer pra você uma consulta para obter as dependências de objetos no banco de dados Oracle. É muito útil quando você tem que alterar algum objeto e quer ver se outros objetos também precisam ser atualizados para evitar que a aplicação &quot;quebre&quot;. Aqui estou usando uma consulta hierárquica para obter o nível de dependência dos objetos&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT LPAD(&#39;-&#39;,level) || owner || &#39;.&#39; || name ||&#39;(&#39;|| type || &#39;)&#39; DEPENDENCY&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;FROM dba_dependencies&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;CONNECT BY PRIOR owner = referenced_owner AND prior name = referenced_name&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND prior type = referenced_type&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;START WITH referenced_owner = &#39;&amp;amp;owner&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND referenced_name = &#39;&amp;amp;object&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;AND owner IS NOT NULL;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Você precisa fornecer o OWNER e o OBJECT que você modificará. As dependências aparecerão no estilo árvore conforme abaixo&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; / &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Enter value for owner: HR&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Enter value for object: JOB_HISTORY&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;-HR.ADD_JOB_HISTORY(PROCEDURE)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;-HR.UPDATE_JOB_HISTORY(TRIGGER)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;2 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;A saída acima significa que a trigger&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;UPDATE_JOB_HISTORY depende da procedure ADD_JOB_HISTORY que depende da tabela JOB_HISTORY (objeto informado). Vamos verificar:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; select text from dba_source where name=&#39;UPDATE_JOB_HISTORY&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;TRIGGER update_job_history&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; AFTER UPDATE OF job_id, department_id ON employees&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; FOR EACH ROW&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;add_job_history&lt;/b&gt;(:old.employee_id, :old.hire_date, sysdate,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :old.job_id, :old.department_id);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;7 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SYS@TEST &amp;gt; select text from dba_source where name=&#39;ADD_JOB_HISTORY&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;PROCEDURE add_job_history&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; ( &amp;nbsp;p_emp_id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.employee_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_start_date &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.start_date%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_end_date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.end_date%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_job_id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_history.job_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;, p_department_id &amp;nbsp; job_history.department_id%type&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;IS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; INSERT INTO&amp;nbsp;&lt;b&gt;job_history&lt;/b&gt;&amp;nbsp;(employee_id, start_date, end_date,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_id, department_id)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;END add_job_history;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;13 rows selected.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Espero que ajude você, como DBA ou DESENVOLVEDOR, a evitar quebrar as coisas quando estiver alterando objetos!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Até o próximo post.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Eduardo Valentim.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/5788548637229901603/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2017/06/how-to-get-object-dependents.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/5788548637229901603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/5788548637229901603'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2017/06/how-to-get-object-dependents.html' title='How to get Oracle Database dependents objects'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-6270928563495407090</id><published>2014-08-15T22:32:00.005-03:00</published><updated>2014-08-16T13:27:22.552-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="11g"/><category scheme="http://www.blogger.com/atom/ns#" term="6.5"/><category scheme="http://www.blogger.com/atom/ns#" term="OEL"/><category scheme="http://www.blogger.com/atom/ns#" term="ohasd failed to start: Inappropriate ioctl for device"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle enterprise linux"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle grid infraestructure"/><title type='text'>Installing Oracle GI. Database 11g (11.2.0.1) on OEL 6.5</title><content type='html'>Amigos,&lt;br /&gt;
Criei este tutorial em vídeo para ajudá-los a instalar o Oracle GI com Database em um Linux 6 (Oracle Enterprise Linux ou Red Hat Enterprise Linux). Sabemos que há uma certa incompatibilidade (erro durante execução do root.sh do GI) nesta versão, mas foram contornadas e demonstradas neste vídeo. Quaisquer dúvidas ou comentários para melhorar os tutoriais são bem-vindos!&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;http://hacklog.in/wp-content/uploads/2013/03/oracle_database_logo.png&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; src=&quot;http://hacklog.in/wp-content/uploads/2013/03/oracle_database_logo.png&quot; /&gt;&lt;/a&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/u66R1QwKx6U?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Abaixo algumas listagens de comandos para auxiliar na instalação:&lt;br /&gt;
&lt;br /&gt;
- Pacotes para instalar o VMWARE TOOLS:&lt;br /&gt;
&lt;br /&gt;
cd /mnt/Packages&lt;br /&gt;
yum -y install kernel-uek-headers&lt;br /&gt;
rpm -Uvh kernel-uek-devel*x86_64*&lt;br /&gt;
rpm -Uvh binutils-2*x86_64*&lt;br /&gt;
rpm -Uvh gcc-4*x86_64*&lt;br /&gt;
&lt;br /&gt;
- Pacotes para a instalação do Oracle:&lt;br /&gt;
&lt;br /&gt;
rpm -Uvh glibc-2*x86_64* nss-softokn-freebl-3*x86_64*&lt;br /&gt;
rpm -Uvh glibc-2*i686* nss-softokn-freebl-3*i686*&lt;br /&gt;
rpm -Uvh compat-libstdc++-33*x86_64*&lt;br /&gt;
rpm -Uvh glibc-common-2*x86_64*&lt;br /&gt;
rpm -Uvh glibc-devel-2*x86_64*&lt;br /&gt;
rpm -Uvh glibc-devel-2*i686*&lt;br /&gt;
rpm -Uvh glibc-headers-2*x86_64*&lt;br /&gt;
rpm -Uvh elfutils-libelf-0*x86_64*&lt;br /&gt;
rpm -Uvh elfutils-libelf-devel-0*x86_64*&lt;br /&gt;
rpm -Uvh libstdc++-devel-4*x86_64*&lt;br /&gt;
rpm -Uvh gcc-c++-4*x86_64*&lt;br /&gt;
rpm -Uvh ksh-*x86_64*&lt;br /&gt;
rpm -Uvh libaio-0*x86_64*&lt;br /&gt;
rpm -Uvh libaio-devel-0*x86_64*&lt;br /&gt;
rpm -Uvh libaio-0*i686*&lt;br /&gt;
rpm -Uvh libaio-devel-0*i686*&lt;br /&gt;
rpm -Uvh libgcc-4*x86_64*&lt;br /&gt;
rpm -Uvh libgcc-4*i686*&lt;br /&gt;
rpm -Uvh libstdc++-4*x86_64*&lt;br /&gt;
rpm -Uvh libstdc++-4*i686*&lt;br /&gt;
rpm -Uvh make-3.81*x86_64*&lt;br /&gt;
rpm -Uvh numactl-devel-2*x86_64*&lt;br /&gt;
rpm -Uvh sysstat-9*x86_64*&lt;br /&gt;
rpm -Uvh compat-libstdc++-33*i686*&lt;br /&gt;
rpm -Uvh compat-libcap*&lt;br /&gt;
rpm -Uvh unixODBC-2*x86_64*&lt;br /&gt;
rpm -Uvh unixODBC-devel-2*x86_64*&lt;br /&gt;
rpm -Uvh oracleasm-support-2*x86_64*&lt;br /&gt;
rpm -Uvh ksh-*x86_64*&lt;br /&gt;
&lt;br /&gt;
- Parâmetros de Kernel:&lt;br /&gt;
&lt;br /&gt;
kernel.sem = 250 32000 100 256&lt;br /&gt;
fs.file-max = 6815744&lt;br /&gt;
net.ipv4.ip_local_port_range = 9000 65500&lt;br /&gt;
net.core.rmem_default = 262144&lt;br /&gt;
net.core.wmem_default = 262144&lt;br /&gt;
net.core.rmem_max = 4194304&lt;br /&gt;
net.core.wmem_max = 1048576&lt;br /&gt;
fs.aio-max-nr = 1048576&lt;br /&gt;
&lt;br /&gt;
- Limites de Kernel:&lt;br /&gt;
&lt;br /&gt;
oracle &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;nproc &amp;nbsp; 2047&lt;br /&gt;
oracle &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hard &amp;nbsp; &amp;nbsp;nproc &amp;nbsp; 16384&lt;br /&gt;
oracle &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;nofile &amp;nbsp;4096&lt;br /&gt;
oracle &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hard &amp;nbsp; &amp;nbsp;nofile &amp;nbsp;65536&lt;br /&gt;
oracle &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;stack &amp;nbsp; 10240&lt;br /&gt;
&lt;br /&gt;
grid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;nproc &amp;nbsp; 2047&lt;br /&gt;
grid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hard &amp;nbsp; &amp;nbsp;nproc &amp;nbsp; 16384&lt;br /&gt;
grid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;nofile &amp;nbsp;4096&lt;br /&gt;
grid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hard &amp;nbsp; &amp;nbsp;nofile &amp;nbsp;65536&lt;br /&gt;
grid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;soft &amp;nbsp; &amp;nbsp;stack &amp;nbsp; 10240&lt;br /&gt;
&lt;br /&gt;
- Bash Profiles:&lt;br /&gt;
&lt;br /&gt;
/home/grid/.bash_profile:&lt;br /&gt;
&lt;br /&gt;
export ORACLE_BASE=/u01/app/grid&lt;br /&gt;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid&lt;br /&gt;
export ORACLE_SID=+ASM&lt;br /&gt;
export PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;
umask 022&lt;br /&gt;
&lt;br /&gt;
/home/oracle/.bash_profile:&lt;br /&gt;
&lt;br /&gt;
export ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1&lt;br /&gt;
export ORACLE_UNQNAME=orcl&lt;br /&gt;
export ORACLE_SID=orcl&lt;br /&gt;
export PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;
umask 022&lt;br /&gt;
&lt;br /&gt;
- Texto para inserir no script &quot;/u01/app/grid/product/11.2.0/grid/crs/install/s_crsconfig_lib.pm&quot; antes de executar o &quot;root.sh&quot; para evitar o erro &quot;ohasd failed to start: Inappropriate ioctl for device&quot;:&lt;br /&gt;
&lt;br /&gt;
my $UPSTART_OHASD_SERVICE = &quot;oracle-ohasd&quot;;&lt;br /&gt;
my $INITCTL = &quot;/sbin/initctl&quot;;&lt;br /&gt;
&lt;br /&gt;
($status, @output) = system_cmd_capture (&quot;$INITCTL start $UPSTART_OHASD_SERVICE&quot;);&lt;br /&gt;
if (0 != $status)&lt;br /&gt;
{&lt;br /&gt;
error (&quot;Failed to start $UPSTART_OHASD_SERVICE, error: $!&quot;);&lt;br /&gt;
return $FAILED;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
- Conteúdo do /etc/init/oracle-ohasd.conf criado antes de executar o &quot;root.sh&quot;:&lt;br /&gt;
&lt;br /&gt;
start on runlevel [35]&lt;br /&gt;
stop on runlevel [!35]&lt;br /&gt;
respawn&lt;br /&gt;
exec /etc/init.d/init.ohasd run &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 &amp;lt;/dev/null</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/6270928563495407090/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2014/08/installing-oracle-gi-database-11g-11201.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6270928563495407090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6270928563495407090'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2014/08/installing-oracle-gi-database-11g-11201.html' title='Installing Oracle GI. Database 11g (11.2.0.1) on OEL 6.5'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-8492422986361070452</id><published>2013-11-18T14:48:00.002-03:00</published><updated>2013-11-18T15:08:59.820-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Audit Trail"/><category scheme="http://www.blogger.com/atom/ns#" term="Default Auditing"/><category scheme="http://www.blogger.com/atom/ns#" term="FGA"/><category scheme="http://www.blogger.com/atom/ns#" term="Manage Audit Space"/><category scheme="http://www.blogger.com/atom/ns#" term="Manage Audit Storage"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Auditing"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><title type='text'>Gerenciando Trilha de Auditoria Padrão e FGA no Oracle Database 11g</title><content type='html'>&lt;a href=&quot;http://icons.iconarchive.com/icons/artua/mac/512/Lock-icon.png&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; height=&quot;320&quot; src=&quot;http://icons.iconarchive.com/icons/artua/mac/512/Lock-icon.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Caros amigos, hoje vou compartilhar algo com vocês que eu criei e me ajudou muito em gerenciar o espaço ocupado pelo Audit Trail (trilha de auditoria) do banco de dados Oracle 11g quando usamos Auditoria Padrão ou FGA (Fine Grained Auditing). Por padrão o banco de dados Oracle 11g configura auditoria de algumas ações como por exemplo: logon, logoff, uso de privilégios &quot;ANY&quot;, etc. gerando dados em tabelas como a SYS.AUD$ (para a auditoria padrão) e a SYS.FGA_LOG$ (para a FGA).&lt;br /&gt;
Com o tempo, a quantidade gerada de dados nestas tabelas pode fazer com que o tablespace SYSTEM cresça bastante e por isso é interessante separar os dados de auditoria em um tablespace diferente.&lt;br /&gt;
Se você tiver adquirido o recurso Oracle Audit Vault esta trilha de auditoria é gerenciada automaticamente, ou seja, é copiada para o banco de dados do Audit Vault e removida do banco de dados de origem. Além disso, o Audit Vault tem outros recursos de relatórios, envio de alertas e uma interface mais amigável para consulta de auditoria.&lt;br /&gt;
&lt;br /&gt;
Tablespaces são unidades lógicas de armazenamento que o banco de dados Oracle utiliza para gravar seus dados. Nos tablespaces existem segmentos que são tabelas ou índices por exemplo. O que seria interessante criar é um tablespace novo para gravação destes dados de auditoria.&lt;br /&gt;
&lt;br /&gt;
Criei um script que faz tudo isso de forma automática. Além de configurar a auditoria recomendada ele também move as tabelas de auditoria para fora do tablespace SYSTEM (de sistema, onde ficam outras tabelas internas do Oracle) e, mensalmente, copia dados de auditoria para uma outra tabela para consultas históricas deixando sempre a tabela de auditoria com poucos dados. No exemplo, uma tabela é criada no mesmo banco de dados, porém você pode adaptá-lo para armazenar a tabela em outro banco de dados.&lt;br /&gt;
&lt;br /&gt;
Abaixo o script com a explicação sobre cada parte faz. Executar com usuário &quot;SYS&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 1. Configurando auditoria (precisa de restart). Gerencie arquivos de auditoria gerados para o usuário SYS em audit_file_dest.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;AUDIT ALL ON SYS.AUD$ BY ACCESS;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;AUDIT ALL ON SYS.FGA_LOG$ BY ACCESS;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE SID=&#39;*&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER SYSTEM SET AUDIT_TRAIL=&#39;DB_EXTENDED&#39; SCOPE=SPFILE SID=&#39;*&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 2. Checando espaço necessário para criar tablespace TS_AUDIT_TRAIL de auditoria e conta AUDIT_TRAIL (precisa usar OMF, do contrário especifique o caminho manualmente). A conta AUDIT_TRAIL foi bloqueada propositalmente, pois não precisaremos ativá-la.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DECLARE V_BYTES NUMBER;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SELECT SUM(BYTES)*2 INTO V_BYTES&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; FROM DBA_SEGMENTS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;WHERE &amp;nbsp; &amp;nbsp;SEGMENT_NAME = &#39;AUD$&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OR SEGMENT_NAME = &#39;FGA_LOG$&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OR SEGMENT_NAME IN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(SELECT SEGMENT_NAME&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM DBA_LOBS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE TABLE_NAME = &#39;AUD$&#39; OR TABLE_NAME = &#39;FGA_LOG$&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DBMS_OUTPUT.PUT_LINE(CHR(10));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DBMS_OUTPUT.PUT_LINE(&#39;* Um tablespace TS_AUDIT_TRAIL com &#39;||ROUND(V_BYTES/1024/1024)||&#39; MBs vai ser criado. *&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DBMS_OUTPUT.PUT_LINE(CHR(10));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DECLARE V_BYTES NUMBER;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SELECT SUM(BYTES)*2 INTO V_BYTES&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; FROM DBA_SEGMENTS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;WHERE &amp;nbsp; &amp;nbsp;SEGMENT_NAME = &#39;AUD$&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OR SEGMENT_NAME = &#39;FGA_LOG$&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OR SEGMENT_NAME IN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(SELECT SEGMENT_NAME&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM DBA_LOBS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE TABLE_NAME = &#39;AUD$&#39; OR TABLE_NAME = &#39;FGA_LOG$&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;EXECUTE IMMEDIATE &#39;CREATE TABLESPACE TS_AUDIT_TRAIL DATAFILE SIZE &#39;||V_BYTES||&#39; AUTOEXTEND ON NEXT 100M SEGMENT SPACE MANAGEMENT AUTO&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DBMS_OUTPUT.PUT_LINE(CHR(10));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DBMS_OUTPUT.PUT_LINE(&#39;* Tablespace com &#39;||ROUND(V_BYTES/1024/1024)||&#39; MBs criado com sucesso.&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE USER AUDIT_TRAIL IDENTIFIED BY aud$user$oracle&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DEFAULT TABLESPACE TS_AUDIT_TRAIL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;QUOTA UNLIMITED ON TS_AUDIT_TRAIL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ACCOUNT LOCK;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 3. Criando tabelas de histórico para arquivamento de&amp;nbsp;dados de auditoria (crie índices posteriormente se desejar). A coluna &quot;PLHOL&quot; está sendo alterada de LONG para CLOB para permitir a cópia. Não haverá impacto durante a auditoria, pois esta coluna não é utilizada e provavelmente será removida no futuro.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER TABLE SYS.FGA_LOG$ MODIFY(PLHOL CLOB);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE AUDIT_TRAIL.AUDIT_ARCHIVE COMPRESS BASIC TABLESPACE TS_AUDIT_TRAIL AS SELECT * FROM SYS.AUD$;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE AUDIT_TRAIL.AUDIT_ARCHIVE_FGA COMPRESS BASIC TABLESPACE TS_AUDIT_TRAIL AS SELECT * FROM SYS.FGA_LOG$;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DELETE FROM SYS.AUD$ WHERE NTIMESTAMP#&amp;lt;=(SELECT MAX(NTIMESTAMP#) FROM AUDIT_TRAIL.AUDIT_ARCHIVE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DELETE FROM SYS.FGA_LOG$ WHERE NTIMESTAMP#&amp;lt;=(SELECT MAX(NTIMESTAMP#) FROM AUDIT_TRAIL.AUDIT_ARCHIVE_FGA);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;COMMIT;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 4. Movendo auditoria para novo tablespace TS_AUDIT_TRAIL.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;SYS.DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; AUDIT_TRAIL_TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; AUDIT_TRAIL_LOCATION_VALUE &amp;nbsp;=&amp;gt; &#39;TS_AUDIT_TRAIL&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 5. Realizando shrink da tabela AUD$ e FGA_LOG$ com coleta de estatisticas.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER TABLE SYS.AUD$ ENABLE ROW MOVEMENT;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER TABLE SYS.AUD$ SHRINK SPACE CASCADE;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER TABLE SYS.FGA_LOG$ ENABLE ROW MOVEMENT;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ALTER TABLE SYS.FGA_LOG$ SHRINK SPACE CASCADE;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;EXEC DBMS_STATS.GATHER_TABLE_STATS(&#39;SYS&#39;,&#39;AUD$&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;EXEC DBMS_STATS.GATHER_TABLE_STATS(&#39;SYS&#39;,&#39;FGA_LOG$&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-------------------------------------------------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;--Mantendo o audit trail. Configurar agendamento.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-------------------------------------------------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 6. Configurando Scheduler Job para executar manutenção de auditoria dia 01 de cada mês. Você pode alterar a frequência conforme a sua necessidade.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.CREATE_JOB&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; (&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;job_name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,start_date &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,repeat_interval =&amp;gt; &#39;FREQ=MONTHLY;BYMONTHDAY=1;BYHOUR=00;BYMINUTE=00;BYSECOND=00&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,end_date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,job_class &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; &#39;DEFAULT_JOB_CLASS&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,job_type &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;PLSQL_BLOCK&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,job_action &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; INSERT INTO AUDIT_TRAIL.AUDIT_ARCHIVE SELECT * FROM SYS.AUD$;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; INSERT INTO AUDIT_TRAIL.AUDIT_ARCHIVE_FGA SELECT * FROM SYS.FGA_LOG$;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; DELETE FROM SYS.AUD$ WHERE NTIMESTAMP#&amp;lt;=(SELECT MAX(NTIMESTAMP#) FROM AUDIT_TRAIL.AUDIT_ARCHIVE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; DELETE FROM SYS.FGA_LOG$ WHERE NTIMESTAMP#&amp;lt;=(SELECT MAX(NTIMESTAMP#) FROM AUDIT_TRAIL.AUDIT_ARCHIVE_FGA);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; COMMIT;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; EXECUTE IMMEDIATE &#39;&#39;ALTER TABLE AUDIT_TRAIL.AUDIT_ARCHIVE MOVE COMPRESS BASIC&#39;&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; EXECUTE IMMEDIATE &#39;&#39;ALTER TABLE AUDIT_TRAIL.AUDIT_ARCHIVE_FGA MOVE COMPRESS BASIC&#39;&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; DBMS_STATS.GATHER_TABLE_STATS(&#39;&#39;SYS&#39;&#39;,&#39;&#39;AUD$&#39;&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; DBMS_STATS.GATHER_TABLE_STATS(&#39;&#39;SYS&#39;&#39;,&#39;&#39;FGA_LOG$&#39;&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ,comments &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; );&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;RESTARTABLE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,value &amp;nbsp; &amp;nbsp; =&amp;gt; FALSE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;LOGGING_LEVEL&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,value &amp;nbsp; &amp;nbsp; =&amp;gt; SYS.DBMS_SCHEDULER.LOGGING_RUNS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;MAX_FAILURES&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;MAX_RUNS&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;STOP_ON_WINDOW_CLOSE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,value &amp;nbsp; &amp;nbsp; =&amp;gt; FALSE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; EXCEPTION&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; WHEN OTHERS THEN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; NULL;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;JOB_PRIORITY&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,value &amp;nbsp; &amp;nbsp; =&amp;gt; 3);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;SCHEDULE_LIMIT&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.SET_ATTRIBUTE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ( name &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,attribute =&amp;gt; &#39;AUTO_DROP&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;,value &amp;nbsp; &amp;nbsp; =&amp;gt; FALSE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; SYS.DBMS_SCHEDULER.ENABLE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; (name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;-- 7. Testando a execucao do Job. Verifique a saida LAST_RUN_STATUS abaixo. Em caso de &quot;FAILED&quot;, verificar os erros consultando as tabelas DBA_SCHEDULER_JOB_RUN_DETAILS.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; DBMS_SCHEDULER.run_job (job_name =&amp;gt; &#39;SYS.AUDIT_TRAIL_MAINTENANCE&#39;,use_current_session =&amp;gt; FALSE);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;END;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;COLUMN LAST_RUN_STATUS format a11&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SELECT STATUS LAST_RUN_STATUS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; FROM DBA_SCHEDULER_JOB_RUN_DETAILS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;WHERE JOB_NAME = &#39;AUDIT_TRAIL_MAINTENANCE&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;AND ACTUAL_START_DATE=(SELECT MAX(ACTUAL_START_DATE) FROM DBA_SCHEDULER_JOB_RUN_DETAILS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;----------------- Processo concluído -----------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;Caso necessite exportar a tabela de auditoria para expurgar dados antigos, basta executar o script abaixo no sistema operacional UNIX. Depois poderá excluir os dados da tabela AUDIT_ARCHIVE:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;data=`date +%d-%m-%Y-%H:%M`&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;expdp &amp;lt;user/pass&amp;gt; dumpfile=EXPORT_AUD_$data.DMP logfile=EXPORT_AUD_$data.LOG version=COMPATIBLE directory=&amp;lt;directory&amp;gt; schemas=AUDIT_TRAIL include=table:\&quot;IN\(\&#39;AUDIT_ARCHIVE\&#39;\)\&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Até mais!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/8492422986361070452/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2013/11/gerenciando-trilha-de-auditoria-padrao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/8492422986361070452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/8492422986361070452'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2013/11/gerenciando-trilha-de-auditoria-padrao.html' title='Gerenciando Trilha de Auditoria Padrão e FGA no Oracle Database 11g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-1814076041485699004</id><published>2013-11-12T11:20:00.001-03:00</published><updated>2018-03-07T16:17:22.434-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Composite Index"/><category scheme="http://www.blogger.com/atom/ns#" term="FTS"/><category scheme="http://www.blogger.com/atom/ns#" term="Full table scan"/><category scheme="http://www.blogger.com/atom/ns#" term="Function Based Index"/><category scheme="http://www.blogger.com/atom/ns#" term="Function-Based Index"/><category scheme="http://www.blogger.com/atom/ns#" term="IS NULL"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Tuning"/><category scheme="http://www.blogger.com/atom/ns#" term="WHERE clause"/><title type='text'>Evitando FULL TABLE SCANS quando usar IS NULL em cláusulas WHERE</title><content type='html'>Olá pessoal,&lt;br /&gt;
&lt;br /&gt;
Neste post vou falar sobre um tuning simples, mas eficaz quando trabalhamos com valores nulos em filtros.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Antes de tudo, contextualizando:&lt;/h3&gt;
O que é uma tabela?&lt;br /&gt;
R. Uma tabela é um objeto do tipo SEGMENTO no banco de dados que armazena dados em forma de linhas e colunas, certo? Tipo uma planilha do excel:&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/AVvXsEjpUHUH0XhG88gIO7_clKrzegso7x32x32biqMf_9QYb1Wy7SxMOVNbUt1k_qYiD2qSKWzUFgH0L6BfE9o7pZyWmRIwl4scSNVm7pEHSC-P5um5FGW5p8L65JxlkODV4omFe01_ke_9lOY/s1600/table.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;73&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpUHUH0XhG88gIO7_clKrzegso7x32x32biqMf_9QYb1Wy7SxMOVNbUt1k_qYiD2qSKWzUFgH0L6BfE9o7pZyWmRIwl4scSNVm7pEHSC-P5um5FGW5p8L65JxlkODV4omFe01_ke_9lOY/s320/table.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
O que é um índice?&lt;br /&gt;
R. Índice é outro objeto do tipo SEGMENTO que, uma vez criado em uma tabela por exemplo poderá ser utilizado para agilizar a pesquisa quando alguns critérios forem utilizados. Imagine um índice de um livro. Ele é feito para agilizar a pesquisa e você encontrar o assunto que está procurando de forma mais rápida. No banco de dados é similar, o índice é constituído basicamente do valor da coluna (ou colunas) indexada da tabela com um ponteiro que aponta para a linha (ou linhas) que possui aquele valor. Basicamente assim:&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/AVvXsEjWj5E7nWTWg2iahO-bf-ETjEybxPOrGDIbodbDsxyOnrdxDZRliVYL7sZozaP_fcGBpdh_WTF1fXenWawrAVV7LWWvUI16avI57vHmBiKjsdIF2TBsi-VONdCaGBXOQgS0LCjCJd3jQJo/s1600/index.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWj5E7nWTWg2iahO-bf-ETjEybxPOrGDIbodbDsxyOnrdxDZRliVYL7sZozaP_fcGBpdh_WTF1fXenWawrAVV7LWWvUI16avI57vHmBiKjsdIF2TBsi-VONdCaGBXOQgS0LCjCJd3jQJo/s320/index.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
- Funções é um objeto de código de programação que retorna algum valor. Por exemplo: a função SUM retorna o somatório dos valores, a função AVG a média de valores, a função MIN retorna o valor mínimo de uma determinada coluna, a função UPPER transforma valores minúsculos em maiúsculos. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT UPPER(&#39;texto&#39;) FROM DUAL;&lt;br /&gt;-- Retorno da consulta usando a função:&lt;br /&gt;TEXTO&lt;/span&gt;&lt;/blockquote&gt;
&lt;h3&gt;
Agora vamos pra questão em si.&lt;/h3&gt;
Imagine agora uma tabela chamada TB_ALUNOS em que há uma coluna chamada TELEFONE. Nesta coluna TELEFONE são cadastrados os TELEFONES dos alunos, mas você percebe que nesta coluna são permitidos valores NULOS, ou seja, permite que nenhum telefone seja inserido. Além disso você cria um índice nesta coluna TELEFONE para agilizar pesquisas filtradas pelo telefone. Até aí tudo bem, mas diante disso você quer saber quais alunos NÃO possuem telefones cadastrados. O que você faz? Traduzindo para a linguagem SQL seria assim:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT * FROM tb_alunos WHERE telefone IS NULL;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;ou&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT * FROM tb_alunos WHERE telefone=&#39;&#39;;&lt;/span&gt;&lt;/blockquote&gt;
- Exemplo de criação de um índice comum na coluna TELEFONE do exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;CREATE INDEX idx_alunos_telefone ON tb_alunos(telefone);&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
O plano de execução gerado para a consulta acima realizaria um FULL TABLE SCAN (FTS) mesmo se o índice fosse criado (levariam aproximadamente 9 minutos de execução):&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Execution Plan&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;Plan hash value: 2837633100&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;| Id &amp;nbsp;| Operation&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;| Name &amp;nbsp; &amp;nbsp; &amp;nbsp;| Rows &amp;nbsp;| Bytes | Cost (%CPU)| Time &amp;nbsp; &amp;nbsp; |&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;| &amp;nbsp; 0 | SELECT STATEMENT &amp;nbsp;|&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;| 57664 | &amp;nbsp;2027K| 44448&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(1)| 00:08:54 |&lt;br /&gt;|* &amp;nbsp;1 | &amp;nbsp;TABLE ACCESS FULL| TB_ALUNOS | 57664 | &amp;nbsp;2027K| 44448&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(1)| 00:08:54 |&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;Predicate Information (identified by operation id):&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&amp;nbsp; &amp;nbsp;1 - filter(&quot;TELEFONE&quot; IS NULL)&lt;/span&gt;&lt;/blockquote&gt;
Quando usamos um filtro procurando por valores NULOS em uma tabela, o banco de dados executa um FTS (Full Table Scan) que é uma leitura COMPLETA da tabela por linhas que possuem valores NULOS, ou seja, alunos que não possuem telefones cadastrados. Como o valor NULO na verdade é a ausência de valor, ou seja, NADA foi gravado naquela coluna, então como indexar?&lt;br /&gt;
Quando você criou um índice para aquela coluna, todos os valores que não existiam (NULOS) também não existiam no índice. Então o Oracle não teria como usar o índice para saber quais seriam os valores NULOS.&lt;br /&gt;
&lt;br /&gt;
Existe duas formas mais conhecidas de contornar (leia-se &quot;workaround&quot; ou &quot;adaptações técnicas&quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
1. Criando um índice baseado em função (Function-Based Index):&lt;/h3&gt;
&lt;br /&gt;
Existem vários tipos de índices que você pode criar para várias situações. Neste caso você pode criar um índice baseado em função (FUNCTION BASED INDEX) que irá gerar dados no índice de acordo com uma função, mesmo que os dados não estejam (ou não existam) na origem (coluna ou colunas). Se criarmos um índice desse tipo usando a função NVL, o valor NULO será substituído pelo valor arbitrário informado. Vamos explicar melhor. Veja primeiro o exemplo de uso da função NVL:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT nome,NVL(telefone,&#39;SEM TELEFONE&#39;) FROM tb_alunos;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Nessa consulta, todos os alunos que não possuírem dados na coluna TELEFONE, ou seja, que não possuírem telefone cadastrado, ao invés de não aparecer valor, vai aparecer &quot;SEM TELEFONE&quot; no resultado da consulta:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;NOME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TELEFONE&lt;br /&gt;--------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -------------&lt;br /&gt;Fernando &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;98989898&lt;br /&gt;Renato &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;78787878&lt;br /&gt;Natália &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SEM TELEFONE&lt;br /&gt;Hamilton &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;45454545&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Ou seja, a função NLV substituiu o valor NULO por um texto específico durante a execução. Claro que esse texto é apenas ilustrativo, ou seja, só aparece quando consultamos os dados. Não estamos alterando a tabela, apenas a forma de visualizar o resultado. Isso que o comando SELECT faz, consultas.&lt;br /&gt;
&lt;br /&gt;
Agora vamos misturar a função com o índice criando um FUNCTION-BASED INDEX para usá-lo depois em uma consulta:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;CREATE INDEX idx_alunos_nvltelefone ON tb_alunos(NVL(telefone,0));&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Esse índice será criado um pouco diferente do índice comum. Ao invés de não criar valores nulos, ele irá criar valores &quot;0&quot; onde existirem NULOS (valores arbitrários). Assim a consulta abaixo utilizará este índice ao invés de realizar um FTS:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT * FROM tb_alunos WHERE NVL(telefone,0)=0;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;------------------------------------------------------------------------------------------------------&lt;br /&gt;| Id &amp;nbsp;| Operation&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp;| Name&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp; | Rows &amp;nbsp;| Bytes | Cost (%CPU)| Time &amp;nbsp; &amp;nbsp; |&lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;br /&gt;| &amp;nbsp; 0 | SELECT STATEMENT&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;|&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; &amp;nbsp; &amp;nbsp; |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;32 |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1376 |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;19 &amp;nbsp; (0)| 00:00:01 |&lt;br /&gt;| &amp;nbsp; 1 | &amp;nbsp;TABLE ACCESS BY INDEX ROWID| TB_ALUNOS &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;32 |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1376 |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;19 &amp;nbsp; (0)| 00:00:01 |&lt;br /&gt;|* &amp;nbsp;2 | &amp;nbsp; INDEX RANGE SCAN&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;| IDX_ALUNOS_NVLTELEFONE |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;32 |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; |&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; 3 &amp;nbsp; (0)| 00:00:01 |&lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;br /&gt;Predicate Information (identified by operation id):&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&amp;nbsp; &amp;nbsp;2 - access(NVL(&quot;TELEFONE&quot;,0)=0)&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;2&lt;/span&gt;. Criando um índice composto (Composite Index) com valor arbitrário (Oracle 11g):&lt;/h3&gt;
Um índice composto é quando criamos um índice formado por mais de uma coluna. No nosso caso, vamos especificar a primeira coluna TELEFONE e a segunda coluna um valor arbitrário &quot;0&quot;. Veja o comando de criação por exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;CREATE INDEX idx_alunos_nometelefone ON tb_alunos(telefone,0);&lt;/span&gt;&lt;/blockquote&gt;
A coluna TELEFONE da tabela TB_ALUNOS foi concatenada&amp;nbsp;(junta)&amp;nbsp;a &quot;0&quot; no índice, possível na versão 11g. Dessa forma garantimos que sempre haverá valor indexado, pois os valores das colunas serão concatenadas. Onde for NULO na coluna TELEFONE, na outra coluna haverá &quot;0&quot;, portanto há entrada no índice. Veja o exemplo da consulta:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT * FROM tb_alunos WHERE telefone IS NULL;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;Execution Plan&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;Plan hash value: 1405752932&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;| Id &amp;nbsp;| Operation&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp;| Name&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Rows &amp;nbsp;| Bytes | Cost (%CPU)| Time &amp;nbsp; &amp;nbsp; |&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;| &amp;nbsp; 0 | SELECT STATEMENT&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;|&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;| 57664 | &amp;nbsp;2027K| 27682&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(1)| 00:05:33 |&lt;br /&gt;| &amp;nbsp; 1 | &amp;nbsp;TABLE ACCESS BY INDEX ROWID| TB_ALUNOS &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;| 57664 | &amp;nbsp;2027K| 27682&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(1)| 00:05:33 |&lt;br /&gt;|* &amp;nbsp;2 | &amp;nbsp; INDEX RANGE SCAN&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;| IDX_ALUNOS_TELEFONENULL | 57664 | &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; 160&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(0)| 00:00:02 |&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;Predicate Information (identified by operation id):&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&amp;nbsp; &amp;nbsp;2 - access(&quot;TELEFONE&quot; IS NULL)&lt;/span&gt;&lt;/blockquote&gt;
&lt;h3&gt;
&lt;b&gt;Em alguns casos, mesmo com índices voltados para os valores NULOS, um FTS pode ser mais vantajoso, pois se a quantidade retornada for maior que 50%, por padrão, o Oracle irá executar um FTS ao invés de usar o índice.&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/1814076041485699004/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2013/11/evitando-full-table-scans-quando-usar.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/1814076041485699004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/1814076041485699004'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2013/11/evitando-full-table-scans-quando-usar.html' title='Evitando FULL TABLE SCANS quando usar IS NULL em cláusulas WHERE'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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/AVvXsEjpUHUH0XhG88gIO7_clKrzegso7x32x32biqMf_9QYb1Wy7SxMOVNbUt1k_qYiD2qSKWzUFgH0L6BfE9o7pZyWmRIwl4scSNVm7pEHSC-P5um5FGW5p8L65JxlkODV4omFe01_ke_9lOY/s72-c/table.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-3496422853346296352</id><published>2013-10-18T11:28:00.001-03:00</published><updated>2013-11-18T16:20:20.950-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clone ORACLE_HOME"/><category scheme="http://www.blogger.com/atom/ns#" term="Clone Software Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Copy ORACLE_HOME"/><title type='text'>Copiar a instalação Oracle de um Linux para outro funciona?</title><content type='html'>Ok ok, eu sei que eu não atualizo meu blog com frequência, mas estou aqui de volta pra falar sobre uma questão que de vez em quando me perguntam:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://blog.business-model-innovation.com/wp-content/uploads/2011/04/copy-and-paste.jpeg&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; height=&quot;190&quot; src=&quot;http://blog.business-model-innovation.com/wp-content/uploads/2011/04/copy-and-paste.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Copiar uma instalação já realizada do Oracle (Oracle Base e Oracle Home) de um sistema operacional Linux para um outro funciona?&lt;br /&gt;
&lt;br /&gt;
Bem, se o sistema operacional for equivalente, ou seja, mesma distribuição, mesma versão e mesma arquitetura (32 ou 64 bits) posso dizer que funciona sim. Se a distribuição for diferente eu já não posso garantir que funcionaria. Versões diferentes talvez funcione, mas arquiteturas diferentes não vai funcionar.&lt;br /&gt;
&lt;br /&gt;
Muitas vezes sabemos que é muito mais cômodo copiarmos a instalação de uma máquina para outra quando queremos clonar ou migrar esta instalação. Eu concordo, mas faça isso apenas se não tiver outro jeito ou se for muito complicado realizar uma nova instalação do software Oracle, pois uma nova instalação poderá sair melhor que a antiga, mais atualizada, mais limpa.&lt;br /&gt;
Saiba que mesmo copiando a instalação você terá que fazer as configurações de pré-requisitos de instalação Oracle (configurações de kernel, limites, permissões, etc.) com exceção de alguns pacotes, pois há pacotes que são necessários apenas durante a instalação, mas é bom instalar para garantir. Vai que é preciso instalar posteriormente alguma coisa.&lt;br /&gt;
&lt;br /&gt;
Tive que fazer essa pequena &quot;manobra&quot; recentemente, pois a instalação era versão 10g e, por estar descontinuado, a Oracle não disponibilizava facilmente o download. Daí foi necessário transferir a instalação para uma outra máquina. Era um OEL5.2 para um OEL5.8 funcionando sem problemas, mas mantive configurações gerais do S.O, hostname, ip e demais configurações de pré-requisitos para o funcionamento do Oracle. Tudo isso para restabelecer o ambiente do cliente o mais breve possível.&lt;br /&gt;
&lt;br /&gt;
Até mais!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/3496422853346296352/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2013/10/copiar-instalacao-oracle-de-um-linux.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/3496422853346296352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/3496422853346296352'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2013/10/copiar-instalacao-oracle-de-um-linux.html' title='Copiar a instalação Oracle de um Linux para outro funciona?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-2714727773023630195</id><published>2012-08-17T14:07:00.002-03:00</published><updated>2013-11-20T14:17:21.464-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="connection"/><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="local"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle on Windows"/><category scheme="http://www.blogger.com/atom/ns#" term="ORACLE_HOME"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlplus"/><title type='text'>Erros comuns ao se conectar ao Oracle no Windows</title><content type='html'>Caros amigos,&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.oracle.com/us/assets/im07t1-oracle-microsoft-1529120.png&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; src=&quot;http://www.oracle.com/us/assets/im07t1-oracle-microsoft-1529120.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Geralmente temos problemas quando, pela primeira vez, encontramos um banco de dados Oracle instalado em um servidor Windows. Apesar de mais fácil, a instalação do Windows também deve ser realizada conforme as recomendações da Oracle e com atenção.&lt;br /&gt;
Quando não é feita assim é que acontecem os desafios de administração posteriormente. Abaixo algumas situações desafiadoras que podemos encontrar por aí:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Centenas de instalações Oracle em uma única máquina.&lt;/b&gt;&lt;br /&gt;
Evite isso! Faça a instalação essencial do software Oracle na máquina. Client, Database, InstantClient, etc. Escolha um e pronto. Geralmente é encontrado em um servidor windows várias instalações client e/ou banco de dados gerando vários Oracle Homes tornando a administração complicada. Quando você faz uma configuração em um Home (em um tnsnames.ora por exemplo), você percebe que não surtiu efeito e provavelmente é por isso.&lt;br /&gt;
&lt;br /&gt;
Para descobrir em que Oracle Home você está, você pode executar o comando &quot;TNSPING qualquer_coisa&quot; apenas para ele mostrar qual arquivo sqlnet.ora ele usou como parâmetro. Assim:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;C:\Documents and Settings\oracle&amp;gt;tnsping asdf&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-AUG-2012 13:37:52&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Copyright (c) 1997, 2010, Oracle. &amp;nbsp;All rights reserved.&lt;br /&gt;Used parameter files:&lt;br /&gt;&lt;b&gt;C:\app\oracle\product\11.2.0\dbhome_1&lt;/b&gt;\network\admin\sqlnet.ora&lt;br /&gt;TNS-03505: Failed to resolve name&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Perceba que seu Oracle Home é o que está em negrito.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Erro de adaptador de protocolo (ORA-12650: TNS:protocol adapter error).&lt;/b&gt;&lt;br /&gt;
Erro bastante comum quando se tenta acessar a instância local via &quot;sqlplus / as sysdba&quot; no prompt de comando. Neste caso você deve verificar os seguintes itens:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a. Verifique se o serviço relacionado à instância está no ar;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b. Verifique em que Oracle Home está e se a variável PATH aponta para o caminho $ORACLE_HOME/bin que deveria;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c. Verifique o log de alerta para ver se a instância realmente está no ar;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d. Verifique se o usuário que está usando está no grupo &quot;ora_dba&quot; (criado na instalação);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e. Verifique as variáveis de ambiente e registro em busca das definições para ORACLE_HOME/ORACLE_BASE/ORACLE_SID;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f. Se não descobrir.... google it! Pode ser coisa pior.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Erro de privilégios insuficientes (ORA-01031: insufficient privileges)&lt;/b&gt;&lt;br /&gt;
Também muito comum e geralmente tem a ver com dois itens:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a. Usuário fora do grupo &quot;ora_dba&quot; (criado na instalação);
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b. Configuração no arquivo SQLNET.ORA: Se o parâmetro &quot;SQLNET.AUTHENTICATION_SERVICES&quot; estiver definido para NONE, não permitirá conexões &quot;/ as sysdba&quot;. Defina o parâmetro para NTS ou ALL e voltará a permitir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Falha na escrita do log de eventos do Windows &amp;nbsp;- EventViewer (ORA-28056: Writing audit records to Windows Event Log failed.)&lt;/b&gt;&lt;br /&gt;
Esse eu vi hoje e não deve ser muito comum, mas pode acontecer quando ocorre alguma tentativa frustrada na escrita de informações no log de eventos do Windows. Como o erro abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;C:\Documents and Settings\oracle&amp;gt;sqlplus / as sysdba&lt;br /&gt;TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-AUG-2012 14:25:22&lt;br /&gt;Copyright (c) 1997, 2010, Oracle. &amp;nbsp;All rights reserved.&lt;br /&gt;&lt;b&gt;ORA-28056: Writing audit records to Windows Event Log failed&lt;/b&gt;&lt;br /&gt;OSD-157797404: Message 157797404 not found; product=RDBMS; facility=SOSD&lt;br /&gt;ORA-28056: Writing audit records to Windows Event Log failed&lt;br /&gt;OSD-157797404: Message 157797404 not found; product=RDBMS; facility=SOSD&lt;br /&gt;&lt;b&gt;O/S-Error: (OS 1502) The event log file is full.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
As mensagens em negrito vão te ajudar na identificação do problema.&lt;br /&gt;
&lt;br /&gt;
O banco de dados Oracle pode querer escrever algumas informações no log de eventos do sistema (Linux ou Windows). Se ele não conseguir, este erro é retornado. O motivo pode ser por log cheio ou, no caso do windows mais especificamente, o serviço &quot;Log de Eventos&quot; não estar no ar.&lt;br /&gt;
&lt;br /&gt;
Esses são os problemas mais comuns. Se tiver mais algum, manda aí!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/2714727773023630195/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2012/08/erros-comuns-ao-se-conectar-ao-oracle.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2714727773023630195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2714727773023630195'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2012/08/erros-comuns-ao-se-conectar-ao-oracle.html' title='Erros comuns ao se conectar ao Oracle no Windows'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-7430651954374047975</id><published>2012-06-28T16:54:00.002-03:00</published><updated>2013-11-18T16:45:53.360-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ORA-04023"/><category scheme="http://www.blogger.com/atom/ns#" term="ORA-04023: Object SYS.STANDARD could not be validated or authorized"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 10g"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Restore Database"/><category scheme="http://www.blogger.com/atom/ns#" term="RMAN"/><category scheme="http://www.blogger.com/atom/ns#" term="SYS.STANDARD"/><category scheme="http://www.blogger.com/atom/ns#" term="TZ_VERSION"/><title type='text'>Restore database 10g em 11gR2 em mesma arquitetura</title><content type='html'>&lt;div class=&quot;tr_bq&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Caros amigos,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;a href=&quot;http://www.cmstech.org/wp-content/uploads/2012/04/oracle-error.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; height=&quot;200&quot; src=&quot;http://www.cmstech.org/wp-content/uploads/2012/04/oracle-error.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Precisei restaurar um backup de uma base de dados 10g, porém não achei mais a instalação do software Oracle versão 10g e por isso tive que instalar no 11g e efetuar o Upgrade.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
A restauração ocorreu normal. Preparei o ambiente (spfile, pastas, etc) e comecei a restauração:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;export ORACLE_BASE=/u01/app/oracle&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1&lt;br /&gt;export ORACLE_SID=OLDDB&lt;br /&gt;export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin:.:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/u01/app/oracle/product/11.2.0/dbhome_1/OPatch&lt;br /&gt;RMAN&amp;gt; restore controlfile from &#39;/u01/olddb/o1_mf_ncsn0_TAG20120309T190017_7onzdd6z_.bkp&#39;;&lt;br /&gt;RMAN&amp;gt; alter database mount;&lt;br /&gt;RMAN&amp;gt; catalog start with &#39;/u01/olddb&#39; noprompt;&lt;br /&gt;RMAN&amp;gt; run{&lt;br /&gt;set newname for datafile 1 to new;&lt;br /&gt;set newname for datafile 2 to new;&lt;br /&gt;set newname for datafile 3 to new;&lt;br /&gt;set newname for datafile 4 to new;&lt;br /&gt;restore database;&lt;br /&gt;switch datafile all;&lt;br /&gt;recover database;}&lt;br /&gt;RMAN&amp;gt; exit&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
--# &amp;nbsp;Pronto, agora o open resetlogs no SQLPLUS e a tentativa de execução do script de Pre-Upgrade:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; alter database open resetlogs upgrade; --# (ou STARTUP UPGRADE após um &quot;alter database open resetlogs&quot;)&lt;br /&gt;Database altered.&lt;br /&gt;SQL&amp;gt; @$ORACLE_HOME/rdbms/admin/utlu112i.sql&lt;br /&gt;ERROR:&lt;br /&gt;ORA-04023: Object SYS.STANDARD could not be validated or authorized&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-04023: Object SYS.STANDARD could not be validated or authorized&lt;br /&gt;&lt;br /&gt;ERROR:&lt;br /&gt;ORA-04023: Object SYS.STANDARD could not be validated or authorized&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;--&lt;/span&gt;# &amp;nbsp;Pelo erro não ia dar muito certo, mas eu tentei executar o UPGRADE:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; @$ORACLE_HOME/rdbms/admin/catupgrd.sql&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;DOC&amp;gt; &amp;nbsp; The first time this script is run, there should be no error messages&lt;br /&gt;DOC&amp;gt; &amp;nbsp; generated; all normal upgrade error messages are suppressed.&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;.. --#(para brevidade)&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt; &amp;nbsp; The following error is generated if the pre-upgrade tool has not been&lt;br /&gt;DOC&amp;gt; &amp;nbsp; run in the old ORACLE_HOME home prior to upgrading a pre-11.2 database:&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;DOC&amp;gt; &amp;nbsp; SELECT TO_NUMBER(&#39;MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE&#39;)&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;ERROR at line 1:&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;ORA-01722: invalid number&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; o Action:&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Shutdown database (&quot;alter system checkpoint&quot; and then &quot;shutdown abort&quot;).&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Revert to the original oracle home and start the database.&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Run pre-upgrade tool against the database.&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Review and take appropriate actions based on the pre-upgrade&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; output before opening the datatabase in the new software version.&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#&lt;br /&gt;SELECT TO_NUMBER(&#39;MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE&#39;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-01722: invalid number&lt;br /&gt;&lt;br /&gt;Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production&lt;br /&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
--# Em contato com o suporte Oracle eles pediram pra eu fazer isso e rodar o Upgrade de novo, mas não deu certo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; ALTER TABLE registry$database ADD TZ_VERSION number;&lt;br /&gt;SQL&amp;gt; @$ORACLE_HOME/rdbms/admin/catupgrd.sql --# mesmo erro acima&lt;br /&gt;...&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#&lt;br /&gt;SELECT TO_NUMBER(&#39;MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE&#39;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-01722: invalid number&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
--# Ele pediu então que eu verificasse as tabelas abaixo e comparasse o valor do TZ_VERSION da visão registry$database que deveria estar com o mesmo valor do campo VERSION na visão v$timezone_file:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; select * from registry$database ;&lt;br /&gt;PLATFORM_ID PLATFORM_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EDITION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TZ_VERSION&lt;br /&gt;----------- ----------------------------------------------------------------------------------------------------- ------------------------------ ----------&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 AIX-Based Systems (64-bit)&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &lt;br /&gt;SQL&amp;gt; Select version from v$timezone_file;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;VERSION&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 14&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
--# Pelo jeito não estava, então ele pediu pra inserir:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; INSERT into registry$database&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;(platform_id, platform_name, edition, tz_version)&lt;br /&gt;VALUES ((select platform_id from v$database),&lt;br /&gt;(select platform_name from v$database),&lt;br /&gt;NULL,&lt;br /&gt;(select version from v$timezone_file));&lt;/span&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;--# Ficou assim:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; select * from registry$database ;&lt;br /&gt;PLATFORM_ID PLATFORM_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EDITION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TZ_VERSION&lt;br /&gt;----------- ----------------------------------------------------------------------------------------------------- ------------------------------ ----------&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 AIX-Based Systems (64-bit)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 AIX-Based Systems (64-bit) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 14&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;--# Aparentemente não ia dar certo, mas executei e deu o erro confirmando o que deveria ser feito:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; @catupgrd.sql&lt;br /&gt;... --# (para brevidade)&lt;br /&gt;DOC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; output before opening the datatabase in the new software version.&lt;br /&gt;DOC&amp;gt;&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#######################################################################&lt;br /&gt;DOC&amp;gt;#&lt;br /&gt;Session altered.&lt;br /&gt;&lt;br /&gt;Table created.&lt;br /&gt;&lt;br /&gt;Table altered.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((SELECT tz_version from registry$database) is null)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *&lt;br /&gt;ERROR at line 8:&lt;br /&gt;ORA-01427: single-row subquery returns more than one row&lt;br /&gt;SQL&amp;gt; delete from registry$database where tz_version is null;&lt;br /&gt;1 row deleted.&lt;br /&gt;SQL&amp;gt; commit;&lt;br /&gt;Commit complete.&lt;br /&gt;SQL&amp;gt; @catupgrd.sql --Sucesso!&lt;br /&gt;SQL&amp;gt; @utlrp.sql --Sucesso!&lt;br /&gt;SQL&amp;gt; @utlu112s.sql --Tudo VALID! (exceto para o Oracle Multimedia, mas não era necessário. Se precisar basta reconfigurar o recurso)&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
No final das contas deu tudo certo. Não consegui achar na internet uma solução que fosse satisfatória e só consegui com um direcionamento do suporte Oracle.&lt;br /&gt;
Até mais!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/7430651954374047975/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2012/06/restore-database-10g-em-11gr2-em-mesma.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/7430651954374047975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/7430651954374047975'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2012/06/restore-database-10g-em-11gr2-em-mesma.html' title='Restore database 10g em 11gR2 em mesma arquitetura'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-4854623084093995466</id><published>2012-02-21T11:39:00.002-03:00</published><updated>2012-03-09T08:31:14.416-03:00</updated><title type='text'>Script facilitador de vida - RAC Edition</title><content type='html'>Caros amigos leitores.&lt;br /&gt;
&lt;br /&gt;
O trabalho é árduo e o tempo é curto. Aproveitei o carnaval para fazer umas migrações para um ambiente em RAC e como ficaram várias instâncias (por enquanto 7 por nó e vai aumentar depois) fiz um script pra executar comandos em várias bases assim como o post anterior &quot;Script Facilitador de Vidas - Várias bases de dados&quot;. Como disse o &quot;Grande Soldador&quot;: viu a necessidade, atenda! O script anterior era válido para instância única então fiz esse para quem trabalha com Oracle RAC.&lt;br /&gt;
&lt;br /&gt;
De início o script pede o número do nó no ambiente cluster. Depois pede o utilitário para execução que cadastrei o SQLPLUS e o RMAN. Por último o comando que será executado.&lt;br /&gt;
Na execução, o script abaixo criará um arquivo de entrada que é chamado pelo utilitário escolhido. Podem alterar o script para adaptar a alguma necessidade como: catálogo rman, etc. Como o script anterior, usa referências no &quot;/etc/oratab&quot;.&lt;br /&gt;
&lt;br /&gt;
Sei que o GRID CONTROL, que também utilizamos, possui um recurso de executar comando em várias bases de dados, mas não fornece output, apenas se o comando deu erro ou não.&lt;br /&gt;
&lt;br /&gt;
Segue abaixo o script e a saída como teste (desculpem a minha mania de colocar em inglês, prefiro pra evitar os problemas com acentos):&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;#!/bin/bash&lt;br /&gt;echo &quot;Provide Node Number (RAC):&quot;&lt;br /&gt;read node_number&lt;br /&gt;if [ -z $node_number ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp; echo &quot;You have to provide a valid node number (datatype number(1))&quot;&lt;br /&gt;fi&lt;br /&gt;echo &quot;Provide utility:&quot;&lt;br /&gt;echo &quot;SQLPLUS =&amp;gt; 1&quot;&lt;br /&gt;echo &quot;RMAN =&amp;gt; 2&quot;&lt;br /&gt;read utility&lt;br /&gt;if [ -z $utility ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp; echo &quot;You have to provide a valid utility number (datatype number(1))&quot;&lt;br /&gt;fi&lt;br /&gt;echo &quot;Provide command(s):&quot;&lt;br /&gt;read commands&lt;br /&gt;#if [ -z $commands ]; then&lt;br /&gt;#&amp;nbsp;&amp;nbsp; echo &quot;You have to provide a valid command (datatype varchar)&quot;&lt;br /&gt;#fi&lt;br /&gt;case $utility in&lt;br /&gt;&amp;nbsp; 1) touch commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;prompt -- Output for instance &amp;amp;_connect_identifier:&quot; &amp;gt; commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;$commands&quot; &amp;gt;&amp;gt; commands.sql &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in `cat /etc/oratab|grep -v &quot;^*&quot;|sed &#39;/^$/d&#39;|sed &#39;/^#/d&#39;|sed &#39;/^+/d&#39;|cut -d &quot;:&quot; -f 1`; do `echo &quot;export ORACLE_SID=$i$node_number&quot;`; sqlplus -S / as sysdba @commands&amp;lt;&amp;lt;EOF&lt;br /&gt;prompt &lt;br /&gt;exit&lt;br /&gt;EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;End of SQLPLUS execution.&quot;;;&lt;br /&gt;&amp;nbsp; 2) touch commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $commands &amp;gt; commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in `cat /etc/oratab|grep -v &quot;^*&quot;|sed &#39;/^$/d&#39;|sed &#39;/^#/d&#39;|sed &#39;/^+/d&#39;|cut -d &quot;:&quot; -f 1`; do `echo &quot;export ORACLE_SID=$i$node_number&quot;`;rman catalog rman/rmancat@rman target / cmdfile=commands.rman&amp;lt;&amp;lt;EOF&lt;br /&gt;exit&lt;br /&gt;EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;End of RMAN execution.&quot;;;&lt;br /&gt;esac&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&amp;nbsp;Saída:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;[oracle@node2]/home/oracle$ ./exec_commands.sh&lt;br /&gt;Provide Node Number (RAC):&lt;br /&gt;2&lt;br /&gt;Provide utility:&lt;br /&gt;SQLPLUS =&amp;gt; 1&lt;br /&gt;RMAN =&amp;gt; 2&lt;br /&gt;1&lt;br /&gt;Provide command(s):&lt;br /&gt;show parameter instance_name&lt;br /&gt;-- Output for instance MICROSOFT2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;MICROSOFT&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance GOOGLE2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;GOOGLE&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance APPLE2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;APPLE&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance ORACLE2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;ORACLE&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance DATAMANAGER2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;DATAMANAGER&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance SAP2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;SAP&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2&lt;br /&gt;&lt;br /&gt;-- Output for instance &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;AMAZON&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;&quot;&gt;2:&lt;br /&gt;&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;instance_name                        string      AMAZON2&lt;br /&gt;&lt;br /&gt;End of SQLPLUS execution.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
Façam bom uso.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/4854623084093995466/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2012/02/script-facilitador-de-vidas-rac-edition.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4854623084093995466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4854623084093995466'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2012/02/script-facilitador-de-vidas-rac-edition.html' title='Script facilitador de vida - RAC Edition'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-4291947149412162932</id><published>2011-09-29T14:05:00.001-03:00</published><updated>2012-03-09T08:31:33.327-03:00</updated><title type='text'>Script facilitador de vida - Várias bases de dados</title><content type='html'>E aí galera!?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bom, hoje tive que criar um procedimento de desligamento para todas as bases de dados do lugar onde eu trabalho. Foi solicitado para documentação.&lt;br /&gt;
Pensei no trabalho que iria ser fazer um script para cada base de dados em cada servidor (e não são poucos) que fizesse o seguinte:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
export ORACLE_SID=(instância1)&lt;br /&gt;
sqlplus / as sysdba &amp;lt;&amp;lt;EOF&lt;br /&gt;
shutdown immediate;&lt;br /&gt;
exit&lt;br /&gt;
EOF&lt;br /&gt;
export ORACLE_SID=(instância2)&lt;br /&gt;
sqlplus / as sysdba &amp;lt;&amp;lt;EOF &lt;br /&gt;
....&lt;/blockquote&gt;
&lt;br /&gt;
Criei um script onde isso poderia tornar as coisas mais fáceis e que se aplica a qualquer servidor do ambiente:&lt;br /&gt;
(UPDATE 17/01/2012 - Script atualizado para ignorar linhas que começam com &quot;*&quot; geralmente criadas quando um agente do grid control é instalado)&lt;br /&gt;
(UPDATE 06/03/2012 - Script reformulado, agora ele solicita o comando. É similar ao script do post &quot;RAC EDITION&quot;) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
#!/bin/bash&lt;br /&gt;echo &quot;Provide utility:&quot;&lt;br /&gt;echo &quot;SQLPLUS =&amp;gt; 1&quot;&lt;br /&gt;echo &quot;RMAN =&amp;gt; 2&quot;&lt;br /&gt;read utility&lt;br /&gt;if [ -z $utility ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp; echo &quot;You have to provide a valid utility number (datatype number(1))&quot;&lt;br /&gt;fi&lt;br /&gt;echo &quot;Provide command(s):&quot;&lt;br /&gt;read commands&lt;br /&gt;#if [ -z $commands ]; then&lt;br /&gt;#&amp;nbsp;&amp;nbsp; echo &quot;You have to provide a valid command (datatype varchar)&quot;&lt;br /&gt;#fi&lt;br /&gt;case $utility in&lt;br /&gt;&amp;nbsp; 1) touch commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;prompt -- Output for instance &amp;amp;_connect_identifier:&quot; &amp;gt; commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;$commands&quot; &amp;gt;&amp;gt; commands.sql &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in `cat /etc/oratab|grep -v &quot;^*&quot;|sed &#39;/^$/d&#39;|sed &#39;/^#/d&#39;|sed &#39;/^+/d&#39;|cut -d &quot;:&quot; -f 1`; do `echo &quot;export ORACLE_SID=$i$node_number&quot;`; sqlplus -S / as sysdba @commands&amp;lt;&amp;lt;EOF&lt;br /&gt;prompt &lt;br /&gt;exit&lt;br /&gt;EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm commands.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;End of SQLPLUS execution.&quot;;;&lt;br /&gt;&amp;nbsp; 2) touch commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $commands &amp;gt; commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in `cat /etc/oratab|grep -v &quot;^*&quot;|sed &#39;/^$/d&#39;|sed &#39;/^#/d&#39;|sed &#39;/^+/d&#39;|cut -d &quot;:&quot; -f 1`; do `echo &quot;export ORACLE_SID=$i$node_number&quot;`;rman catalog rman/rmancat@rman target / cmdfile=commands.rman&amp;lt;&amp;lt;EOF&lt;br /&gt;exit&lt;br /&gt;EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm commands.rman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;End of RMAN execution.&quot;;;&lt;br /&gt;esac&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse script consulta o arquivo /etc/oratab que, no ambiente LINUX/UNIX, possui a lista das instâncias (criadas pelo DBCA), faz o filtro e usa como parâmetro para executar o comando dentro do FOR.&lt;br /&gt;
&lt;br /&gt;
O interessante é que vários tipos de comandos podem ser utilizados nesse caso, basta ter o /etc/oratab atualizado!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/4291947149412162932/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/09/script-facilitador-de-vida-varias-bases.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4291947149412162932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4291947149412162932'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/09/script-facilitador-de-vida-varias-bases.html' title='Script facilitador de vida - Várias bases de dados'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-855724844391792798</id><published>2011-08-17T15:02:00.004-03:00</published><updated>2013-11-18T16:51:58.706-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="backup database"/><category scheme="http://www.blogger.com/atom/ns#" term="Backups"/><category scheme="http://www.blogger.com/atom/ns#" term="BIGFILES"/><category scheme="http://www.blogger.com/atom/ns#" term="Multisection"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="RMAN"/><category scheme="http://www.blogger.com/atom/ns#" term="section"/><category scheme="http://www.blogger.com/atom/ns#" term="Tuning"/><title type='text'>Como otimizar backups de BIGFILES usando RMAN MULTISECTION - 11g</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;OBS.: Reformulei este antigo post que falava sobre BIGFILE. Anteriormente eu passei um script que quebrava o arquivo em partes iguais de acordo com o valor do paralelismo, mas se o arquivo for muito grande vai demorar da mesma forma. Não é obrigatório ser igual ao número de canais. É possível quebrar o arquivo em tamanhos menores e quando o canal terminar uma parte iniciará a outra. Desta forma é mais recomendável.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://static.squarespace.com/static/50adae20e4b0e23b1e8a0c58/t/50c9055ee4b015d1d5e887f0/?format=500w&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; height=&quot;220&quot; src=&quot;http://static.squarespace.com/static/50adae20e4b0e23b1e8a0c58/t/50c9055ee4b015d1d5e887f0/?format=500w&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;O Bigfile pode ajudar em vários fatores, mas é temos que saber utilizá-lo. O tempo necessário para backup/restore aumenta consideravelmente quando trabalhamos com ele sem MULTISECTION. Prefira SMALLFILE quando possível. Melhor ainda: faça um balanço entre usar BIGFILE e SMALLFILE, analisando a questão da quantidade de arquivos, tempos de backup/restore, limitações, etc.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;Foi incluído um recurso interessante no RMAN (Recovery Manager) do Oracle 11g que são os &quot;backups&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;multissessão&quot;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;&amp;nbsp;. Resumindo, para as tablespaces BIGFILE (tablespaces que possuem somente um arquivo de dados com tamanho limite bem maior, 32TB para blocos de 8KB por exemplo, do que o tradicional SMALLFILE de 32GB de limite) o backup pode ser realizado &quot;quebrando&quot; o BIGFILE em partes otimizando o tempo de backup.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Fiz&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;um teste de tempo n&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;o ambiente em que trabalho atualmente e consegui diminuir bastante o tempo, mesmo sendo um backup em disco. Sempre é necessário verificar a infraestrutura para determinar o real custo/benefício de se utilizar paralelismo (consequência de utilizar&amp;nbsp;multissessão). Em ambientes onde são utilizados backups em fita por exemplo, é necessário verificar quantos drives serão utilizados durante o backup sem comprometer o resto do ambiente e em ambientes onde os backups são realizados em disco é bom verificar se o paralelismo irá sobrecarregar o I/O podendo levar até mais tempo do que anteriormente. OBS.: Paralelismo de backups só na ENTERPRISE EDITION.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;No teste, uma base de dados &quot;X&quot; possuía 190GB (180GB só uma tablespace BIGFILE) e o backup levava mais tempo que outra base de dados com o dobro do espaço alocado (o tamanho final de saída em disco do backup era praticamente o mesmo). Tudo isso por conta do BIGFILE.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;O backup deve usar a cláusula SECTION SIZE (tamanho) para quebrar os BIGFILES do banco de dados. Veja os exemplos:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;color: #333333; font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 20px;&quot;&gt;RMAN&amp;gt; backup section size 5G tablespace BIG_DATA; (para apenas o tablespace)&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;ou&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;RMAN&amp;gt;&amp;nbsp;backup section size 5G database; (o RMAN automaticamente fará a quebra para todos os tablespaces bigfiles do banco de dados durante o backup total.)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;b&gt;Somente adicionando a cláusula, o backup que levava 8h30min, caiu pra 2h30min.&lt;/b&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/855724844391792798/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/08/backups-rman-multisecao-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/855724844391792798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/855724844391792798'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/08/backups-rman-multisecao-11g.html' title='Como otimizar backups de BIGFILES usando RMAN MULTISECTION - 11g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-2559231460314130743</id><published>2011-06-21T11:00:00.002-03:00</published><updated>2013-11-20T14:23:09.989-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="01180"/><category scheme="http://www.blogger.com/atom/ns#" term="1180"/><category scheme="http://www.blogger.com/atom/ns#" term="ORA-01180"/><category scheme="http://www.blogger.com/atom/ns#" term="ORA-01180: can not create datafile 1"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 10g"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Restore Database"/><category scheme="http://www.blogger.com/atom/ns#" term="RMAN"/><title type='text'>Restore no RMAN falha com &quot;ORA-01180: can not create datafile 1&quot;</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Depois de um tempo ausente, volto com este probleminha que já aconteceu comigo duas vezes.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Pediram-me para que eu restaurasse um banco de dados para criação de uma base de testes (ainda bem) e no momento da restauração algo assim aconteceu:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;creating datafile No=1 name=/....../o1_mf_system_5n2w3nky_.dbf&lt;br /&gt;
released channel: t1&lt;br /&gt;
RMAN-00571: ===========================================================&lt;br /&gt;
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;br /&gt;
RMAN-00571: ===========================================================&lt;br /&gt;
RMAN-03002: failure of restore command at 09/05/2010 09:34:12&lt;br /&gt;
ORA-01180: can not create datafile 1&lt;br /&gt;
ORA-01110: data file 1: &#39;/....../o1_mf_system_5n2w3nky_.dbf&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Segundo o METALINK, isso acontece porque &quot;O Rman acha que não tem backups pra restaurar, então ele recria os arquivos para aplicar os archives. No entanto isso não funciona para a tablespace SYSTEM&quot;. De fato é verdade. Quando tentamos restaurar os demais arquivos dá certo, só não para a SYSTEM.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Bom, no metalink ele diz que quando você executa um LIST BACKUP diz que existem backups disponíveis. O problema é que existem entradas duplicadas no controlfile, duas incarnações com o mesmo reset SCN:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; class=&quot;km&quot; style=&quot;border-left-color: rgb(196, 209, 230); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(196, 209, 230); border-top-style: solid; border-top-width: 1px; font-family: Arial, Helvetica, sans-serif !important; width: 866px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;DB Key&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;Inc Key&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;DB Name&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;&amp;nbsp;DB ID&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;STATUS&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;&amp;nbsp;Reset SCN&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;Reset Time&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;ORCL&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;3441889539&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;PARENT&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;20-NOV-07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;3 (*)&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;ORCL&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;3441889539&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;CURRENT&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;2388963095&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;&amp;nbsp;30-APR-08&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;2 (*)&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;ORCL&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;3441889539&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;PARENT&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;2388963095&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;26-APR-08&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;A única forma de isso acontecer é se o controlfile foi restaurado de um backup frio via sistema operacional e então outro resetlogs foi executado, gerando o mesmo SCN.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Todos os backups pertencentes a ambas as incarnações (2 e 3) se tornam ao mesmo tempo backups órfãos e atuais.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;O metalink informa que isso é um BUG (&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Bug 5844752).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Mas existe também outra condição que pode resultar neste problema (no meu caso). Quando há um RESETLOGS gerando uma nova incarnação (daí são criados alguns arquivos físicos, etc) e é executado um &quot;RESET DATABASE TO INCARNATION X&quot; para voltar a incarnação anterior (por motivos ainda desconhecidos). Então a incarnação nova (criada com o resetlogs) fica ORPHAN (órfã) gerando o mesmo problema.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Usando a mesma tabela acima como exemplo, o resultado fica mais ou menos assim:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; class=&quot;km&quot; style=&quot;border-left-color: rgb(196, 209, 230); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(196, 209, 230); border-top-style: solid; border-top-width: 1px; font-family: Arial, Helvetica, sans-serif !important; width: 866px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;DB Key&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;Inc Key&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 117px;&quot;&gt;DB Name&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;&amp;nbsp;DB ID&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;STATUS&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;&amp;nbsp;Reset SCN&lt;/th&gt;&lt;th class=&quot;km&quot; style=&quot;background-color: #dee6ef; border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: top; width: 118px;&quot;&gt;Reset Time&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;ORCL&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;3441889539&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;CURRENT&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;20-NOV-07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 113px;&quot;&gt;ORCL&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;3441889539&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;ORPHAN&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;2388963095&lt;/td&gt;&lt;td class=&quot;km&quot; style=&quot;border-bottom-color: rgb(196, 209, 230); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(196, 209, 230); border-right-style: solid; border-right-width: 1px; font-family: Arial, Helvetica, sans-serif; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; vertical-align: top; width: 114px;&quot;&gt;&amp;nbsp;30-APR-08&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Desta forma o erro acontece na hora da restauração.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;O problema é você precisar restaurar esse backup e ele estar nestas condições, por isso é importante saber se está tudo em ordem (incarnações anteriores PARENT e a última CURRENT) antes de realizar os backups para que não aconteçam problemas durante a restauração.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Para os dois casos similares a recriação do controlfile, recatalogação dos backups e restore pode funcionar. Isso para contornar o problema em caso de tentativa de restauração do backup.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;O procedimento é:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;1. Restaurar o controlfile primeiramente;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;2. Gerar um script de recriação do controlfile (backup controlfile to trace;)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;3. Recriar o controlfile;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;4. Recatalogar os backups;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;5. Executar a restauração;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;6. Rezar.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Para corrigir o problema na base atual (para que os backups fiquem OK) você pode apenas executar um &quot;RESET DATABASE TO INCARNATION X&quot; voltando para última incarnação (que estava ORPHAN). Recriar o controlfile também deve solucionar o problema, mas é interessante analisar o caso e, preferencialmente, realizar um backup para executar um método ou o outro. Comigo, no caso da incarnação ORPHAN, corrigi o problema apenas executando um &quot;RESET DATABASE TO INCARNATION&quot;. Após isso executei um backup e um restore sem problemas.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;UPDATE 11/07/2011:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Passei por um problema desse aí galera, mais uma vez, semana passada. No entanto eu percebo que esse problema pode acontecer em situações diferentes e nem sempre vai ter uma explicação bem concreta sobre o caso.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Um amigo que trabalha comigo estava tentando restaurar uma base em outro servidor. Copiou o backup e na hora de restaurar o erro era diferente.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;O RMAN dizia que não existia backups daqueles datafiles, apesar de estar listando no RMAN normalmente:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;em style=&quot;font-style: normal;&quot;&gt;RMAN&lt;/em&gt;-06023:&amp;nbsp;&lt;em style=&quot;font-style: normal;&quot;&gt;no backup&lt;/em&gt;&amp;nbsp;or copy of&amp;nbsp;&lt;em style=&quot;font-style: normal;&quot;&gt;datafile 1 found&lt;/em&gt;&amp;nbsp;to&amp;nbsp;&lt;em style=&quot;font-style: normal;&quot;&gt;restore&lt;/em&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;font-style: normal; font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Achávamos que era por causa do NFS (estávamos testando restaurar pelo NFS por conta do pouco espaço em disco local), mas mesmo copiando dava o mesmo erro. &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Decidi então listar as incarnações novamente no servidor onde o backup estava sendo restaurado pra ver o que tinha lá. Apareceram 3 incarnações:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;PARENT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12-FEV-2008&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;PARENT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 23&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;-OUT-2010&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;CURRENT &amp;nbsp; &amp;nbsp; &amp;nbsp;01-JUL-2011&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Em produção apareciam só as duas primeiras:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;PARENT ...&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;CURRENT ...&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Ninguém realizou resetlogs algum no servidor antes de ser tentado restaurar essa base de dados e muito menos em produção.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Restauramos o controlfile novamente e listamos as incarnações. Apareceu igual como produção. Após recatalogarmos os arquivos de backup, para registrar inclusive os backups de archives, e apareceu a bendita incarnação fantasma de 01-JUL-2011. Sem explicação resolvemos executando um RESET DATABASE TO INCARNATION X (anterior a de 01-JUL) e o backup foi restaurado sem problemas. Alguma coisinha errada tava informando ao banco de dados esse suposto &quot;resetlogs&quot; mesmo sem ter sido executado em produção.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Até mais.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/2559231460314130743/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/06/restore-no-rman-falha-com-ora-01180-can.html#comment-form' title='13 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2559231460314130743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2559231460314130743'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/06/restore-no-rman-falha-com-ora-01180-can.html' title='Restore no RMAN falha com &quot;ORA-01180: can not create datafile 1&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-5996365959689195950</id><published>2011-04-25T16:18:00.000-03:00</published><updated>2011-04-25T16:18:36.855-03:00</updated><title type='text'>MERGE na SQLOBJ$AUXDATA com FULL TABLE SCAN e outros problemas - Oracle Database 11g</title><content type='html'>A versão Oracle Database 11gR2 realmente é uma versão repleta de recursos e melhorias que nos ajudam muito, mas muito mesmo. Algumas coisas mudaram, como o novo SPM (SQL Plan Management) que passa a gerenciar melhor a questão de planos trabalhando junto com a sua base SMB (SQL Management Base).&lt;br /&gt;
Quando um comando SQL é &quot;hard parsed&quot;, o CBO (Cost Based Optimizer) produz vários planos de execução e seleciona um com o custo mais baixo. Se uma baseline de plano de SQL estiver presente, o otimizador compara apenas o plano recém-produzido com os planos já existentes na baseline. Se um plano adequado é encontrado ele é marcado como ACEITO (ACCEPTED) e o plano é utilizado. Se a baseline não tiver um plano aceito, &amp;nbsp;o otimizador avalia os planos aceitos na baseline e usa o que tiver menor custo. Se o plano de execução originalmente produzido pelo otimizador teve um custo menor que o presente na baseline, ele é adicionado a baseline como um plano NÃO-ACEITO (NON-ACCEPTED), então não é utilizado até ser verificado para não degradar o desempenho. Se uma mudança no sistema afeta todos os planos existentes aceitos, então eles são considerados como não-reproduzíveis (NON-REPRODUCIBLE), neste caso o otimizador usará o plano com o custo mais baixo.&lt;br /&gt;
É uma estratégia chamada de &quot;Conservative Plan Selection Strategy&quot;. Como o otimizador preferencialmente usa um plano de execução executado e testado, mesmo que um novo plano pareça ter um desempenho melhor, somente quando o novo plano for provado que executará bem será aceito para uso.&lt;br /&gt;
Por padrão o parâmetro &quot;&lt;b&gt;OPTIMIZER_USE_SQL_PLAN_BASELINES&lt;/b&gt;&quot; vem habilitado que faz com que o Oracle utilize baselines dos planos SQL armazenados na SMB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nem tudo são flores, pois justamente com este recurso tivemos problemas em uma das base de dados que hoje administro. O parâmetro &lt;b&gt;OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES &lt;/b&gt;também foi habilitado (FALSE por padrão) para que o oracle verificasse quando deve capturar baselines de plano SQL automaticamente para tentar melhorar o desempenho, pois até então o desempenho estava muito abaixo do esperado, com alto processamento, etc. Queríamos que o banco de dados capturasse as baselines e tentasse reutilizá-las quando possível. A alteração deste parâmetro para TRUE também não adiantou, não houve melhoria significativa, pois a aplicação utilizava poucas variáveis BIND no código.&lt;br /&gt;
&lt;br /&gt;
Pelo gráfico do EM o desempenho estava de fato muito ruim, com altas taxas de espera relacionados a CPU então geramos um AWR para saber quais eram os TOP SQL.&lt;br /&gt;
Eis que surge:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: black 1pt solid; border-left: black 1pt solid; border-right: black 1pt solid; border-top: black 1pt solid; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;MERGE INTO sqlobj$auxdata USING dual ON (:1 IS NULL) WHEN MATCHED THEN UPDATE SET description = :2, creator = nvl(:3, creator), origin = :4, version = :5, created = :6, last_modified = :7, last_verified = nvl(:8, last_verified), parse_cpu_time = null, optimizer_cost = nvl(:9, optimizer_cost), module = nvl(:10, module), action = nvl(:11, action), priority = nvl(:12, priority), optimizer_env = nvl(:13, optimizer_env), bind_data = nvl(:14, bind_data), parsing_schema_name = nvl(:15, parsing_schema_name), executions = nvl(:16, executions), elapsed_time = nvl(:17, elapsed_time), cpu_time = nvl(:18, cpu_time), buffer_gets = nvl(:19, buffer_gets), disk_reads = nvl(:20, disk_reads), direct_writes = nvl(:21, direct_writes), rows_processed = nvl(:22, rows_processed), fetches = nvl(:23, fetches), end_of_fetch_count = nvl(:24, end_of_fetch_count), task_id = nvl(:25, task_id), task_exec_name = nvl(:26, task_exec_name), task_obj_id = nvl(:27, task_obj_id), task_fnd_id = nvl(:28, task_fnd_id), task_rec_id = nvl(:29, task_rec_id), flags = 0, spare1 = null, spare2 = null WHERE signature = :30 AND category = :31 AND obj_type = :32 AND plan_id = :33 WHEN NOT MATCHED THEN INSERT (signature, category, obj_type, plan_id, description, creator, origin, version, created, last_modified, last_verified, parse_cpu_time, optimizer_cost, module, action, priority, optimizer_env, bind_data, parsing_schema_name, executions, elapsed_time, cpu_time, buffer_gets, disk_reads, direct_writes, rows_processed, fetches, end_of_fetch_count, task_id, task_exec_name, task_obj_id, task_fnd_id, task_rec_id, flags, spare1, spare2) VALUES (:34, :35, :36, :37, :38, :39, :40, :41, :42, :43, null, null, :44, :45, :46, :47, :48, :49, :50, :51, :52, :53, :54, :55, :56, :57, :58, :59, :60, :61, :62, :63, :64, 0, null, null)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Executando &lt;b&gt;FULL TABLE SCAN&lt;/b&gt; na &lt;b&gt;SQLOBJ$AUXDATA&lt;/b&gt;. Justamente o comportamento do SPM com aquele parâmetro &lt;b&gt;OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES &lt;/b&gt;habilitado. No suporte Oracle dizia que era necessário aplicar um patch, pois se tratava de um BUG (&lt;b&gt;BUG 11719151&lt;/b&gt;). Na descrição do bug, dizia que o BUG poderia ocorrer quando quando o parâmetro &lt;b&gt;OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES &lt;/b&gt;estivesse definido para TRUE. Definimos para FALSE, mas mesmo assim nada mudou. Abrimos então um chamado com a Oracle para saber de fato o que fazer já que, teoricamente, o BUG só ocorria quando o &lt;b&gt;OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES &lt;/b&gt;estava FALSE como também o desempenho já estava ruim antes mesmo de alterarmos o parâmetro.&lt;br /&gt;
Depois de algumas análises recomendaram o &lt;b&gt;PATCH 11719151&lt;/b&gt; de fato para corrigir o problema. O Patch poderia ser aplicado ONLINE e assim fizemos usando um comando similar a esse (para RAC com dois nós):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: black 1pt solid; border-left: black 1pt solid; border-right: black 1pt solid; border-top: black 1pt solid; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;opatch apply online -connectString SID_Node1:Username_Node1:Password_Node1:Node1_Name,SID_Node2:Username_Node2:Password_Node2:Node2_Name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
Nada sai do ar. Apesar do ambiente ser cluster, não foi necessário desligar instância alguma, os binários são alterados online, etc. Há uma ocupação extra de memória, mas tudo ocorreu bem para o primeiro banco de dados.&lt;br /&gt;
&lt;br /&gt;
Após a aplicação do patch no primeiro banco de dados, o com problema, o consumo de desempenho simplesmente mudou completamente. Dá pra perceber no gráfico:&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/AVvXsEiKVwCqylKcTB49ZDeEPNlhEZE83FK1wa1MWpTphYKWeDp5DKcP7rrC_W8vm9sMiYln8XcFU9MAYcRqyp4h538qBv-faYyWQ3DXbAfkZSMRzeAakvpJ1eI5zey-GttdE1nChCECmY2FutA/s1600/imagem.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKVwCqylKcTB49ZDeEPNlhEZE83FK1wa1MWpTphYKWeDp5DKcP7rrC_W8vm9sMiYln8XcFU9MAYcRqyp4h538qBv-faYyWQ3DXbAfkZSMRzeAakvpJ1eI5zey-GttdE1nChCECmY2FutA/s320/imagem.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;color: #1f497d; font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Ficou uma beleza, tudo ocorreu bem na aplicação do patch ATÉ AGORA.O patch altera os binários e acessa o banco de dados para realizar algumas alterações. Provavelmente isso poderia acontecer com as demais bases, pois utilizavam o mesmo recurso (11g) então teríamos que continuar aplicando nas demais bases de dados usando os comandos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: black 1pt solid; border-left: black 1pt solid; border-right: black 1pt solid; border-top: black 1pt solid; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;opatch util enableonlinepatch -connectString SID_Node1:Username_Node1:Password_Node1:Node1_Name,SID_Node2:Username_Node2:Password_Node2:Node2_Name -id 11719151 # Banco 2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;opatch util enableonlinepatch -connectString SID_Node1:Username_Node1:Password_Node1:Node1_Name,SID_Node2:Username_Node2:Password_Node2:Node2_Name -id 11719151 # Banco 3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; margin: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;opatch util enableonlinepatch -connectString SID_Node1:Username_Node1:Password_Node1:Node1_Name,SID_Node2:Username_Node2:Password_Node2:Node2_Name -id 11719151 # Banco 4 * PAU&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
Quando chegamos no quarto banco de dados (de 8) outro problema aconteceu. O banco de dados passou a consumir 100% de CPU constantemente, só resolvia se abortássemos o banco, pois nada era possível fazer na máquina por conta do alto processamento. O ABORT foi sofrido, mas conseguimos. Toda vez que a instância subia, 100% CPU. Informamos ao suporte Oracle, mas eles pediram diagnósticos de AWR desta base, etc, mas era impossível, pois CPU 100% direto. Ainda bem que esta base não estava em produção, decidimos então recriá-la e &quot;resolveu&quot; o problema.&lt;br /&gt;
&lt;b&gt;Para as demais bases, deu tudo certo na aplicação do patch.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Na primeira base, que estava com problemas de desempenho, tudo estava normal, porém foi percebido um comportamento estranho. Toda e qualquer consulta que já havia sido executada, ou seja, que já existia na SMB, estava dando &lt;b&gt;ORA-01008&lt;/b&gt;. Muitas consultas na aplicação já haviam sido realizadas, então o sistema estava praticamente inoperante.&lt;br /&gt;
Em contato com o suporte Oracle, informamos os parâmetros em questão, inclusive o OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES já estava FALSE, ele pediu que o parâmetro OPTIMIZER_USE_SQL_PLAN_BASELINES fosse desabilitado também desabilitando assim o recurso de SMB. Neste caso o erro ORA-01008 desapareceu, portanto isso foi uma ação de contorno e então solicitamos que este problema fosse analisado pelo suporte Oracle.&lt;br /&gt;
&lt;br /&gt;
Eles abriram então o &lt;b&gt;BUG 11887892&lt;/b&gt; e estão desenvolvendo uma solução.&lt;br /&gt;
&lt;br /&gt;
Por enquanto está tudo bem e estável, porém sem este recurso do 11g por enquanto. :(&lt;br /&gt;
&lt;br /&gt;
Agradecimentos ao Suporte Oracle que se demonstrou rápido e objetivo em todas as nossas solicitações.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;UPDATE 25/04/2011: &lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;O suporte Oracle nos pediu que o patch aplicado ONLINE fosse removido e reaplicado OFFLINE, pois, segundo eles, houve uma falha no desenvolvimento do patch (faltou a inclusão de um módulo) que ocasiona o problema apenas quando é aplicado ONLINE.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Tivemos então que remover o patch ONLINE, baixar tudo que estava no HOME e reaplicar no modo OFFLINE.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Depois disso tudo ficou mais bonito e os problemas não aconteceram mais. Pude voltar o parâmetro OPTIMIZER_USE_SQL_PLAN_BASELINES para TRUE.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Após o acontecido, a Oracle modificou a documentação do patch removendo a opção de aplicação ONLINE do patch.&lt;/strong&gt;&lt;br /&gt;
Até a próxima!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/5996365959689195950/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/merge-na-sqlobjauxdata-com-full-table.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/5996365959689195950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/5996365959689195950'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/merge-na-sqlobjauxdata-com-full-table.html' title='MERGE na SQLOBJ$AUXDATA com FULL TABLE SCAN e outros problemas - Oracle Database 11g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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/AVvXsEiKVwCqylKcTB49ZDeEPNlhEZE83FK1wa1MWpTphYKWeDp5DKcP7rrC_W8vm9sMiYln8XcFU9MAYcRqyp4h538qBv-faYyWQ3DXbAfkZSMRzeAakvpJ1eI5zey-GttdE1nChCECmY2FutA/s72-c/imagem.PNG" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-6198312258952310416</id><published>2011-03-30T14:49:00.000-03:00</published><updated>2011-03-30T14:49:25.332-03:00</updated><title type='text'>ORA-600 kskopen1 - Oracle 10g 10.2.0.4 no AIX 6.1 64bits</title><content type='html'>Vi este erro hoje quando foi tentado iniciar uma base de dados (fase OPEN):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ORA-00600: internal error code, arguments: [kskopen1], [], [], [], [], [], [], []&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
Segundo o trace gerado poderia ser algo relacionado ao Resource Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;...&lt;br /&gt;
Dump of memory from 0x0000000104AAF424 to 0x0000000104AAF564&lt;br /&gt;
104AAF420 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;25642C20 43505573 203D2025 &amp;nbsp; &amp;nbsp; &amp;nbsp;[%d, CPUs = %]&lt;br /&gt;
104AAF430 640A0049 4F70656E 696E6720 77697468 &amp;nbsp;[d..I&lt;b&gt;Opening with&lt;/b&gt;]&lt;br /&gt;
104AAF440 20696E74 65726E61 6C205265 736F7572 &amp;nbsp;[ &lt;b&gt;internal Resour&lt;/b&gt;]&lt;br /&gt;
104AAF450 6365204D 616E6167 65722070 6C616E0A &amp;nbsp;[&lt;b&gt;ce Manager plan.&lt;/b&gt;]&lt;br /&gt;
104AAF460 0049424D 6B736B6F 70656E31 0049424D &amp;nbsp;[.IBM&lt;b&gt;kskopen1&lt;/b&gt;.IBM]&lt;br /&gt;
104AAF470 6B736B74 68657869 7428293A 20206465 &amp;nbsp;[&lt;b&gt;kskthexit&lt;/b&gt;(): &amp;nbsp;de]&lt;br /&gt;
104AAF480 6C657469 6E672074 68726561 64203078 &amp;nbsp;[leting thread 0x]&lt;br /&gt;
104AAF490 25782C20 76632030 7825782C 20736573 &amp;nbsp;[%x, vc 0x%x, ses]&lt;br /&gt;
104AAF4A0 73203078 25700A00 6B736B74 6872736F &amp;nbsp;[s 0x%p..kskthrso]&lt;br /&gt;
...&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Algum recurso foi habilitado e não era suportado gerando o erro.&lt;br /&gt;
&lt;br /&gt;
Há uma forma de desabilitar o uso do Resource Manager o que possibilita abrir o banco de dados:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;alter system set &quot;_resource_manager_always_on&quot;=FALSE scope=spfile;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
Desta forma o banco de dados subiu, daí é só remover o recurso não suportado e pronto, reabilitar o Resource Manager. (Metalink ID 854192.1)&lt;br /&gt;
&lt;br /&gt;
Até mais.</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/6198312258952310416/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/ora-600-kskopen1-oracle-10g-10204-no.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6198312258952310416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6198312258952310416'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/ora-600-kskopen1-oracle-10g-10204-no.html' title='ORA-600 kskopen1 - Oracle 10g 10.2.0.4 no AIX 6.1 64bits'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-2935383308958892751</id><published>2011-03-10T10:02:00.002-03:00</published><updated>2011-03-10T10:03:24.143-03:00</updated><title type='text'>ENQ: TX - ROW LOCK CONTENTION no Oracle RAC</title><content type='html'>Feliz ano novo (para os que consideram o início do ano após o carnaval),&lt;br /&gt;
Desculpem minha ausência, mas é que o tempo é curto e muitas coisas estão acontecendo ao mesmo tempo.&lt;br /&gt;
Preciso informar a vocês um evento em particular que ocorreu comigo em um dos ambientes em que trabalho. O ambiente é em RAC 11g e um sistema foi migrado.&lt;br /&gt;
Quando este foi migrado, foi percebido um alto índice de ocorrência do evento &quot;ENQ: TX - ROW LOCK CONTENTION&quot; que não acontecia antes. Isso parece claro, porém não foi tão fácil assim resolver. Este evento acontecia em INSERTS, UPDATES e DELETES causando um &quot;pequeno&quot; estresse ao utilizar a aplicação. Anteriormente o sistema funcionava normalmente em SINGLE INSTANCE, mas os problemas vieram após &quot;virar&quot; pro RAC.&lt;br /&gt;
Sabemos que falta de índices em chaves estrangeiras causam problemas de ROW LOCK, mas não era o caso, pois não acontecia anteriormente. Quando ocorre este evento em INSERTS, geralmente, é pelo fato de uma sessão estar inserindo um valor X e outra sessão estar inserindo o mesmo valor X causando a esta a espera ROW LOCK. Se a primeira sessão confirmasse (COMMIT) o erro de CONSTRAINT violada apareceria para a segunda, mas se a primeira não confirmasse (ROLLBACK) a segunda iria inserir com sucesso.&lt;br /&gt;
Isso também foi analisado, mas não era o caso. Algumas vezes até DEADLOCK ocorria com apenas traces e informações geradas de uma sessão.&lt;br /&gt;
Foi percebido que o ambiente usava MTS (Microsoft Transaction Server) que tratava as transações como distribuídas no Oracle. No caso do RAC o que acontecia era que um usuário quando entrava no sistema WEB abria várias sessões, algumas em uma instância e outras na outra instância. Notei que quando isso acontecia causava tais bloqueios.&lt;br /&gt;
Para resolver da melhor forma possível, criei serviços voltados para este tipo de configuração e adaptei ao ambiente do sistema com MTS.&lt;br /&gt;
&lt;br /&gt;
Primeiramente o comando abaixo criou o serviço &quot;WEB_XA1&quot; com FAILOVER, Load Balance Goal SHORT runtime SERVICE_TIME, DTP TRUE (-x, processamento de transações distribuídas), notificações AQ TRUE (Fast Start App Failover), instância preferencial WEB1, instância disponível WEB2. Significa que quem conectar no WEB_XA1, todas suas sessões cairão somente na instância WEB1 e caso esta não esteja disponível as sessões serão transferidas/abertas na WEB2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: black; border-left-style: solid; border-left-width: 1pt; border-right-color: black; border-right-style: solid; border-right-width: 1pt; border-top-color: black; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0cm; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;$ srvctl add service -d WEB -s WEB_XA1 -P BASIC -e SELECT -m BASIC -j SHORT -B SERVICE_TIME -x TRUE -q TRUE -r WEB1 -a WEB2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Depois criei outro serviço, mas com a instância preferencial e disponível trocados:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: black; border-left-style: solid; border-left-width: 1pt; border-right-color: black; border-right-style: solid; border-right-width: 1pt; border-top-color: black; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0cm; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;$ srvctl add service -d WEB -s WEB_XA2 -P BASIC -e SELECT -m BASIC -j SHORT -B SERVICE_TIME -x TRUE -q TRUE -r WEB2 -a WEB1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Fiz isso porque no ambiente possuem 4 servidores de aplicação, então em 2 servidores foi configurado para acessar o serviço WEB_XA1 e o outro WEB_XA2 para balancear a carga. Após isso configurado o evento de espera &quot;ENQ: TX - ROW LOCK CONTENTION&quot; simplesmente desapareceu.&lt;br /&gt;
&lt;br /&gt;
Fica aí a dica pra quem enfrentar isto após migrações para ambiente RAC e transações distribuídas.&lt;br /&gt;
&lt;br /&gt;
Até a próxima.</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/2935383308958892751/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/enq-tx-row-lock-contention-no-oracle.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2935383308958892751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/2935383308958892751'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/03/enq-tx-row-lock-contention-no-oracle.html' title='ENQ: TX - ROW LOCK CONTENTION no Oracle RAC'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-674141500416910560</id><published>2011-01-23T22:50:00.002-03:00</published><updated>2011-01-24T00:42:04.429-03:00</updated><title type='text'>O parâmetro de inicialização AUDIT_SYSLOG_LEVEL - Oracle Database 10g</title><content type='html'>O parâmetro de inicialização AUDIT_SYSLOG_LEVEL é parcialmente documentado. Várias imprecisões na documentação sugerem que o parâmetro é menos útil do que realmente é. Ações de banco de dados pelo SYS e/ou administradores de banco de dados ou os operadores podem ser auditados para registrar nos arquivos de log (pelo deamon do syslog) do sistema operacional UNIX pertencentes ao root. Isso impede que usuários de banco de dados privilegiados removam os registros de auditoria que contêm um registo das suas atividades. A configuração padrão é a auditoria CONNECT, STARTUP e SHUTDOWN com privilégios SYSDBA ou SYSOPER com escrita nos arquivos pertencentes ao proprietário do software Oracle, embora não havendo auditoria do SQL, PL/SQL e outras ações com esses privilégios ou outros privilégios, tais como a role DBA. Em outras palavras, com exceção das operações descritas acima, a auditoria padrão (veja o parâmetro AUDIT_TRAIL), assim como auditoria fina (veja o pacote DBMS_FGA), estão desligadas por padrão. Como conseqüência, não haverá nenhum vestígio de muitas atividades realizadas por usuários privilegiados. Auditoria de arquivos do sistema operacional pertencente ao proprietário do software Oracle (AUDIT_TRAIL = OS) ou para a tabela de banco de dados SYS.AUD$ (AUDIT_TRAIL = DB) pode ser contornada, uma vez que os DBAs têm normalmente acesso à conta do proprietário do software Oracle UNIX, bem como a SYS.AUD$, o que lhes permite facilmente remover registros de auditoria gerados por suas ações. Auditoria pelo syslog UNIX também é útil para a detecção de invasões por hackers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;- Syslog&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Um novo recurso do Oracle 10g é a capacidade de gravar trilhas de auditoria usando o syslog em sistemas UNIX. Este mecanismo consiste em um processo daemon chamado syslogd (veja &quot;man syslogd&quot;) que aceita mensagens de registro dos pedidos através da função syslog na biblioteca C (veja &quot;man syslog&quot;). O arquivo de configuração para o syslogd é normalmente /etc/syslog.conf e as mensagens de log vão para arquivos em /var/log e /var/adm dependendo da variante do UNIX. O nome do arquivo de log é determinada por uma seqüência que consiste em um nome de unidade e uma prioridade ou nível. A maioria destes pode ser utilizado na definição do AUDIT_SYSLOG_LEVEL. Cada entrada no /etc/syslog.conf atribui um nome de arquivo de log para uma determinada combinação de facilidade e prioridade. Ao colocar a entrada &quot;user.notice /var/log/oracle_dbms&quot; no arquivo syslog.conf e fazendo com que o syslogd releia o arquivo de configuração enviando um sinal de hang-up com o comando kill, qualquer entrada posterior no log de uma instância ORACLE com o parâmetro configurado AUDIT_SYSLOG_LEVEL = user.notice será gravado no arquivo /var/log/oracle_dbms.&lt;br /&gt;
&lt;br /&gt;
No Windows, quando o parâmetro AUDIT_SYS_OPERATIONS é definido para TRUE, operações com SYSDBA ou SYSOPER são escritas também para o Event Log.&lt;br /&gt;
&lt;br /&gt;
O manual &quot;Oracle Database Reference 10g Release 2&quot; fala sobre o AUDIT_SYSLOG_LEVEL assim:&lt;br /&gt;
&lt;br /&gt;
AUDIT_SYSLOG_LEVEL permite que os logs de auditoria SO sejam escritos para o sistema via utilitário syslog, isso se o parâmetro AUDIT_TRAIL for definido para &quot;OS&quot;. O valor da facilidade pode ser qualquer dos seguintes: USER, LOCAL0, LOCAL7, SYSLOG, DAEMON, KERN, MAIL, AUTH, LPR, NEWS, UUCP ou CRON. O Valor do nível pode ser quaisquer dos seguintes: NOTICE, INFO, DEBUG, WARNING, ERR, CRIT, ALERT, EMERG.&lt;br /&gt;
&lt;br /&gt;
Testes do novo recurso em ambientes Solaris 10 e Red Hat Linux mostram que a documentação é imprecisa em 3 pontos:&lt;br /&gt;
&lt;br /&gt;
1. AUDIT_SYSLOG_LEVEL é independente do AUDIT_TRAIL. Quando o AUDIT_SYSLOG_LEVEL é definido e o AUDIT_TRAIL tem seu valor padrão para NONE, ações CONNECT, STARTUP e SHUTDOWN são logados via syslog.&lt;br /&gt;
2. Definindo os parâmetros AUDIT_SYSLOG_LEVEL e AUDIT_SYS_OPERATIONS=TRUE causa qualquer ação como comandos SQL e PL/SQL executados com privilégios SYSDBA ou SYSOPER serem logados via syslog, mesmo se AUDIT_TRAIL=NONE.&lt;br /&gt;
&lt;br /&gt;
3. Somente certas combinações de facilidades e níveis são aceitáveis. Combinações não aceitáveis causam o erro &quot;ORA-32028: Syslog facility or level not recognized&quot; e assim impedindo que a instância DBMS se inicie.&lt;br /&gt;
&lt;br /&gt;
Se a documentação fosse precisa, não seria possível auditar ações executadas com privilégios SYSDBA ou SYSOPER ao log do systema, enquanto ações de auditoria por outros usuarios para a tabela &amp;nbsp;SYS.AUD$ do dicionário de dados. Entretanto, esta limitação não existe.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;font-size: x-large;&quot;&gt;Usando AUDIT_SYSLOG_LEVEL&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Como citado anteriormente, a string definida ao parâmetro AUDIT_SYSLOG_LEVEL deve consistir de um nome de uma facilidade e uma prioridade ou nível. Curiosamente, quando executa-se um SHOW PARAMETER ou um SELECT FROM V$PARAMETER, meramente a facilidade é visível, o ponto e o nível são suprimidos (teste na versão 10.2.0.3). Por exemplo, com a entrada *.audit_syslog_level=&#39;USER.NOTICE&#39; no SPFILE usado para iniciar a instância, SHOW PARAMETER mostra:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; SHOW PARAMETER audit_syslog_level&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VALUE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;------------------------------------ ----------- -----&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;audit_syslog_level &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string &amp;nbsp; &amp;nbsp; &amp;nbsp;USER&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; SELECT value FROM v$parameter WHERE name=&#39;audit_syslog_level&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;VALUE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;-----&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;USER&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Ainda assim, quando executa-se CONNECT / AS SYSDBA, a facilidade e o nível logado em /var/adm/messages (no Solaris) é &quot;user.notice&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver Oracle Audit[27742]: [ID 441842 user.notice]&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ACTION : &#39;CONNECT&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver DATABASE USER: &#39;/&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver PRIVILEGE : SYSDBA&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver CLIENT USER: oracle&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver CLIENT TERMINAL: pts/3&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:45:52 dbserver STATUS: 0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Se um SPFILE for utilizado, a definição completa do parâmetro é visualizada consultando a V$SPPARAMETER:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; SELECT value FROM v$spparameter WHERE name=&#39;audit_syslog_level&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;VALUE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;-----------&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;user.notice&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;- Auditando usuários não-privilegiados&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Claro, você pode também direcionar os registros de auditoria relativos aos usuários não-privilegiados no log de sistema, definindo AUDIT_TRAIL = OS além de AUDIT_SYSLOG_LEVEL. Os usuários não-privilegiados não podem apagar as trilhas de auditoria. A busca por autores com consultas em views de auditoria, como DBA_AUDIT_STATEMENT ou DBA_AUDIT_OBJECT, é mais fácil do que procurar no log de sistema. Por estas razões, mantendo as trilhas de auditoria de usuários não-privilegiados dentro do banco de dados com AUDIT_TRAIL = DB é o preferido. Com o último ajuste, trilhas de auditoria são gravados na tabela SYS.AUD$ e pode ser consultado através das views de dicionário acima mencionadas. Definindo AUDIT_TRAIL=NONE, desliga auditoria de ações por usuários não-privilegiados.&lt;br /&gt;
Abaixo um exemplo depois de habilitar auditoria para conexões no banco de dados estabilizadas por usuários não-privilegiados:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; AUDIT CONNECT BY appuser /* audit_trail=os set */;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:41:14 dbserver Oracle Audit[27684]: [ID 930208 user.notice]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SESSIONID: &quot;15&quot; ENTRYID: &quot;1&quot; STATEMENT: &quot;1&quot; USERID: &quot;APPUSER&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;USERHOST: &quot;dbserver&quot; TERMINAL: &quot;pts/3&quot; ACTION: &quot;100&quot; RETURNCODE: &quot;0&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;COMMENT$TEXT: &quot;Authenticated by: DATABASE&quot; OS$USERID: &quot;oracle&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;PRIV$USED: 5&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Outra entrada é adicionada ao /var/adm/messages (no Solaris) quando uma sessão do banco de dados encerrou:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 11:44:41 dbserver Oracle Audit[27684]: [ID 162490 user.notice]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SESSIONID: &quot;15&quot; ENTRYID: &quot;1&quot; ACTION: &quot;101&quot; RETURNCODE: &quot;0&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;LOGOFF$PREAD: &quot;1&quot; LOGOFF$LREAD: &quot;17&quot; LOGOFF$LWRITE: &quot;0&quot; LOGOFF$DEAD:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;0&quot; SESSIONCPU: &quot;2&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Perceba que dados adicionais são fornecidos nas ações LOGON (100) e LOGOFF (101) conforme as colunas na visão DBA_AUDIT_SESSION:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SQL&amp;gt; SELECT action, name FROM audit_actions WHERE action IN (100,101)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ACTION NAME&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;------ ------&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; 100 LOGON&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; 101 LOGOFF&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Quando o parâmetro é definido para AUDIT_SYSLOG_LEVEL=AUTH.INFO, AUDIT_SYS_OPERATIONS=FALSE e AUDIT_TRAIL=NONE, ações CONNECT,STARTUP e SHUTDOWN são logados via syslog. Com estas configurações um shutdown de uma instância escreve entradas similares as seguintes para o /var/adm/messages:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver Oracle Audit[29036]:[ID 63719 auth.info] ACTION:&#39;SHUTDOWN&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver DATABASE USER: &#39;/&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver PRIVILEGE : SYSDBA&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver CLIENT USER: oracle&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver CLIENT TERMINAL: pts/3&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:40:01 dbserver STATUS: 0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando o parâmetro é definido para AUDIT_SYSLOG_LEVEL=AUTH.INFO, AUDIT_SYS_OPERATIONS=TRUE, e AUDIT_TRAIL=NONE, comandos SQL and PL/SQL executados com privilégios SYSDBA ou SYSOPER são também logados via syslog. Excluindo um usuário depois de se conectar com / AS SYSDBA resulta numa entrada similar no syslog:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver Oracle Audit[29170]: [ID 853627 auth.info]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ACTION : &#39;drop user appuser&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver DATABASE USER: &#39;/&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver PRIVILEGE : SYSDBA&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver CLIENT USER: oracle&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver CLIENT TERMINAL: pts/3&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Feb 21 14:46:53 dbserver STATUS: 0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Até mais!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trecho retirado do livro (traduzido e com adaptações):&lt;br /&gt;
LONG, Norbert. Secrets of the Oracle Database. Apress, &amp;nbsp;New York, p.03-08, 2009</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/674141500416910560/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/o-parametro-de-inicializacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/674141500416910560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/674141500416910560'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/o-parametro-de-inicializacao.html' title='O parâmetro de inicialização AUDIT_SYSLOG_LEVEL - Oracle Database 10g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-3298834393065823747</id><published>2011-01-04T16:36:00.006-03:00</published><updated>2013-11-18T16:55:51.306-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database"/><category scheme="http://www.blogger.com/atom/ns#" term="password"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="user$"/><category scheme="http://www.blogger.com/atom/ns#" term="VALUES"/><title type='text'>ALTER USER  IDENTIFIED BY VALUES</title><content type='html'>&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;a href=&quot;https://blog.lookout.com/wp-content/uploads/2013/11/password.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; height=&quot;213&quot; src=&quot;https://blog.lookout.com/wp-content/uploads/2013/11/password.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;O comando CREATE/ALTER USER &amp;lt;usuario&amp;gt; IDENTIFIED BY VALUES &#39;&amp;lt;password hash&amp;gt;&#39; não é documentado. É utilizado internamente para armazenar as senhas que foram anteriormente salvas com o utilitário export na tabela do dicionário de dados SYS.USER$. Em algumas situações onde o DBA precisa se conectar com um certo usuário, mas não sabe a senha dele ou a possibilidade de salvar estas senhas ganha-se tempo ao invés de sair perguntando por elas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Às vezes você como DBA precisa realizar alguma manutenção que é preciso ser com aquele schema específico, mas a empresa não quer fornecer a senha do usuário/schema então este recurso pode ser utilizado da seguinte maneira:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Você se conecta com um usuário administrativo (DBA ou SYSDBA) e executa a consulta e anota o resultado:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; spool senha.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; SELECT password FROM dba_users&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE username=&#39;SCOTT&#39;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;PASSWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;F894844C34402B67&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Agora você altera temporariamente a senha do usuário para qualquer uma e poderá realizar a manutenção desejada:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: solid black 1.0pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; ALTER USER scott IDENTIFIED BY manutencao;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Após a manutenção você apenas retorna para o valor desejado e a senha voltará a ser a mesma de antes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: solid black 1.0pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; ALTER USER scott IDENTIFIED BY VALUES &#39;F894844C34402B67&#39;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Pronto. É uma ação simples, mas muitos não sabem desta boa idéia na hora de executar alguma manutenção com esses requisitos. Em migrações também pode ser útil.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Existe também uma outra utilidade para esse comando, é gerar &quot;senhas impossíveis&quot;. A Oracle recomenda que você bloqueie contas internas do banco de dados como CTXSYS, XDB, OLAPSYS, etc., mas dessa forma você permite que outros descubram o que está instalado como funcionalidade no banco de dados e permitir que explorem vulnerabilidades. Se a conta estiver apenas bloqueada o &quot;invasor&quot; verá “ORA-28000: the account is locked” e assim descobrindo que essa funcionalidade existe. Nesse contexto podem ser geradas senhas impossíveis que utilizam o mesmo comando &quot;... IDENTIFIED BY VALUES&quot; impossibilitando que o invasor perceba que a funcionalidade existe. Se ele tentasse se conectar outro erro seria gerado:&amp;nbsp;&lt;/span&gt;“ORA-01017: invalid username/password; logon denied”.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para gerar um password impossível é fácil, basta você colocar um texto comum após o VALUES. Desta forma o Oracle nunca poderia decodificar o seu &quot;hash&quot; em uma senha:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: black; border-left-style: solid; border-left-width: 1pt; border-right-color: black; border-right-style: solid; border-right-width: 1pt; border-top-color: black; border-top-style: solid; border-top-width: 1pt; margin-left: 0cm; margin-right: 19.85pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm;&quot;&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; ALTER USER olapsys IDENTIFIED BY VALUES &#39;IMPOSSIBLE&#39; ACCOUNT UNLOCK;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando você verificar a senha na visão DBA_TABLES você irá ver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;SQL&amp;gt; SELECT username,password FROM DBA_USERS ORDER BY username;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;USERNAME&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PASSWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Courier;&quot;&gt;-------- &amp;nbsp;&amp;nbsp;&amp;nbsp;--------&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Courier;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;MGMT_VIEW&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;108DD8F2F748347B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;OLAPSYS&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMPOSSIBLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;ORACLE_OCM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6D17CF1EB1611F94&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 0cm; text-indent: 0cm;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
Até a próxima!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/3298834393065823747/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/alter-user-identified-by-values.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/3298834393065823747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/3298834393065823747'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/alter-user-identified-by-values.html' title='ALTER USER  IDENTIFIED BY VALUES'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-4665119330785465058</id><published>2011-01-03T09:37:00.000-03:00</published><updated>2011-01-03T09:37:05.305-03:00</updated><title type='text'>Feliz 2011!</title><content type='html'>Feliz 2011 pessoal! Que este ano seja ótimo para nós, com certificações, saúde, reconhecimentos e outras conquistas. Em breve estarei postando mais alguns artigos interessantes por aí. Fiquem ligados!&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/AVvXsEiestirxSws9ErjpXMiIdg4i1exx2mhHvniHyk22ab-5WhE04Wk-emg14pK_LWiqCHn9VlbWteesh7nMPBbHVi645YL871IuPP2mhgY6hNSgjGn5y08qghN4VXlPPQSbvQo8SRo__7M24A/s1600/feliz+2011.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiestirxSws9ErjpXMiIdg4i1exx2mhHvniHyk22ab-5WhE04Wk-emg14pK_LWiqCHn9VlbWteesh7nMPBbHVi645YL871IuPP2mhgY6hNSgjGn5y08qghN4VXlPPQSbvQo8SRo__7M24A/s320/feliz+2011.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/4665119330785465058/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/feliz-2011.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4665119330785465058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4665119330785465058'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2011/01/feliz-2011.html' title='Feliz 2011!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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/AVvXsEiestirxSws9ErjpXMiIdg4i1exx2mhHvniHyk22ab-5WhE04Wk-emg14pK_LWiqCHn9VlbWteesh7nMPBbHVi645YL871IuPP2mhgY6hNSgjGn5y08qghN4VXlPPQSbvQo8SRo__7M24A/s72-c/feliz+2011.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181968733178829558.post-6944820723782869982</id><published>2010-12-29T13:05:00.001-03:00</published><updated>2010-12-30T13:13:04.959-03:00</updated><title type='text'>Habilitar auditoria em falha de logins - Oracle Database 10g e 11g</title><content type='html'>Algumas vezes queremos descobrir quem é o infeliz que está bloqueando uma conta no banco de dados. Para tornar as coisas mais simples você pode habilitar a auditoria no banco de dados e ativar a auditoria neste evento específico. Isso ajuda a descobrir qual é a máquina, qual o erro retornado, quando foi, dentre outras informações.&lt;br /&gt;
&lt;br /&gt;
No 10g é necessário realizar os seguintes procedimentos, mas no 11g a auditoria já é habilitada por padrão:&lt;br /&gt;
&lt;br /&gt;
1. Defina o parâmetro audit_trail para &quot;DB&quot; no spfile/pfile e reinicie a instância:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: double windowtext 5.25pt; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; alter system set audit_trail=DB scope=spfile ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;System altered.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; shutdown immediate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;Database closed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;Database dismounted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;ORACLE instance shut down.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; startup ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;ORACLE instance started.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
2. Agora habilite o audit no evento desejado de falha de login:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: double windowtext 5.25pt; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; audit session whenever not successful ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;Audit succedded.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
3. Para testar efetue uma conexão com o banco de dados informando senha errada e execute a consulta:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: double windowtext 5.25pt; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; select os_username,username,userhost,to_char(timestamp,&#39;mm/dd/yyyy hh24:mi:ss&#39;) timestamp,returncode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;from dba_audit_session&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;where action_name = &#39;LOGON&#39;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;and returncode &amp;gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;order by timestamp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Até mais!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/6944820723782869982/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/habilitar-auditoria-em-falha-de-logins.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6944820723782869982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6944820723782869982'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/habilitar-auditoria-em-falha-de-logins.html' title='Habilitar auditoria em falha de logins - Oracle Database 10g e 11g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-7400981570725901302</id><published>2010-12-28T12:52:00.000-03:00</published><updated>2010-12-28T12:52:16.444-03:00</updated><title type='text'>BUG mudando &quot;db_cache_size&quot; em instância ASM - Oracle 11gR2 RAC</title><content type='html'>Galera, mais uma que eu preciso citar. Estava eu achando que ia ser simples o procedimento de alterar alguns parâmetros na instância ASM do Oracle, mas não foi bem assim.&lt;br /&gt;
&lt;br /&gt;
A Oracle recomenda fortemente que você utilize o AMM (Automatic Memory Management) pra tudo aceitando os valores padrão , inclusive instâncias ASM, mas isso, inclusive citado em alguns lugares, pode não ser muito legal, pois pro ASM é melhor memória estática. Esse detalhe vale pra versão 11.1, mas pra versão 11.2 ainda não sei.&lt;br /&gt;
&lt;br /&gt;
Bom, precisei primeiramente alterar o parâmetro &quot;processes&quot; das instâncias ASM, pois estão penduradas 8 bases e o limite de processos estourou rapidinho. Ao tentar alterar este valor de acordo com a documentação &quot;ASM Best Practices&quot; e reiniciar a instância ASM o erro era mostrado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: double windowtext 5.25pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;  &lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;ORA-04031: unable to allocate &quot;string&quot; bytes of shared memory (&quot;string&quot;,&quot;string&quot;,&quot;string&quot;,&quot;string&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Foi aí que comecei a pensar em aumentar os parâmetros de memória e desabilitar o AMM (MEMORY_TARGET=0 e SGA_TARGET=0).&lt;br /&gt;
&lt;br /&gt;
Redefinindo os parâmetros conforme documentação deu tudo certo. Aumentei o limite de processos do ASM, mas um parâmetro em especial dava erro ao ser alterado como os demais (scope=spfile): db_cache_size. O erro:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border: double windowtext 5.25pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;  &lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: thick-thin-large-gap windowtext 5.25pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;ORA-07445[kcbw_check_resize_errors] [SIGSEGV]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
E minha conexão caía na instância ASM. Segundo o Oracle MySupport (a.k.a. Metalink) isso é um bug (&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 6px; -webkit-border-vertical-spacing: 6px; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;strong&gt;ID 553176.1)&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;e para contorná-lo é necessário criar um pfile, alterar o parâmetro e criar um spfile desde pfile alterado.&lt;br /&gt;
&lt;br /&gt;
Depois disso tudo subiu tranquilo.&lt;br /&gt;
&lt;br /&gt;
Até mais e Busquem Conhecimento!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/7400981570725901302/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/bug-mudando-dbcachesize-em-instancia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/7400981570725901302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/7400981570725901302'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/bug-mudando-dbcachesize-em-instancia.html' title='BUG mudando &quot;db_cache_size&quot; em instância ASM - Oracle 11gR2 RAC'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-6346780139378497151</id><published>2010-12-27T21:05:00.002-03:00</published><updated>2010-12-28T16:50:57.074-03:00</updated><title type='text'>ASM New Features 11g</title><content type='html'>Poisé galera, lá vamos nós! Hoje vou aproveitar que estou passando por experiências com o ASM num ambiente RAC Extended 11gR2 e comentar algumas mais importantes New Features do ASM. Alguns buxos também apareceram e tivemos que resolver também. O ASM (Automatic Storage Management) é um grande recurso da Oracle que foi desenvolvido com o intuito de facilitar a administração de volumes físicos para serem utilizados pelo banco de dados. Possui vários recursos interessantes como espelhamento de discos, striping, etc. e alguns novos na versão 11g.&lt;br /&gt;
&lt;br /&gt;
Quando você cria um diskgroup no ASM da primeira vez na versão 11g ele cria  como padrão compatível com 10g (10.1), ou seja, os atributos  COMPATIBLE.ASM e COMPATIBLE.RDBMS estão 10.1 e desta forma tais novos  recursos não seriam habilitados. Creio que o Oracle faz isso para  permitir que você utilize numa possível migração 10g&amp;gt;11g recursos  como Transportable Tablespace ou afins. O atributo COMPATIBLE.ASM permite que novos recursos do ASM sejam utilizados e o COMPATIBLE.RDBMS é comparada com o valor do parâmetro &quot;compatible&quot; da instância do banco de dados que está ligado àquele diskgroup. Há uma dependência entre os dois atributos onde o COMPATIBLE.RDBMS não pode estar numa versão superior ao do COMPATIBLE.ASM. Se você não for utilizar recursos como Transportable Tablespaces ou afins para realizar uma migração de banco de dados ou vai utilizar aquele mesmo diskgroup pra armazenar bancos de dados 10g e 11g, é recomendável que estes atributos sejam modificados para 11.1 ou 11.2 dependendo da versão. Depois dos atributos modificados você poderá usufruir dos novos recursos.&lt;br /&gt;
&lt;br /&gt;
Para alterar os atributos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; alter diskgroup DATA set attribute &#39;compatible.asm&#39;=&#39;11.2&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; alter diskgroup DATA set attribute &#39;compatible.rdbms&#39;=&#39;11.2&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;OBS: Depois de atualizado o valor não pode ser retornado para um versão anterior.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Para mudar o comportamento padrão na criação dos Diskgroups:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: solid white 1.0pt; mso-border-alt: solid white .5pt; mso-border-themecolor: background1; mso-border-themecolor: background1; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid white .5pt; mso-border-themecolor: background1; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; alter system set &quot;_asm_compatibility&quot;=&#39;11.2&#39; scope=spfile sid=&#39;*&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid white .5pt; mso-border-themecolor: background1; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; alter system set &quot;_rdbms_compatibility&quot;=&#39;11.2&#39; scope=spfile sid=&#39;*&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Restart das instâncias ASM e pronto.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Privilégio novo: SYSASM:&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Esse novo privilégio faz com que algumas rotinas administrativas do ASM fiquem mais restritas. Para executar rotinas como gerenciamento de diskgroups, etc será necessário entrar com esse privilégio:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;$ sqlplus / as sysasm&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Fast Mirror Resync:&lt;/li&gt;
&lt;/ul&gt;No 10g quando algum disco do diskgroup era perdido por algum motivo, ele já era excluído de imediato. Após repor o disco era necessário adicioná-lo novamente e a operação de rebalanceamento se iniciava. No 11g o disco é posto OFFLINE e o ASM mantém as informações dos extents para enviar àquele disco quando o problema for resolvido. Quando o disco ficar OK basta executar o comando &quot;ALTER DISKGROUP dg_name ONLINE ALL;&quot; para repor todos os discos que estavam offline em online novamente. O processo de rebalanceamento será muito mais rápido. Por padrão você tem 3.6Horas para repor este disco antes que ele seja eliminado, mas isso é outro atributo que pode ser alterado.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Prefered Read;&lt;/li&gt;
&lt;/ul&gt;Um recurso bem interessante. Parâmetros são definidos em cada instância ASM, útil quando o ambiente é RAC Extended (Um nó em um site e outro nó em outro site),&amp;nbsp; que irão priorizar a leitura do FAILGROUP daquele DISKGROUP, ou seja, o storage do site 1 terá preferência de leitura no site 1 e no site 2 leitura preferencial do storage 2. Isso otimiza bastante o desempenho em leitura evitando &quot;round-trips&quot;, ou seja, voltas e voltas para entregar um dado. Imagine uma sessão de um usuário que está no site 1 que é aberta no site 2, executa uma consulta que traz dados do storage do site 1 (o Oracle não sabe diferenciar onde é mais perto), o dado sai do site 1 para o site 2 e volta pro site 1 entregando o resultado para a sessão. Pense numa viagem!&lt;br /&gt;
Para habilitar o recurso:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; alter system set asm_preferred_read_failure_groups=&#39;DATA.SITE1&#39;,&#39;FLASH.SITE1&#39; sid=&#39;+ASM1&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;SQL&amp;gt; alter system set asm_preferred_read_failure_groups=&#39;DATA.SITE2&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;,&#39;FLASH.SITE2&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;sid=&#39;+ASM2&#39;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Suporte para large allocation units (AUs);&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
O ASM agora suporta unidades de alocações de até 64MB. Unidades maiores podem ser vantajoso quando o ambiente é DataWarehouse onde há aplicações que utilizam leitura sequencial.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Rolling upgrade e patching*;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Na versão 11g do ASM é possível realizar atualizações e correções com o ambiente no ar. Este recurso de chama Rolling Migration e requer que o Clusterware esteja na versão mais nova no ambiente.&lt;br /&gt;
Antes de começar é preciso colocar as instâncias no modo Rolling Migration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;SQL&amp;gt; ALTER SYSTEM START ROLLING MIGRATION TO 11.2.0.2;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Este comando não executa exatamente a migração, ele prepara as instâncias ASM no cluster para a migração. Este estado não persiste se as instâncias falharem durante o processo.&lt;br /&gt;
&lt;br /&gt;
Para verificar o estado do ambiente ASM (Normal ou Rolling Migration) execute a consulta:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 11px;&quot;&gt;SQL&amp;gt; SELECT SYS_CONTEXT(&#39;sys_cluster_properties&#39;, &#39;cluster_state&#39;) FROM&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;DUAL;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2 style=&quot;font-size: 18px; margin-bottom: 0pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;Quando estiver em &quot;Rolling Migration&quot; cada instância ASM pode ser desligada e atualizada. Quando o software for atualizado em uma instância, ela pode ser reiniciada e os diskgroups montados. Desta forma uma instância ficará numa versão mais nova que as demais no ambiente, isso só é permitido no estado &quot;Rolling Migration&quot;.&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;Resumindo, os passos para execução do processo de Rolling Migration são:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;1. Tenha certeza que o software para a nova versão está instalado em todos os nós.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;2. Tenha certeza que o Clusterware está na versão mais alta.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;3. Tenha certeza que as instâncias ASM estão na mesma versão Oracle.&lt;/div&gt;&lt;div&gt;4. Tenha certeza de que não há operações de rebalanceamento em execução (v$asm_operation). Se tiver, aguarde a conclusão.&lt;/div&gt;&lt;div&gt;5. Coloque o cluster ASM em &quot;Rolling Migration&quot;.&lt;/div&gt;&lt;div&gt;6. Desligue uma instância ASM.&lt;/div&gt;&lt;div&gt;7. Inicie uma instância ASM do ORACLE_HOME com o novo software.&lt;/div&gt;&lt;div&gt;8. Repita os passos 4 e 5 até que todas as instâncias ASM sejam atualizadas.&lt;/div&gt;&lt;div&gt;9. Quanto o software estiver atualizado em todas as instâncias, desabilite o modo Rolling Migration:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;border-bottom-color: white; border-bottom-style: solid; border-bottom-width: 1pt; border-left-color: white; border-left-style: solid; border-left-width: 1pt; border-right-color: white; border-right-style: solid; border-right-width: 1pt; border-top-color: white; border-top-style: solid; border-top-width: 1pt; padding-bottom: 1pt; padding-left: 1pt; padding-right: 1pt; padding-top: 1pt;&quot;&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm; text-indent: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 11px;&quot;&gt;SQL&amp;gt; ALTER SYSTEM STOP ROLLING MIGRATION;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;* Trecho retirado do livro (traduzido e com adaptações):&lt;/div&gt;&lt;div&gt;LONG, R.;&amp;nbsp;VALLATH, M.;&amp;nbsp;VENGURLEKAR, N.&amp;nbsp;Oracle Automatic Storage Management. &lt;i&gt;Oracle Press&lt;/i&gt;, &amp;nbsp;New York, p.60-61, 2007&lt;/div&gt;&lt;h2 style=&quot;margin-bottom: 0pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium; font-weight: normal;&quot;&gt;Até mais!&lt;/span&gt;&lt;/h2&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/6346780139378497151/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/asm-new-features-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6346780139378497151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/6346780139378497151'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/asm-new-features-11g.html' title='ASM New Features 11g'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-4271401768015393744</id><published>2010-12-27T15:12:00.000-03:00</published><updated>2010-12-27T15:12:56.183-03:00</updated><title type='text'>Erro ORA-01455 ao realizar backup no RMAN - Oracle 11gR2</title><content type='html'>Pessoal, me deparei com esse probleminha legal hoje. Quando tentava-se realizar backup do banco de dados, ou seja, um simples BACKUP DATABASE pelo RMAN o erro ORA-01455 era reportado:&lt;br /&gt;
&lt;br /&gt;
O Problema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;  &lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN&amp;gt; backup database;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;Starting backup at 27-DEC-10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;allocated channel: ORA_DISK_1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;channel ORA_DISK_1: SID=137 device type=DISK&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN-00571: ===========================================================&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN-00571: ===========================================================&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN-03002: failure of backup command at 12/27/2010 13:11:25&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-bottom: .0001pt; margin: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm; text-indent: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;ORA-01455: converting column overflows integer datatype&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;&lt;br /&gt;
&lt;br /&gt;
Uma pesquisa no Oracle MySupport (a.k.a. Metalink) informava que o problema poderia ser relacionado a um campo numérico do catálogo do RMAN muito pequeno (2) e que deveria ser aumentado (5) e executar um UPGRADE CATALOG, mas no meu caso não havia catálogo... E agora?&lt;br /&gt;
&lt;br /&gt;
DEBUG nele:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: solid black 1.0pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;  &lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;$ rman target / debug log=saida.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN&amp;gt; BACKUP DATABASE;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;RMAN&amp;gt; EXIT;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Olhando o log do debug com calma (é preciso) encontrei o seguinte (meio a uma carrada de informações):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: solid black 1.0pt; margin-left: 0cm; margin-right: 19.85pt; mso-border-alt: solid black .5pt; mso-element: para-border-div; padding: 1.0pt 1.0pt 1.0pt 1.0pt;&quot;&gt;  &lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;DBGSQL: &amp;nbsp; TARGET&amp;gt; select trunc(sysdate) - trunc(:bscompletion) into :days from sys.dual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;DBGSQL: &amp;nbsp; &amp;nbsp; sqlcode = 1455&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;DBGSQL: &amp;nbsp; &amp;nbsp;B :bscompletion = &quot;25-JAN-11&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;NoSpacing&quot; style=&quot;border: none; margin-right: 0cm; mso-border-alt: solid black .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt; padding: 0cm;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;&quot;&gt;DBGSQL: &amp;nbsp; &amp;nbsp; error: ORA-01455: converting column overflows integer datatype (krmkosqlerr)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Com isso percebi com o LIST BACKUP que alguns backups foram feitos com a data errada do servidor, ou seja, o servidor estava em 2011, já tinha passado o reveillon com um backup SUPER atualizado ;). O erro não tinha muito a ver com o que estava acontecendo pelo visto, mas o velho DEBUG é bastante útil!&lt;br /&gt;
Bom, acabou que o RMAN não fazia mais backups.&lt;br /&gt;
&lt;br /&gt;
A Solução:&lt;br /&gt;
&lt;br /&gt;
O backup foi movido para outro local apenas para arquivar e executado um CROSSCHECK BACKUP para que essa &quot;sujeira&quot; fosse retirada. Deu certo, o backup rolou tranquilamente, porém no presente.&lt;br /&gt;
&lt;br /&gt;
É isso aí, até a próxima!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/4271401768015393744/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/erro-ora-01455-ao-realizar-backup-no.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4271401768015393744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/4271401768015393744'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/erro-ora-01455-ao-realizar-backup-no.html' title='Erro ORA-01455 ao realizar backup no RMAN - Oracle 11gR2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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-8181968733178829558.post-1145246983030473820</id><published>2010-12-26T18:13:00.001-03:00</published><updated>2010-12-26T18:33:15.301-03:00</updated><title type='text'>O começo...</title><content type='html'>Meus caros visitantes, amigos e colegas. Estou começando no mundo dos blogueiros e prometo ser fiel ao que prometi neste blog. Irei compartilhar meus conhecimentos, experiências, CAUSOS, etc. Fiquem à vontade para visitar e comentar. Assim que eu preparar bons conteúdos irei postá-los aqui. Fiquem sincronizados, sigam o blog e adicionem o FEED para ficar por dentro! Até mais!</content><link rel='replies' type='application/atom+xml' href='http://dbavalentim.blogspot.com/feeds/1145246983030473820/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/o-comeco.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/1145246983030473820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181968733178829558/posts/default/1145246983030473820'/><link rel='alternate' type='text/html' href='http://dbavalentim.blogspot.com/2010/12/o-comeco.html' title='O começo...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16732469301825968170</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>