<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Blog do Rodrigo Almeida</title>
	<atom:link href="http://profissionaloracle.com.br/blogs/rodrigoalmeida/feed/" rel="self" type="application/rss+xml" />
	<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida</link>
	<description>GPO Blogs ! O canal de comunicação do profissional Oracle !</description>
	<pubDate>Thu, 25 Dec 2008 23:58:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Feliz Natal e próspero ano novo !!!</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/25/feliz-natal-e-prospero-ano-novo/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/25/feliz-natal-e-prospero-ano-novo/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 23:58:40 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Outros]]></category>

		<category><![CDATA[amigos]]></category>

		<category><![CDATA[ano novo]]></category>

		<category><![CDATA[enpo]]></category>

		<category><![CDATA[férias]]></category>

		<category><![CDATA[gpo]]></category>

		<category><![CDATA[imasters]]></category>

		<category><![CDATA[leitores]]></category>

		<category><![CDATA[natal]]></category>

		<category><![CDATA[papai noel]]></category>

		<category><![CDATA[tws]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=36</guid>
		<description><![CDATA[Mensagem de Natal e ano novo para 2.009]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img class="aligncenter" src="http://www.rodrigoalmeida.net/material/RA/logo_natal_2008.gif" alt="Feliz Natal e próspero ano novo!" width="400" height="250" /></p>
<p>Amigos,</p>
<p>Desejo a todos um ótimo natal, curta muito as férias, festas e tenha uma ótima passagem para 2.009!</p>
<p>Queria agradecer a todos, iMasters, GPO, ENPO, TWS, Affinia, Pellegrino, SQL Magazine e todos os profissionais e leitores, um abraço especial para a equipe da iMasters pelo presente e carta de natal. Recebi e gostei muito. Muito obrigado.</p>
<p>PS: Estou de férias e só volto dia 12 de Janeiro/2009.</p>
<p>CURTAM BASTANTE! <strong>SE BEBER, NÃO DIRIJA</strong>!!!</p>
<p>Feliz Natal e próspero ano novo a todos.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/25/feliz-natal-e-prospero-ano-novo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Palestra em vídeo sobre RMAN disponível.</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/20/palestra-em-video-sobre-rman-disponivel/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/20/palestra-em-video-sobre-rman-disponivel/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 16:02:27 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Outros]]></category>

		<category><![CDATA[archivelog]]></category>

		<category><![CDATA[arquitetura]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[catálogo]]></category>

		<category><![CDATA[Conceitos]]></category>

		<category><![CDATA[dbms_backup_recover]]></category>

		<category><![CDATA[dbms_rcvcat]]></category>

		<category><![CDATA[dbms_rcvman]]></category>

		<category><![CDATA[enpo]]></category>

		<category><![CDATA[exemplos]]></category>

		<category><![CDATA[fiap]]></category>

		<category><![CDATA[gpo]]></category>

		<category><![CDATA[noarchivelog]]></category>

		<category><![CDATA[outra máquina]]></category>

		<category><![CDATA[palestra]]></category>

		<category><![CDATA[recover]]></category>

		<category><![CDATA[recovery manager]]></category>

		<category><![CDATA[recuperação]]></category>

		<category><![CDATA[restore]]></category>

		<category><![CDATA[RMAN]]></category>

		<category><![CDATA[rodrigo almeida]]></category>

		<category><![CDATA[Scripts]]></category>

		<category><![CDATA[visão geral]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=35</guid>
		<description><![CDATA[Vídeo da palestra sobre RMAN para a V ENPO.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Os organizadores da ENPO já disponibilizaram as palestras em vídeo que fizeram parte dessa última edição. Abaixo estou postando a minha palestra.</p>
<p style="text-align: center">
<p style="text-align: center"><a href="http://video.google.com/videoplay?docid=8521428875400605543">http://video.google.com/videoplay?docid=8521428875400605543</a></p>
<p>Para mais informações</p>
<p style="text-align: left">ENPO - <a href="http://www.enpo-br.org">www.enpo-br.org</a></p>
<p style="text-align: left">GPO - <a href="http://www.profissionaloracle.com.br">www.profissionaloracle.com.br</a></p>
<p style="text-align: left">No site terá mais palestrars disponível para download e suas respectivas apresentações.</p>
<p style="text-align: left">Abraços,</p>
<p style="text-align: left"><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/20/palestra-em-video-sobre-rman-disponivel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Apresentação de RMAN disponível</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/07/apresentacao-de-rman-disponivel/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/07/apresentacao-de-rman-disponivel/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 02:44:18 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Outros]]></category>

		<category><![CDATA[apresentação]]></category>

		<category><![CDATA[archivelog]]></category>

		<category><![CDATA[arquitetura]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[banco de dados]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[detalhes]]></category>

		<category><![CDATA[download]]></category>

		<category><![CDATA[enpo]]></category>

		<category><![CDATA[gpo]]></category>

		<category><![CDATA[impacto]]></category>

		<category><![CDATA[limitações]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[noarchivelog]]></category>

		<category><![CDATA[novo caminho]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[palestra]]></category>

		<category><![CDATA[recover]]></category>

		<category><![CDATA[restore]]></category>

		<category><![CDATA[RMAN]]></category>

		<category><![CDATA[rodrigo almeida]]></category>

		<category><![CDATA[tablespace point in time recovery]]></category>

		<category><![CDATA[tipos de backup]]></category>

		<category><![CDATA[tspitr]]></category>

		<category><![CDATA[visão geral]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=34</guid>
		<description><![CDATA[Link para download da apresentação sobre RMAN que foi utilizado na V ENPO.]]></description>
			<content:encoded><![CDATA[<p>Olá!</p>
<p>A GPO já colocou a disposição em seu website a apresentação sobre a ferramenta RMAN que foi utilizada para a palestra na V ENPO para consulta dos profissionais. Acho legal realizarem o download do power point, pois a apresentação traz mais detalhes sobre a ferramenta e técnicas de backup e recover.</p>
<p>Para fazer o download, basta <a title="Héroi ou Vilão?" href="http://www.profissionaloracle.com.br/modules.php?name=Downloads&amp;op=getit&amp;lid=2306" target="_blank">clicar aqui</a>. E caso tenha dúvidas ou sugestões, fique a vontade para entrar em contato.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/07/apresentacao-de-rman-disponivel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>V ENPO - Um belo encontro.</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/06/v-enpo-um-belo-encontro/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/06/v-enpo-um-belo-encontro/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 02:22:42 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Outros]]></category>

		<category><![CDATA[affinia]]></category>

		<category><![CDATA[apresentação]]></category>

		<category><![CDATA[backup recover]]></category>

		<category><![CDATA[banco de dados]]></category>

		<category><![CDATA[bi]]></category>

		<category><![CDATA[Conceitos]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[dw]]></category>

		<category><![CDATA[enpo]]></category>

		<category><![CDATA[gpo]]></category>

		<category><![CDATA[gpti]]></category>

		<category><![CDATA[ibta]]></category>

		<category><![CDATA[imasters]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[palestrante]]></category>

		<category><![CDATA[rac]]></category>

		<category><![CDATA[restore]]></category>

		<category><![CDATA[RMAN]]></category>

		<category><![CDATA[rodrigo almeida]]></category>

		<category><![CDATA[slide]]></category>

		<category><![CDATA[spatial]]></category>

		<category><![CDATA[sqlplus]]></category>

		<category><![CDATA[standby]]></category>

		<category><![CDATA[tws]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=33</guid>
		<description><![CDATA[Como foi o encontro na V ENPO - Encontro de Profissionais Oracle.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Demorei um pouco para postar como foi o Encontro Nacional de Profissionais Oracle que ocorreu no sábado passado (29/11/2008)  na FIAP, pois estava numa correria danada e precisando um pouco de descanso.</p>
<p>Bom, como todas as edições da ENPO, tivemos ótimas palestras, oportunidade de conhecer diversos profissionais oracle, aumentando a rede social e agregar conhecimentos.</p>
<p>Nessa edição, tive o prazer para poder palestrar sobre um tema bem discutido, que é backup e recover com RMAN. Bem, a apresentação tinha bastante slides e o assunto é extenso, tive 1 hora para contar os conceitos básicos da arquitetura da ferramenta rman e suas principais funcionalidades, foi um pouco corrido, mas acho que deu para o público conhecer e entender um pouco sobre essa maravilhosa ferramenta. Em breve a apresentação estará disponível no site da ENPO e GPO.</p>
<p>Tivemos outras palestras bem interessantes também, como do nosso parceiro de blog e comunidade Oracle Ricardo Portilho que discutiu sobre o Load Balance em RAC, que teve uma apresentação bastante divertida <em>(principalmente a imagem do balanceamento de cerveja entre a mulher e o homem)</em>, tive o prazer de conhecer pessoalmente, e é um cara super gente fina! Vale a recomendação de conhecer o blog dele também aqui na GPO com contéudo bem legal.</p>
<p>Outras palestras como o Chiappa, que discutiu um pouco sobre a utilização e o modo de utilizar a ferramenta SQL*Plus, o nosso velho e bom amigo de todos os dias, tivemos também Roberto Serson, ou show man Oracle, falando um pouco sobre Expressões Regulares, que se existe um desenvolvedor que gosta da trabalhar com a metodologia POG, ao conhecer as expressões regulares, ninguem mais irá dar manutenção em seus códigos! =D</p>
<p>Para o público, tivemos ainda uma boa visão geral de como trabalha o Oracle Spatial, que teve como palestrante o profissional Marcos Couto, de como o BI trabalha no geral como o Francisco Piedade, que detalhou e mostrou experiência no assunto.</p>
<p>E como todo palestrante, abaixo segue a imagem do meu novo trófeu recebido pelos organizadores da ENPO, que será guardado com muito carinho.</p>
<p style="text-align: center"><img src="http://farm4.static.flickr.com/3184/3087857230_7233ab6cdd.jpg?v=0" alt="V ENPO" width="500" height="375" /></p>
<p>Gostei da participação da galera no geral, e desculpas por não ter dado muita atenção ao pessoal que veio tirar dúvidas durante os coffee breaks ou me esperado para almoçar, pois estava muito corrido o dia e muita gente comigo também, então estava díficil administrar tudo, quem quizer ainda discutir alguma coisa, fique a vontade de mandar e-mails para mim.</p>
<p>E agradeço aos organizadores (Fernanda, Morgado e Willians) pela oportunidade e aos amigos, tanto da iMasters, Affinia, Pellegrino, GPTI, IBTA e aos leitores em geral que compareceram ao evento.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/12/06/v-enpo-um-belo-encontro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ENPO V - Está chegando&#8230;</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/24/enpo-v-esta-chegando/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/24/enpo-v-esta-chegando/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 19:51:21 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Outros]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[bi]]></category>

		<category><![CDATA[chiappa]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[enpo]]></category>

		<category><![CDATA[enpo v]]></category>

		<category><![CDATA[expressão regular]]></category>

		<category><![CDATA[faculdade]]></category>

		<category><![CDATA[features]]></category>

		<category><![CDATA[fiap]]></category>

		<category><![CDATA[gpo]]></category>

		<category><![CDATA[oracle spatial]]></category>

		<category><![CDATA[paulo shorr]]></category>

		<category><![CDATA[rac]]></category>

		<category><![CDATA[RMAN]]></category>

		<category><![CDATA[rodrigo almeida]]></category>

		<category><![CDATA[serson]]></category>

		<category><![CDATA[sql]]></category>

		<category><![CDATA[sqlplus]]></category>

		<category><![CDATA[tspitr]]></category>

		<category><![CDATA[tws]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=32</guid>
		<description><![CDATA[Breve descrição sobre a V Edição da ENPO.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Em Novembro terá a 5° Edição da ENPO (Encotro Nacional de Profissionais Oracle) em São Paulo, que irá ocorrer na faculdade FIAP (www.fiap.com.br), é sempre importante ressaltar que nesses eventos podemos criar e melhorar nosso network, assim como agregar mais informações sobre os produtos e mercado Oracle.</p>
<p>O evento irá contar com palestras e stands de parceiros voltados ao mercado Oracle. O GPO também estará para marcar presença e compartilhar conhecimentos Oracle para seus convidados.</p>
<p>O cronograma das palestras esse ano está abordando assuntos bem interessantes, que variam desde <strong>RAC</strong> (Real Application Cluster) , <strong>RMAN</strong> (Recovery Manager), <strong>BI</strong> (Bussiness Inteligence), <strong>SQL*PLUS</strong>,<strong> Oracle Spatial</strong> e a utilização de <strong>Expressões Regulares</strong> no 10g e 11g.</p>
<p>Esse ano vocês irão ter que me aturar um pouco, irei palestrar sobre RMAN - Vilão ou Héroi? Vamos falar sobre as funcionalidades, entender a arquitetura, como funciona os backups para bancos em ARCHIVELOG e NOARCHIVELOG, tipos de backup incrementais e recover, catálogo de recuperação, dicas do dia-a-dia, as técnicas que podemos aplicar como o TSPITR (Tablespace Point-In-Time Recover), Migration Platform, Duplicate DP e Transportable Tablespace.</p>
<p>Espero que o público da ENPO goste desse assunto, vou procurar abordar a maioria das funcionalidades do RMAN. E também teremos outros 5 palestras que realmente são sensacionais, como, Chiappa falando sobre SQL*PLUS, como sempre digo:</p>
<blockquote>
<p style="text-align: center"><em>&#8220;DBA que é DBA, usa SQL*PLUS&#8221;</em></p>
</blockquote>
<p>Irá nos fornecer informações de como dominar essa ferramenta, teremos também palestra sobre RAC comPaulo Shorr, que na ENPO do início do ano fez uma ótima apresentação sobre RAC com caso de estudo, teremos o Roberto Serson discutindo sobre a utilização de Expressões regulares no 10g e 11g, assim como outras palestras sobre Oracle Spatial, que é um produto fantástico e BI que é uma área que está crescendo cada vez mais, que está com um ótimo mercado.</p>
<p>Então, fica o convite para todos e se encontramos na 5º Edição da ENPO.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/24/enpo-v-esta-chegando/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RMAN - Encontrando o DBID do banco de dados</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/23/rman-encontrando-o-dbid-do-banco-de-dados/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/23/rman-encontrando-o-dbid-do-banco-de-dados/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 19:34:47 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[RMAN]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[8i]]></category>

		<category><![CDATA[9i]]></category>

		<category><![CDATA[arquivo de controle]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[banco de dados]]></category>

		<category><![CDATA[control file]]></category>

		<category><![CDATA[create database]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[dbid]]></category>

		<category><![CDATA[dicionário de dados]]></category>

		<category><![CDATA[dictionary data]]></category>

		<category><![CDATA[list incarnation]]></category>

		<category><![CDATA[recover]]></category>

		<category><![CDATA[recovery manager]]></category>

		<category><![CDATA[session]]></category>

		<category><![CDATA[v$database]]></category>

		<category><![CDATA[xe]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=31</guid>
		<description><![CDATA[Como encontrar o DBID para recuperações utilizando catálogo do RMAN.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Uma dos maiores problemas de realizar uma recuperação completa ou uma restauração de um banco de dados para um novo servidor, é o problema de mencionar o DBID (Database Identifier - Identificação do banco de dados) para o catálogo do RMAN.</p>
<p>Pois, para conseguir uma restauração da base, é necessário mencionar o DBID ao catálogo de recuperação para conseguir associar o banco de dados no catálogo e posteriormente restaurar e recuperar seus backups sets.</p>
<p>Agora, vamos mencionar quais os meios que podemos encontrar o DBID de um banco de dados.</p>
<p><strong>1. Dicionário de dados</strong></p>
<p>Podemos realizar um simples select na view v$database para conseguir a informação, veja.</p>
<pre>SQL&gt; select dbid from v$database;</pre>
<pre>      DBID
----------
4263396950</pre>
<pre>1 linha selecionada.</pre>
<p><strong>2. RMAN - Inicío de sessão</strong></p>
<p>O DBID também é informado quando você conecta ao RMAN, lembrando, que o DBID será informado se o banco de dados estiver em MOUNT ou OPEN, se apenas com NOMOUNT, não será informado, pois não irá ler o arquivo de controle, ou control file. Exemplo.</p>
<pre>[oracle@PELSPOWMS2 ~]$ rman</pre>
<pre>Recovery Manager: Release 10.2.0.1.0 - Production on Thu Oct 23 17:15:23 2008</pre>
<pre>Copyright (c) 1982, 2005, Oracle.  All rights reserved.</pre>
<pre>RMAN&gt; connect target <a href="mailto:'rman/backup#77@wmssp.world'">&#8216;rman/##########@wmssp.world&#8217;</a>;</pre>
<pre>connected to target database: WMSSP (DBID=4263396950)</pre>
<pre>RMAN&gt;</pre>
<p><strong>3. RMAN - Usando o comando List incarnation</strong></p>
<p>Outro modo de se conseguir o DBID do banco de dados, é após logar-se no banco de dados target e estar conectado ao catálogo de recuperação, utilizar o comando LIST INCARNATION, exemplo:</p>
<pre>RMAN&gt; list incarnation;
List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
8451    8458    WMSSP    4263396950       PARENT  1          30/06/2005 19:09:40
8451    8452    WMSSP    4263396950       CURRENT 446075     27/02/2008 09:03:20</pre>
<pre>RMAN&gt;</pre>
<p>Uma dica muito importante é sempre manter uma planilha com todos os bancos de dados, senhas e seus respectivos DBID armazenados após as criação do banco de dados para não correr risco de não saber o DBID do banco de dados criado.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/23/rman-encontrando-o-dbid-do-banco-de-dados/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que é um Control file ?</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/15/o-que-e-um-control-file/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/15/o-que-e-um-control-file/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 15:19:13 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Conceitos]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[8i]]></category>

		<category><![CDATA[9i]]></category>

		<category><![CDATA[alter database]]></category>

		<category><![CDATA[archives]]></category>

		<category><![CDATA[arquivo de controle]]></category>

		<category><![CDATA[backup piece]]></category>

		<category><![CDATA[backup set]]></category>

		<category><![CDATA[backupset]]></category>

		<category><![CDATA[checkpoint]]></category>

		<category><![CDATA[conceito]]></category>

		<category><![CDATA[concepts]]></category>

		<category><![CDATA[contéudo]]></category>

		<category><![CDATA[control file]]></category>

		<category><![CDATA[controlfile]]></category>

		<category><![CDATA[datafiles]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[redo log]]></category>

		<category><![CDATA[referência]]></category>

		<category><![CDATA[scn]]></category>

		<category><![CDATA[visão geral]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=30</guid>
		<description><![CDATA[Conceitos sobre arquivo de controle ou control file.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Alguns profissionais iniciantes em Oracle, ainda tem muitas dúvidas sobre diversos conceitos de arquitetura do banco de dados Oracle, por isso, resolvi discutir sobre um ponto bem importante, O que é um Control file?</p>
<p><strong>Tradução</strong></p>
<p>Control file = Arquivo de Controle, tradução em português para a palavra que é muito utilizado na literatura Oracle brasileira.</p>
<p><strong>Visão Geral</strong></p>
<div><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman">O arquivo de controle é um arquivo binário necessário para iniciar e operar com sucesso o banco de dados. O arquivo de controle é atualizado constantemente pelo Oracle durante sua utilização, onde fica disponível para escrita, apenas quando o banco de dados está aberto, ou seja, OPEN. Caso o arquivo de controle não esteja acessível por alguma razão, o banco de dados não irá funcionar corretamente, podendo trazer problemas ao iniciar a instância. Todo arquivo de controle é sempre associado somente com um único banco de dados, não pode existir um arquivo de controle que seja utilizado por mais de uma instância, até em ambientes de<em> Real Application Cluster </em>(RAC), existe um arquivo de controle para cada instância.</span></span></div>
<p><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman"><strong>Contéudo</strong></p>
<p>Um arquivo de controle possui diversas informações de um banco de dados que é requerida pela instância. Durante o processo de startup ou uma operação normal, somente o Oracle Server pode modificar as informações no arquivo de controle, deste modo, nenhum DBA ou usuário pode modificar seu contéudo.</p>
<p>As informações que o arquivo de controle possui são:</p>
<ul>
<li>Nome do banco de dados<span style="font-size: xx-small;font-family: ZapfDingbats"><span style="font-size: xx-small;font-family: ZapfDingbats"> </span></span></li>
<li><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman">Data de criação do banco de dados</span></span></li>
<li>Os nomes e localizações de cada datafile e redo log associados ao banco de dados</li>
<li>Informações sobre as tablespaces</li>
<li>Possíveis datafiles com status offline</li>
<li>O histórico de logs</li>
<li>Sobre os archives gerados</li>
<li>Backupsets e backup pieces, gerados pelo RMAN</li>
<li>Backups de datafiles e informações de redo log</li>
<li>Cópia de datafiles</li>
<li>O valor atual do número da sequência do log</li>
<li>Informações de checkpoint</li>
</ul>
<p align="left"><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman">Para cada datafile ou redo log que é adicionado, renomeado, modificado ou excluído do banco de dados, o arquivo de controle é atualizado pelo Oracle Server para garantir a modificação da estrutura física da base. Essas modificações pode ser:</span></span></p>
<ul>
<li>O Oracle pode identificar os datafiles e redo logs que foram abertos durante o processo de startup</li>
<li>Identificar os arquivos que são necessários ou disponíveis em caso de recuperação do banco de dados</li>
</ul>
<p align="left"><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman">Portanto, para cada modificação na estrutura física do banco de dados, podendo ser feito atráves do comando <em>ALTER DATABASE</em>, é altamente recomendado que seja feito um backup do seu arquivo de controle para evitar possíveis problemas no próximo processo de startup do banco de dados.</span></span></p>
<div><span style="font-size: x-small;font-family: Palatino-Roman"></span></div>
<p><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman"></p>
<p align="left">Como o arquivo de controle armazena informações sobre os checkpoints, a cada três segundos, o processo de plano de fundo (CKPT) registra as posições do redo log, essas posições serão utilizadas posteriormente  durante um processo de recuperação do banco de dados, onde o Oracle irá dizer se todas as entradas dos grupos de redo log serão necessárias para realizar tal recuperação.</p>
<p align="left"><strong>Referência</strong></p>
<p align="left">Oracle Concepts 10g</p>
<p align="left">Abraços,</p>
<p align="left">
<div></div>
<div><span style="font-size: x-small;font-family: Palatino-Roman"></span></div>
<p><span style="font-size: x-small;font-family: Palatino-Roman"><span style="font-size: x-small;font-family: Palatino-Roman"></p>
<p align="left"><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
<p align="left">
<div></div>
<p><span style="font-size: x-small;font-family: Palatino-Roman"></p>
<p align="left"> </p>
<p align="left"> </p>
<p> </p>
<p></span></p>
<p align="left"> </p>
<p align="left"> </p>
<p> </p>
<p></span></span></p>
<p></span></span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/15/o-que-e-um-control-file/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Entendendo a Marca d&#8217;água e fragmentação de tabelas</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/07/entendendo-a-marca-dagua-e-fragmentacao-de-tabelas/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/07/entendendo-a-marca-dagua-e-fragmentacao-de-tabelas/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 19:04:34 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[DBA]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[8i]]></category>

		<category><![CDATA[9i]]></category>

		<category><![CDATA[alter table]]></category>

		<category><![CDATA[arquitetura]]></category>

		<category><![CDATA[blocks]]></category>

		<category><![CDATA[cpu]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[datafile]]></category>

		<category><![CDATA[dbms_stats]]></category>

		<category><![CDATA[delete]]></category>

		<category><![CDATA[empty_blocks]]></category>

		<category><![CDATA[espaço]]></category>

		<category><![CDATA[extent]]></category>

		<category><![CDATA[fragmentação]]></category>

		<category><![CDATA[full table scan]]></category>

		<category><![CDATA[high water mark]]></category>

		<category><![CDATA[hwm]]></category>

		<category><![CDATA[insert]]></category>

		<category><![CDATA[move]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[rebuild]]></category>

		<category><![CDATA[segment]]></category>

		<category><![CDATA[segmento]]></category>

		<category><![CDATA[tablespace]]></category>

		<category><![CDATA[tamanho]]></category>

		<category><![CDATA[truncate]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=29</guid>
		<description><![CDATA[Entendendo a marca d'água e a fragmentação em tabelas.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Uma dos principais conceitos sobre arquitetura física do Oracle, é a marca D&#8217;água, uma tradução de <strong>HWM  - <em>High Water Mark</em></strong>, ele que indica o limite que uma tabela já ocupou de espaço físico no seu banco de dados. Mas, vamos um pouco mais a fundo.</p>
<p>O que é uma Marca D&#8217;água (HWM - High Water Mark)?</p>
<p>A marca d&#8217;água é o limite do número de blocos que uma tabela pode estar utilizando, resumindo para um conceito mais simples, toda vez que uma tabela recebe um INSERT (novos registros), essa marca na tabela aumenta dizendo ao Oracle Server a quantidade de blocos que a tabela está utilizando, automaticamente, a quantidade de blocos, multiplicado, pelo tamanho do db_block_size do banco de dados, diz o valor físico real que está sendo utilizado.</p>
<p>Mas, esse valor real não é o valor que o Oracle irá alocar, pois irá depender de alguns outros pontos, como:</p>
<ul>
<li>Se a tabela está sendo gerenciada por sí própria ou pela tablespace.</li>
<li>Irá depender dos tamanhos dos extents, exemplo, INITIAL_EXTENT e NEXT_EXTENT.</li>
<li>Também, irá depender do tipo de gerenciamento, se é SEGMENT MANAGEMENT AUTO ou UNIFORM.</li>
<li>E a quantidade de blocos que um EXTENT pode suportar.</li>
</ul>
<p>Vamos ver como funciona a marca d&#8217;água na prática, um alguns exemplos práticos.</p>
<p>Vou criar uma tabela simples, chamada TSTDBA.</p>
<pre>SQL&gt; create table TESTE (a varchar2(100) not null, b number(7) not null);</pre>
<pre>Tabela criada.</pre>
<p>Agora, vamos analisar como está a estrutura para o Oracle, pois a tabela não possui nenhum valor e nenhuma estatística coletada.</p>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA</pre>
<p>Até o momento, tudo sem surpresas para nós.</p>
<p>Então, vamos popular essa tabela com alguns registros, veja o exemplo.</p>
<pre>SQL&gt; l</pre>
<pre>  1  declare
  2     contador integer;
  3  begin
  4     contador := 1;
  5     while contador &lt;= 1000 loop
  6             insert into TSTDBA values ('TESTE',contador);
  7             contador := contador + 1;
  8     end loop;
  9     commit;
 10* end;
SQL&gt; /</pre>
<pre>Procedimento PL/SQL concluído com sucesso.</pre>
<pre>SQL&gt; exec dbms_stats.gather_table_stats (ownname=&gt;'RODRIGO',tabname=&gt;'TSTDBA',estimate_percent=&gt;null,method_opt=&gt;'FOR ALL COLUMNS SIZE AUTO',degree=&gt;6);</pre>
<pre>Procedimento PL/SQL concluído com sucesso.</pre>
<p>Verifiquem que fiz um pequeno bloco PL/SQL para inserir dados em minha tabela, cerca de 1.000 registros. Após isso, preciso dizer ao Oracle, como a tabela está, seu volume e outras coisas mais, então, fiz um analyze na tabela para atualizar as informações estruturais dela no dicionário Oracle, ao fazer o analyze com o DBMS_STATS, o resultado do SELECT acima, agora é esse.</p>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                                  5            0       1000 06-10-2008 19:42:08</pre>
<p>Veja, a nossa tabela está utilizando 5 blocos, o db_block_size do meu banco de dados é de 8KB, então, resumidamente, ele deveria estar utilizando cerca de 40KB, certo?</p>
<pre>SQL&gt; select 8192*5 from dual;</pre>
<pre>    8192*5
----------
     40960</pre>
<p>Mas, se consultar o seu tamanho na dba_segments temos:</p>
<pre>SQL&gt; select segment_name, sum(bytes)/1024 from dba_segments where segment_name = 'TSTDBA' group by segment_name;</pre>
<pre>SEGMENT_NAME                                                                      SUM(BYTES)/1024
--------------------------------------------------------------------------------- ---------------
TSTDBA                                                                                         64</pre>
<p>O resultado para o tamanho da tabela TSTDBA é 64KB, porque, o INITIAL_EXTENT da tabela é de 64KB, e como os 1.000 registros ocuparam apenas 40KB, um único extent consegui suportar.</p>
<pre>SQL&gt; select initial_extent/1024, next_extent from dba_tables where table_name = 'TSTDBA';</pre>
<pre>INITIAL_EXTENT/1024 NEXT_EXTENT
------------------- -----------
                 64</pre>
<p>Pois bem! Rodrigo, e o tal do HWM, até onde está entrando nisso?</p>
<p>Vamos começar a brincar agora, veja que após o analyze, minha tabela TSTDBA está utilizando 5 blocos de dados, certo? Teoricamente, se eu fizer um TRUNCATE TABLE, eu não vou mais utilizar nenhum bloco, e minha marca d&#8217;água deveria baixar, mas, acontece isso:</p>
<pre>SQL&gt; truncate table TSTDBA;</pre>
<pre>Tabela truncada.</pre>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                                  5            0       1000 06-10-2008 19:44:18</pre>
<p>A minha tabela continua com se estivesse com 5 blocos, o que isso pode nos prejudicar:</p>
<ul>
<li>Esse exemplo é bem simples, mas para tabelas com milhares de registros, poderá influenciar os FULL-TABLES SCANS.</li>
<li>Ao realizar um INSERT convencional, ou seja, sem o hint /* + APPEND */, ele irá procurar por bocos livres e irá consumir CPU e demorar um tempo para sua execução.</li>
<li>Se minha marca d&#8217;água estiver muito alta, ou seja, estiver armazenando um alto valor de blocos utilizados, e você sabe, que ele não está utilizando tudo isso, você terá uma alocação de EXTENTS desnecessários no banco de dados, e isso irá ocupar espaço desnecessários.</li>
</ul>
<p> Caso eu quisesse diminuir o tamanho do meu segmento de tabela, eu não iria conseguir, pois além da marca d&#8217;água é inferior aos meus 64KB, pois bem, tente realizar um insert agora de 2.000.000 de registros e vamos ver o que acontece.</p>
<pre> SQL&gt; declare
  2     contador integer;
  3  begin
  4     contador := 1;
  5     while contador &lt;= 2000000 loop
  6             insert into TSTDBA values ('TESTE',contador);
  7             contador := contador + 1;
  8     end loop;
  9     commit;
 10  end;
 11  /</pre>
<pre>Procedimento PL/SQL concluído com sucesso.</pre>
<pre>SQL&gt; exec dbms_stats.gather_table_stats (ownname=&gt;'RODRIGO',tabname=&gt;'TSTDBA',estimate_percent=&gt;null,method_opt=&gt;'FOR ALL COLUMNS SIZE AUTO',degree=&gt;6);</pre>
<pre>Procedimento PL/SQL concluído com sucesso.</pre>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                               4654            0    2000000 06-10-2008 22:37:24</pre>
<pre>SQL&gt; show parameters db_block_size</pre>
<pre>NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192
SQL&gt; select (8192*4654)/1024/1024 as "Tamanho" from dual;</pre>
<pre>   Tamanho
----------
 36,359375</pre>
<pre>SQL&gt; select segment_name, sum(bytes)/1024/1024 from dba_segments where segment_name = 'TSTDBA' group by segment_name;</pre>
<pre>SEGMENT_NAME                                                                      SUM(BYTES)/1024/1024
--------------------------------------------------------------------------------- --------------------
TSTDBA                                                                                              37</pre>
<p>Se quizer analisar melhor como ficou a distribuição, veja a dba_extents, abaixo vou mostrar apenas um pequeno resumo da quantidade de extents alocados e seus respectivo tamanho.</p>
<pre>SQL&gt; select segment_name, count(extent_id), sum(bytes)/1024/1024
  2  from dba_extents
  3  where segment_name = 'TSTDBA'
  4  group by segment_name;</pre>
<pre>SEGMENT_NAME         COUNT(EXTENT_ID) SUM(BYTES)/1024/1024
-------------------- ---------------- --------------------
TSTDBA                             52                   37</pre>
<p>Bom, vimos que agora temos um valor legal de extents alocados, e mesmo após o TRUNCATE continuo com uma alocação de extents, que totaliza os 37MB da tabela, então, minha marca d&#8217;água está posicionado no 51° extent, que seria o limite do numeros de blocos alcançados.</p>
<p>Conseguimos entender como funciona a marca d&#8217;água, o que isso pode nos causar?</p>
<p>A chamada <strong>fragmentação de tabela</strong>, além da marca d&#8217;água elevar o número de extents no dicionário, prejudicando muitas vezes os planos de execução e os table full scans, vamos ter também perca de espaço físico para a tablespace, espaço que não poderam ser alocados por outro segmento. Vamos a uma demostração prática de como funciona a fragmentação.</p>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                               4654            0    2000000 06-10-2008 22:37:24</pre>
<pre>SQL&gt; select segment_name, count(extent_id), sum(bytes)/1024/1024
  2  from dba_extents
  3  where segment_name = 'TSTDBA'
  4  group by segment_name;</pre>
<pre>SEGMENT_NAME         COUNT(EXTENT_ID) SUM(BYTES)/1024/1024
-------------------- ---------------- --------------------
TSTDBA                             52                   37</pre>
<p>A minha tabela TSTDBA continua com seus 2.000.000 de registros, após o analyze acima, vimos que está a atual estrutura da tabela, e se realizarmos diversos DELETES em grandes quantidades, o que poderemos ter?</p>
<pre>SQL&gt; delete from TSTDBA where b between 10000 and 20000;</pre>
<pre>10001 linhas deletadas.</pre>
<pre>SQL&gt; delete from TSTDBA where b between 50000 and 200000;</pre>
<pre>150001 linhas deletadas.</pre>
<pre>SQL&gt; delete from TSTDBA where b between 400000 and 700000;</pre>
<pre>300001 linhas deletadas.</pre>
<pre>SQL&gt; delete from TSTDBA where b between 1000000 and 1300000;</pre>
<pre>300001 linhas deletadas.</pre>
<pre>SQL&gt; commit;</pre>
<pre>Commit concluído.</pre>
<pre>SQL&gt; select segment_name, count(extent_id), sum(bytes)/1024/1024
  2  from dba_extents
  3  where segment_name = 'TSTDBA'
  4  group by segment_name;</pre>
<pre>SEGMENT_NAME         COUNT(EXTENT_ID) SUM(BYTES)/1024/1024
-------------------- ---------------- --------------------
TSTDBA                             52                   37</pre>
<p>Vamos passar um analyze para validar toda a estrutura da tabela.</p>
<pre>SQL&gt; exec dbms_stats.gather_table_stats (ownname=&gt;'RODRIGO',tabname=&gt;'TSTDBA',estimate_percent=&gt;null,method_opt=&gt;'FOR ALL COLUMNS SIZE AUTO',degree=&gt;6);</pre>
<pre>Procedimento PL/SQL concluído com sucesso.</pre>
<p>Veja o resultado para os novos valores.</p>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                               4654            0    1239996 06-10-2008 23:09:01</pre>
<p>A quantidade de extents não alterou depois de apagarmos diversos registros, isso causa a conhecida fragmentação do segmento, mesmo que após calcularmos a quantidade de registro exato da tabela.</p>
<pre>SQL&gt; select segment_name, count(extent_id), sum(bytes)/1024/1024
  2  from dba_extents
  3  where segment_name = 'TSTDBA'
  4  group by segment_name;</pre>
<pre>SEGMENT_NAME         COUNT(EXTENT_ID) SUM(BYTES)/1024/1024
-------------------- ---------------- --------------------
TSTDBA                             52                   37</pre>
<p>Para resolvermos esse problema de fragmentação, bastamos reconstruir o mapa binário da tabela, para isso, apenas use um MOVE sem mencionar a tablespace que resolve nosso problema.</p>
<pre>SQL&gt; alter table TSTDBA move;</pre>
<pre>Tabela alterada.</pre>
<pre>SQL&gt; select owner, table_name, blocks, empty_blocks, num_rows, to_char(last_analyzed,'DD-MM-RRRR HH24:MI:SS') as "ANALYZE"
  2  from dba_tables
  3  where table_name = 'TSTDBA';</pre>
<pre>OWNER      TABLE_NAME                         BLOCKS EMPTY_BLOCKS   NUM_ROWS ANALYZE
---------- ------------------------------ ---------- ------------ ---------- -------------------
RODRIGO    TSTDBA                               4654            0    1239996 06-10-2008 23:09:01</pre>
<pre>SQL&gt; select segment_name, count(extent_id), sum(bytes)/1024/1024
  2  from dba_extents
  3  where segment_name = 'TSTDBA'
  4  group by segment_name;</pre>
<pre>SEGMENT_NAME         COUNT(EXTENT_ID) SUM(BYTES)/1024/1024
-------------------- ---------------- --------------------
TSTDBA                             38                   23</pre>
<p>PRONTO! Veja que após nosso &#8220;rebuild&#8221; na tabela, liberamos cerca de 15MB para a tablespace, fazendo apenas uma reconstrução dos extents da tabela.</p>
<p>Existem muitos outros conceitos envolvidos sobre a alocação de extents, sem mencionar os freelists, gerenciamento das tablespaces e diferenças entre os segmentos de tabela e índice, tudo isso foi apenas um modo de ilustrar os problemas que podem causar perda de performance em nossos ambientes.</p>
<p>Existe uma matéria que escrevi para a iMasters algum tempo atrás que explica com um pouco mais de detalhes como funciona a arquitetura de armazenamento lógico do banco de dados Oracle, o artigo <a title="Arquitetura de armazenamento lógico" href="http://imasters.uol.com.br/artigo/3533/oracle/arquitetura_de_armazenamento_logico/" target="_blank">Arquitetura de armazenamento lógico</a>, que sanar algumas dúvidas.</p>
<p>A idéia principal do post foi iniciar desde o conceito de HWM (High Water Mark) até sua fragmentação, passando por várias fases, para fornecer um melhor entendimento de como a arquitetura Oracle funciona.</p>
<p>Abraços,</p>
<p><img src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/10/07/entendendo-a-marca-dagua-e-fragmentacao-de-tabelas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My Oracle Support - O nosso velho Metalink de cara nova</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/30/my-oracle-support-o-nosso-velho-metalink-de-cara-nova/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/30/my-oracle-support-o-nosso-velho-metalink-de-cara-nova/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 13:00:44 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Suporte]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[8i]]></category>

		<category><![CDATA[9i]]></category>

		<category><![CDATA[banco de dados]]></category>

		<category><![CDATA[collect]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[dashboard]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[knowledge]]></category>

		<category><![CDATA[mapview]]></category>

		<category><![CDATA[metalink]]></category>

		<category><![CDATA[metalink classic]]></category>

		<category><![CDATA[my oracle support]]></category>

		<category><![CDATA[ocm]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[patch]]></category>

		<category><![CDATA[powerview]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[rda]]></category>

		<category><![CDATA[reports]]></category>

		<category><![CDATA[service request]]></category>

		<category><![CDATA[sr]]></category>

		<category><![CDATA[support]]></category>

		<category><![CDATA[system health]]></category>

		<category><![CDATA[tar]]></category>

		<category><![CDATA[web seminar]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=28</guid>
		<description><![CDATA[Conheça a nova cara do Metalink, o My Oracle Support.]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Semana passada o nosso velho e bom amigo Metalink ficou de cara nova, e também com um apelido novo, chamado agora de <em>My Oracle Support</em> (Site: <a href="http://metalink.oracle.com">http://metalink.oracle.com</a>), criado boa parte em Flash (Actions Scripts FORTES!) e com novas funcionalidades integradas ao SCM (Software Configuration Manager), apresentou uma cara bem bonita e uma razoável navegação.</p>
<p>Abaixo mostro um pequeno screenshot da nova tela inicial do Metalink, ou <em>My Orale Support</em>.</p>
<p style="text-align: center"><img style="border: 0px" src="http://www.rodrigoalmeida.net/material/METALINK/metalink_novo.png" alt="Nova cara do Metalink" width="400" height="300" /></p>
<p>Ao acessar o metalink, algumas novidades apareceram como: Dashboard, Community, Reports e Collector. O mais bacana das opções é o Dashboard, que sumariza todas as informações da sua conta em uma única tela, tais informações como seus SR (Service Request - ou TAR), informações sobre suas bases que estão coletando informação pelo OCM (Oracle Configuration Manager), inventário e Projects . O screenshot mostra a tela de dashboards.</p>
<p style="text-align: center"><img src="http://www.rodrigoalmeida.net/material/METALINK/metalink_novo_2.png" alt="Tela inicial do usuário" width="400" height="300" /></p>
<p>O metalink sempre foi o canal para entrar em contato com o suporte da Oracle, para aqueles problemas difíceis de se resolver, a qualidade do suporte não mudou muita coisa, continua o mesmo (Quem usa sabe!), porém ao abrir um SR (ou TAR), você pode ter mais integração com o suporte e informação disponível da sua conta em um pequeno boxtext, como apresentado abaixo.</p>
<p style="text-align: center"><img src="http://www.rodrigoalmeida.net/material/METALINK/metalink_novo_3.png" alt="Tela de chamados" width="400" height="300" /></p>
<p> </p>
<p>O <em>My Oracle Support</em> está com bons recursos, entre eles, podemos destacar:</p>
<p><strong>MapView</strong></p>
<p>Ao abrir um SR, você já pode mencionar em qual banco de dados está o problema, atribuindo as informações que estão armazenadas no repositório da Oracle ao SR. Essas informações são retiradas dos relatórios de RDA ou pelos coletores do SCM.</p>
<p><strong>PowerView</strong></p>
<p>Um recurso do My Oracle Support que permite filtrar informações por região do aplicativo, customizando as informações que acordo com o seu interesse. As regiões podem ser Knowledge base, Projects, System, System Health e Service Request.</p>
<p><strong>System Health</strong></p>
<p>Um monitor que analisa a saúde de seus bancos de dados e aplicativos, como Application Server e EBS (E-Bussiness Suite), monitora informações de segurança, patch e recomendações. Ótimo para equipes que querem atuar com pró-atividade.</p>
<p><strong>Web Seminars</strong></p>
<p>Dentro da região Knowledge, existe a opção <em>Tools and Training &gt;  Training (Web Seminars)</em>. Uma ótima sacada da Oracle para seus profissionais. A intenção é fornecer seminários e treinamentos gratuitos para seus produtos de suporte, como RDA, SCM, E-Bussiness Diagnostics entre outros. Dessa forma, trabalhar de acordo com os padrões Oracle e entender todas as ferramentas e seus respectivos fluxos de chamado.</p>
<p>Esses são apenas alguns itens que gostei de comentar sobre a nova ferramente da Oracle de suporte, para quem já é assinante Metalink, vale a pena dar uma navegada no site e descobrir muito mais coisas. O site em sí ainda é meio lento, mesmo para quem usa conexão DSL ou dedicada está bom, mas, para quem não gostou mesmo do site e ainda prefere a versão antiga, em todas as páginas existe o Link para Classic Metalink.</p>
<p>Abraços,</p>
<p><img style="border: 0px" src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/30/my-oracle-support-o-nosso-velho-metalink-de-cara-nova/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Script: Resize Seguro</title>
		<link>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/29/script-resize-seguro/</link>
		<comments>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/29/script-resize-seguro/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 23:00:14 +0000</pubDate>
		<dc:creator>Rodrigo Almeida</dc:creator>
		
		<category><![CDATA[Scripts]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[8i]]></category>

		<category><![CDATA[9i]]></category>

		<category><![CDATA[alter]]></category>

		<category><![CDATA[alter database]]></category>

		<category><![CDATA[bancos de dados]]></category>

		<category><![CDATA[currsize]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[datafile]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[hwm]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[resize]]></category>

		<category><![CDATA[safe]]></category>

		<category><![CDATA[script]]></category>

		<category><![CDATA[seguro]]></category>

		<category><![CDATA[size]]></category>

		<category><![CDATA[tablespace]]></category>

		<category><![CDATA[tamanho]]></category>

		<guid isPermaLink="false">http://profissionaloracle.com.br/blogs/rodrigoalmeida/?p=27</guid>
		<description><![CDATA[Script para execução de resize em datafiles do banco de dados Oracle]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Segue o script utilizado no post &#8220;Diminuindo físicamente um banco de dados Oracle&#8221; para consulta.</p>
<p><strong>Resize_seguro</strong></p>
<pre>SQL&gt; get c:\DBA\scripts\resize_seguro.sql </pre>
<pre>  1  select file_name,
  2        ceil( (nvl(hwm,1)*8192)/1024/1024 ) smallest,
  3        ceil( blocks*8192/1024/1024) currsize,
  4        ceil( blocks*8192/1024/1024) -
  5        ceil( (nvl(hwm,1)*8192)/1024/1024 ) savings,
  6        ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) smallest_safe,
  7        ceil( blocks*8192/1024/1024) -
  8        ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) savings_safe
  9  from dba_data_files a,
 10      ( select file_id, max(block_id+blocks-1) hwm
 11          from dba_extents
 12         group by file_id ) b
 13  where a.file_id = b.file_id(+)
 14   and ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) &lt; ceil( blocks*8192/1024/1024)
 15   and ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) &gt; 100
 16  order by 4 desc;
 17  select 'alter database datafile ''' || file_name || ''' resize ' ||
 18        ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 )  || 'm;' cmd
 19  from dba_data_files a,
 20      ( select file_id, max(block_id+blocks-1) hwm
 21          from dba_extents
 22         group by file_id ) b
 23  where a.file_id = b.file_id(+)
 24   and ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) &lt; ceil( blocks*8192/1024/1024)
 25   and ceil( (nvl(hwm,1)*8192*1.2)/1024/1024 ) &gt; 100</pre>
<p>O resultado será igual ao abaixo:</p>
<pre>SQL&gt; @resize_seguro</pre>
<pre>FILE_NAME                                                      SMALLEST   CURRSIZE    SAVINGS SMALLEST_SAFE SAVINGS_SAFE
------------------------------------------------------------ ---------- ---------- ---------- ------------- ------------
/u02/app/oracle/oradata/finp/sysaux01.dbf                           191       2000       1809        229            1771
/u02/app/oracle/oradata/finp/system01.dbf                           264       2000       1736        316            1684</pre>
<pre>CMD
------------------------------------------------------------------------------------------------------------------------
alter database datafile '/u02/app/oracle/oradata/finp/system01.dbf' resize 316m;
alter database datafile '/u02/app/oracle/oradata/finp/sysaux01.dbf' resize 229m;</pre>
<p>Todos as colunas foram comentadas no POST que foi utilizado o script, para melhor o entendimento do resultado gerado.</p>
<p>Abraços,</p>
<p> <img style="vertical-align: text-bottom" src="http://www.rodrigoalmeida.net/material/RA/assinatura.gif" alt="Rodrigo Almeida" width="150" height="85" /></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://profissionaloracle.com.br/blogs/rodrigoalmeida/2008/09/29/script-resize-seguro/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
