<?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: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-9147480173142807278</id><updated>2012-02-16T20:20:06.508-08:00</updated><title type='text'>BANCO DE DADOS INFORMIX</title><subtitle type='html'>Antes de mais nada quero agradecer pela visita neste BLOG , um dia quando fui trocar de noteboock comecei a copiar os meus arquivos e percebi que tinha uma grande quantidade de material a qual eu escrevia, então me veio a ideia de não guardar esses materiais e sim publica-los para ajudar aos colegas de profissão.duvidas eliel@emfsoftware.com.br</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dba-eliel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-8528019984138481559</id><published>2011-06-26T19:15:00.000-07:00</published><updated>2011-06-26T19:15:33.141-07:00</updated><title type='text'>Mudando de dbspace o SYSADMIN</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;MUDANDO SYSADMIN DE DBSPACE&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Dentro das melhores praticas para trabalhar com o informix está em separar a database sysadmin do rootdbs &amp;nbsp;, relembrando , que sempre que criamos a instancia algumas databases são criadas automaticamente entre elas a sysadmin.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Para separar a sysadmin do rootdbs é uma tarefa muito , mas muito simples, basta executar o roteiro abaixo.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;- carregar o dbaccess&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;- Conectar na database sysadmin&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;- executar a função&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;execute function sysadmin:task("reset sysadmin", "new_dbspace");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;     *** Onde esta informado como sendo "new_dbspace", deve informar o nome do dispace que ira receber o a sysadmin. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;   No meu caso eu estou utilizando um dbspace chamado dbs_sysadmin então minha sintax da função será:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #3f3f3f; font-family: monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif, Arial, Verdana, Helvetica; font-size: 13px; white-space: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;execute function sysadmin:task("reset sysadmin", "dbs_sysadmin");&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Pronto , com essa simples ação a database sysadmin foi trasferida do rootdbs para o dbspace escolhido.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 12px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 12px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 12px; padding-bottom: 0.75em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 0.75em;"&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-8528019984138481559?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8528019984138481559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8528019984138481559'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/mudando-de-dbspace-o-sysadmin.html' title='Mudando de dbspace o SYSADMIN'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-4960686647771075175</id><published>2011-06-01T10:23:00.000-07:00</published><updated>2011-06-01T10:23:45.965-07:00</updated><title type='text'>BANCO DE DADOS INFORMIX: MIRRORPATH</title><content type='html'>&lt;a href="http://dba-eliel.blogspot.com/2011/06/mirrorpath.html?spref=bl"&gt;BANCO DE DADOS INFORMIX: MIRRORPATH&lt;/a&gt;: "Parametro: MIRRORPATH - Parametro permite que seja de no maximo 65 caracteres - Este parametro passa a ter efeito sempre que a instancia é..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-4960686647771075175?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dba-eliel.blogspot.com/2011/06/mirrorpath.html?spref=bl' title='BANCO DE DADOS INFORMIX: MIRRORPATH'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4960686647771075175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4960686647771075175'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/banco-de-dados-informix-mirrorpath.html' title='BANCO DE DADOS INFORMIX: MIRRORPATH'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-2295580910435689971</id><published>2011-06-01T09:12:00.001-07:00</published><updated>2011-06-01T09:12:35.325-07:00</updated><title type='text'>MIRROROFFSET</title><content type='html'>Parametro: MIRROROFFSET &lt;br /&gt;Este parametro é utilizado definir a posição inicial de onde o chunk ira começar a ser gravado no disco, parametro muito importante para quando trabalha com RAWDEVICES que recebem no mesmo RAW mais de 1 chunk. &lt;br /&gt;&lt;br /&gt;- Valor default do onconfig 0 &lt;br /&gt;- Unidade de medida do parametro Kilobits &lt;br /&gt;- Neste parametro é permitido qualquer valor igual ou maior que 0&lt;br /&gt;- Este parametro entra em vigor quando a instancia for reinicializada &lt;br /&gt;&lt;br /&gt;Quando falamos em mirror não definimos um size pois o tamanho tem que sempre ser igual ao já definido no ROOTSIZE&lt;br /&gt;Este parametro tem a mesma finalidade do ROOTOFFSET com a diferença que ele atua no mirror.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-2295580910435689971?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2295580910435689971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2295580910435689971'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/mirroroffset.html' title='MIRROROFFSET'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-4156610490927995454</id><published>2011-06-01T08:03:00.000-07:00</published><updated>2011-06-01T08:03:31.558-07:00</updated><title type='text'>MIRRORPATH</title><content type='html'>Parametro: MIRRORPATH &lt;br /&gt;- Parametro permite que seja de no maximo 65 caracteres &lt;br /&gt;- Este parametro passa a ter efeito sempre que a instancia é reinciada &lt;br /&gt;-&amp;nbsp;O MIRRORPATH deve passar o PATH completo até o nome do arquivo ou link simbolico&lt;br /&gt;- Se estiver trabalhando com RAWDEVICE deve então ter um link simbolico com o nome do chunk &lt;br /&gt;&lt;br /&gt;Este parametro é muito semelhante ao parametro do ROOTPATH, a unica diferença que ele se referencia ao PATH do espelhamento do dbspace raiz.&lt;br /&gt;Este parametro para funcionar tem que ter o parametro MIRROR definido como 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para efetuar o monitoramento&amp;nbsp; deve usar o osntat -d (ver nos tutoriais de onstat)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-4156610490927995454?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4156610490927995454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4156610490927995454'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/mirrorpath.html' title='MIRRORPATH'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-4385755314893238692</id><published>2011-06-01T07:07:00.000-07:00</published><updated>2011-06-01T07:07:41.957-07:00</updated><title type='text'>MIRROR</title><content type='html'>Parametro: &amp;nbsp;MIRROR &lt;br /&gt;Este parametro tem como finalidade fazer um espelho do dbspace raiz, isso é interessante em situações de desastre com este dbspace que pode prover condições de recuperação (lembbrando que existem pontos criticos que uma vez corrompidos não sobe mais a instancia) &lt;br /&gt;&lt;br /&gt;- O valor default do onconfig.std é 0 &lt;br /&gt;- existem dois valores possivéis para este parametro 0 = desabilitado o espelhamento ou 1 = habilitado o espelhamento &lt;br /&gt;- Este parametro tem efeito quando a instancia é reiniciada&lt;br /&gt;- Para verificar o efeito deste parametro deve monitorar com o onstat -d (veja no tutorial do onstat -d o significado das flags)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Você não precisa definir o parâmetro de configuração de espelho para o mesmo valor em ambos os servidores de banco de dados no par de replicação de dados, de alta disponibilidade. Você pode ativar ou desativar o espelhamento ou primário do servidor de banco de dados secundário de forma independente. Não defina o parâmetro de configuração de um espelho a menos que você estiver usando espelhamento.&lt;br /&gt;&lt;br /&gt;A configuração deste parametro depende também da configuração correta do MIRRORPATH e MIRROROFFSET que está no conteudo seguinte deste BLOG.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-4385755314893238692?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4385755314893238692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4385755314893238692'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/mirror.html' title='MIRROR'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-853212418183737054</id><published>2011-06-01T06:48:00.000-07:00</published><updated>2011-06-01T06:48:56.164-07:00</updated><title type='text'>ROOTSIZE</title><content type='html'>Parametro: ROOTSIZE&lt;br /&gt;&lt;br /&gt;- Valor default do onconfig.std é 200000 &lt;br /&gt;- Unidade do valor será em kilobytes&lt;br /&gt;- Intervalo de valores permitido será o minimo de 50 e o maximo a capacidade do storage &lt;br /&gt;- Alteração deste parametro tem efeito sempre que a instancia é inicializada (cuidado que alteração destroi todos os dados)&lt;br /&gt;&lt;br /&gt;ROOTSIZE especifica o tamanhodo dbspace raiz o qual o neme está definido no parametro ROOTNAME , o valor deste parametro é representado pela unidade de medida kilobytes. O tamanho que for escolhido deve ser pensado na arquitetura de como o servidor será construido.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-853212418183737054?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/853212418183737054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/853212418183737054'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/06/rootsize.html' title='ROOTSIZE'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-2828005731360039532</id><published>2011-05-31T16:15:00.000-07:00</published><updated>2011-05-31T16:15:31.449-07:00</updated><title type='text'>ROOTPATH</title><content type='html'>Parametro: ROOTPATH &lt;br /&gt;&lt;br /&gt;- No linux o valor padrão do onconfig.std seria /dev/online_root &lt;br /&gt;- Este parametro tem efeito sempre que a instacia é inicializada (detalhe uma alteração pode destruir com a instancia pois recria o arquivo)&lt;br /&gt;- ROOTPATH especifica o path completo de onde está o chunk&lt;br /&gt;- O arquivo chunk deve estar com permissão 660, e ser do usuario e grupo informix&lt;br /&gt;&lt;br /&gt;Deve ser prestado bastante atenção nesta configuração referente a permissões pois com a versão 11.1 em diante o informix se tornou muito mais exigente com a questão de segurança.&lt;br /&gt;&lt;br /&gt;Caso esteja usando RAW deve ser passado o caminho até o link que liga o nome do ROOTNAME ao RAW&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-2828005731360039532?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2828005731360039532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2828005731360039532'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/05/rootpath.html' title='ROOTPATH'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-1737725049872789705</id><published>2011-05-31T16:02:00.000-07:00</published><updated>2011-05-31T16:02:06.187-07:00</updated><title type='text'>ROOTNAME</title><content type='html'>Parametro: ROOTNAME &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Como default está definido como rootdbs. &lt;br /&gt;- Não existe uma unidade de medida para este parametro , se trata de um parametro de definição de nome, o&amp;nbsp;size do dbspace &amp;nbsp;terá um parametro especifico que veremos&amp;nbsp;em outro tutorial &lt;br /&gt;- É permitido um tamanhio de até 128 bytes, o ROOTNAME deve sempre começar com uma letra , numeros ou undescore ou caracteres $&lt;br /&gt;- Alteração de parametro tem efeito sempre que a instancia é reiniciada (lembrando que todos os dados serão destruidos caso exista alteração) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O nome destedbspace deve ser unico, a IBM recomenda que seja colocado sempre um nome facil de ser reconhecido. &lt;br /&gt;Como dica eu sempre uso o nome rootdbs ou dbs_rootdbs &lt;br /&gt;Com este parametro você estará definindo um nome para o dbspace raiz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-1737725049872789705?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1737725049872789705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1737725049872789705'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/05/rootname.html' title='ROOTNAME'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-4437982872519327429</id><published>2011-05-31T15:37:00.000-07:00</published><updated>2011-05-31T15:37:03.344-07:00</updated><title type='text'>CKPTINTVL</title><content type='html'>Parametro: CKPTINTVL &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Como default está como 300 no onconfig. &lt;br /&gt;- Parametro tem como unidade "segundos"&lt;br /&gt;- Permite vqualquer valor igual ou maior que 0 &lt;br /&gt;- Alteração de parametro tem efeito sempre que a instancia é reiniciada &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Através deste parametro é definido a frequencia em que é feito uma checagem dos dados que estão em buffer e estes dados são escritos em disco. &lt;br /&gt;&lt;br /&gt;Quando este parametro é definido para intervalos muito curtos a instancia passa muito tempo realizando bloqueios que interferem diretamente na performance das aplicações, quando este valor é muito alto ele interfere diretamente no tempo de rapidas recuperações, então deve existir um tempo médio sempre configurado. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Na prática, 30 segundos é o menor intervalo que o servidor verifica banco de dados. Se você especificar um intervalo de verificação de 0, o servidor de banco de dados não verifica se o intervalo de checkpoint tem decorrido. No entanto, o servidor de banco de dados ainda realiza checkpoints. Outras condições seria atingir a utilização de 75% do log físico para realizar checkpoints.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O parametro de RTO_SERVER_RESTART anula o CKPTINTVL então quando o RTO_SERVER_RESTART é ativado ele irá dispensar o Checkpoints e valor CKPTINTVL serão ignorados &lt;br /&gt;&lt;br /&gt;Quando queremos monitorar o checkpoint a partir da versão 11.1 foi implementado o comando onstat -g ckp (ver onstat)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-4437982872519327429?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4437982872519327429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4437982872519327429'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/05/ckptintvl.html' title='CKPTINTVL'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-1439508918590739882</id><published>2011-05-31T12:06:00.000-07:00</published><updated>2011-06-01T09:27:02.901-07:00</updated><title type='text'>ONCONFIG</title><content type='html'>&lt;strong&gt;&lt;span style="color: red;"&gt;PARAMETROS DO ARQUIVIO ONCONFIG&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;Cada link tem a explicação tecnica de cada paramatero. &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/05/rootname.html"&gt;&lt;span style="color: lime;"&gt;ROOTNAME&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;-&lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/05/rootpath.html"&gt;&lt;span style="color: lime;"&gt; ROOTPATH&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/06/rootsize.html"&gt;&lt;span style="color: lime;"&gt;ROOTSIZE&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/06/mirror.html"&gt;&lt;span style="color: lime;"&gt;MIRROR&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/06/mirrorpath.html"&gt;&lt;span style="color: lime;"&gt;MIRRORPATH&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;u&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/06/mirroroffset.html"&gt;MIRROROFFSET&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/05/rtoserverrestart.html"&gt;&lt;span style="color: lime;"&gt;RTO_SERVER_RESTART&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;- &lt;u&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/05/ckptintvl.html"&gt;CKPTINTVL&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-1439508918590739882?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1439508918590739882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1439508918590739882'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/05/parametros-do-arquivio-onconfig-cada.html' title='ONCONFIG'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-4855426781104196104</id><published>2011-05-31T12:03:00.000-07:00</published><updated>2011-05-31T12:03:37.984-07:00</updated><title type='text'>RTO_SERVER_RESTART</title><content type='html'>&lt;strong&gt;Parametro:&lt;/strong&gt; RTO_SERVER_RESTART &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Caracteristicas do parametro:&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;- Como default está como 0 (desativado) no onconfig. &lt;br /&gt;&lt;em&gt;- Parametro tem como unidade "segundos"&lt;/em&gt;&lt;br /&gt;- Permite valores entre os intervalos de 60 até 1800 (o valor 0 representa desativado)&lt;br /&gt;&lt;em&gt;- Alteração de parametro tem efeito sempre que a instancia é reiniciada&lt;/em&gt; &lt;br /&gt;- Quando o valor é alterado pelo onmode -wm ou onmode -wf &lt;br /&gt;&lt;br /&gt;RTO_SERVER_RESTART permite que você defina o tempo de recuperação (RTO) ,este tempo é definido em segundos.&lt;br /&gt;&lt;br /&gt;Este tempo é referente ao intervalo de tempo para que seja recuperado um problema após a reinicialização da instancia e colocar o servidor em modo online ou quiescente &lt;br /&gt;&lt;br /&gt;Este parametro foi implementado a partir da versão 11.1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-4855426781104196104?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4855426781104196104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/4855426781104196104'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/05/rtoserverrestart.html' title='RTO_SERVER_RESTART'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-8113815205781343388</id><published>2011-04-22T11:36:00.000-07:00</published><updated>2011-04-22T18:32:31.659-07:00</updated><title type='text'>dbexport  - Extraindo databases</title><content type='html'>&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;TRABALHANDO COM O DBEXPORT&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;Existem varias maneiras de extrair dados no INFORMIX as quais você vai encontraremos neste blog , nesta postagem iremos falar sobre o dbexport.&amp;nbsp;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;b&gt;Quando utilizar o dbexport:&lt;/b&gt;&lt;/i&gt;&amp;nbsp; &lt;span class="Apple-style-span" style="color: blue;"&gt;Quando desejamos extrair uma database por completa (dados e schemas) utilizaremos o dbexport.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;b&gt;Requisitos:&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;1 - Existir espaço livre na área onde será construído a extração (é recomendado que a área de disco tenha o mesmo&amp;nbsp; espaço do banco da dados , os arquivos poderão ficar um pouco menor que o tamanho do banco mas sempre tenham uama era suficiente para que caiba toda a extração)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;2- Usuário Informix ter permissão de gravação no diretório&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;3- Database sem nenhum lock , o dbexport ira colocar na database um loco exclusivo durante sua execução, caso isso não seja possível será abortado.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;O dbexport é um programa nativo do informix e sua utilização é muito simples, requer ser usado por um usuário com direitos administradores e que tenha as variáveis de ambiente da instancia carregadas.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;# dbexport &lt;/span&gt;&lt;/b&gt;&lt;database&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;sintax&gt;&lt;/sintax&gt;&lt;/span&gt;&lt;/b&gt;&lt;/database&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;(database) (sintax) &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;database&gt; &lt;sintax&gt; &lt;/sintax&gt;&lt;/database&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="color: #b45f06;"&gt;&amp;nbsp;# com essa simples linha de comando atendendo aos per requisitos acima teremos a database extraída para arquivos texto&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;i&gt;Estrutura da saída&lt;/i&gt;&lt;/b&gt;: &lt;span class="Apple-style-span" style="color: blue;"&gt;Teremos um diretório chamado &lt;/span&gt;&lt;nome da="" database=""&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;.exp dentro deste diretório teremos vários arquivos com a extensão .unl que são arquivos correspondentes aos dados das tabelas extraídas, caso a tabela tenha 0 registros existira também o&amp;nbsp; o arquivo.&amp;nbsp;&lt;/span&gt;&lt;/nome&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp; Teremos também um arquivo chamado &lt;/span&gt;&lt;database&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;.sql que é responsável pela criação dos objetos (tabelas, índex, permissão, views, seqüente, primary key , trigger , procederes, e tudo mais que seja objetos contidos numa database), no final serra executado um update statistics para todas as tabelas criadas.&amp;nbsp;&lt;/span&gt;&lt;/database&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Interrupções:&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp; Durante a extração do dbexport pode ser interrompido a qualquer momento, caso seja interrompido o &amp;nbsp;dbexport vai pedir confirmação antes de terminar.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; Você pode especificar o diretório onde quer que a extração seja gravada &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;u&gt;(diretório .exp arquivos .unl e arquivos .sal) &lt;/u&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;caso não especifique será gravado no diretório de trabalho atual.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&lt;b&gt;&lt;i&gt;Comentario:&lt;/i&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: blue;"&gt;O dbexport não tem limitações com tamanho de arquivos porem existem sistemas operacionais que limitam e como podemos ter tabelas consideravelmente grandes isso pode ser um bloqueio, veja sempre com o S.O os parâmetros de unlimit , na versão do INFOMRMIX 7.31 eu tinha muito problemas pois esta versão não criava arquivos maiores que 2GB.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;b&gt;Syntax dos comandos do dbexport&amp;nbsp;:&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;b&gt;comando:&lt;/b&gt;&lt;/i&gt; &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;dbexport &lt;/span&gt;&lt;database&gt;&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;/span&gt;&lt;sintax&gt;&lt;span class="Apple-style-span" style="color: red;"&gt; &amp;nbsp;&lt;/span&gt;&lt;/sintax&gt;&lt;/database&gt;&lt;database&gt;&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;sintax&gt;&lt;/sintax&gt;&lt;/span&gt;&lt;/database&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&lt;b&gt;(database) (sintax)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;b&gt;Sintaxes:&lt;/b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="color: blue;"&gt;#&lt;/span&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;caso nenhuma sintax seja passada o dbexport será excutado do mono nativo&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;b&gt;Finalidades das sintax: &amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;-c: &amp;nbsp;Faz completa exportação ignorando erros que não seja fatal, com este parâmetro só será interrompendo a importação caso aconteça um erro fatal.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;-q: &amp;nbsp;Não exibe o log da execução do dbexport .&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;-ss: &amp;nbsp;Gera junto com a script de extração as informações especificas como inicial extent , nexo extent , informação das fragmentações , locking mode, dbspace da tabela … todas as características de como os objetos estão construídos.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;-X: &amp;nbsp;Reconhece dados binários HEX em campos de caracteres&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;-V: exibe a versão do produto&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;b&gt;&lt;i&gt;Observação:&lt;/i&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;O dbexport só termina quando toda a database estiver extraída para arquivo , isso pode levar bastante tempo , tudo depende do tamanho da database e da capacidade do hardware para leitura e escrita e da versão do INFORMIX. Caso seja um ambiente de produção enquanto estiver fazendo o dbexport ninguém mais utiliza o banco de dados. &lt;b&gt;(A capacidade do Hardware principalmente discos e file sistema tem muita influencia sobre esta pratica)&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-8113815205781343388?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8113815205781343388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8113815205781343388'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/04/dbexport-extraindo-databases.html' title='dbexport  - Extraindo databases'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-7703410048904370321</id><published>2011-04-22T09:14:00.000-07:00</published><updated>2011-04-22T11:40:02.993-07:00</updated><title type='text'>TRABALHANDO COM OS DADOS</title><content type='html'>&lt;b&gt;TRABALHANDO COM DADOS:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/04/testes-de-performance-de-file-system.html"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;FILE SYSTEM&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="color: magenta;"&gt;&lt;b&gt;(NOVA)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;* &lt;a href="http://dba-eliel.blogspot.com/2011/04/dbexport-extraindo-databases.html"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;DBEXPORT&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;&lt;b&gt;(NOVA)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;* DBIMPORT &lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(BREVE)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;* DBLOAD &lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(BREVE)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;* LOAD &lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(BREVE)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;* UNLOAD &lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(BREVE)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;* HPL &lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(BREVE)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-7703410048904370321?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7703410048904370321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7703410048904370321'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/04/trabalhando-com-os-dados.html' title='TRABALHANDO COM OS DADOS'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-8212380502393548434</id><published>2011-04-22T09:06:00.000-07:00</published><updated>2011-04-22T09:06:51.129-07:00</updated><title type='text'>TESTES DE PERFORMANCE DE  FILE SYSTEM</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Varias pessoas me abordam perguntando qual o melhor file system a usar na particao onde os chunk serao salvos em ambiente UNIX . &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Normalmente minha resposta varia muito&amp;nbsp;a algumas variaveis do ambiente mas de forma geral &amp;nbsp;sempre recomendo algo que nao faca JOURLING que tenho a certeza que e muito mais rapido. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Precisei fazer alguns testes para apresentar para um cliente com evidencias para justificar alguns parametros propostos em um projeto entao acabei fazendo uma coleta bem interessante. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Arquitetura utilizada para testes: &amp;nbsp; &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Hardware:&lt;/i&gt; IBM 3650 M3 (RAM 40GB, Processador: 16 Nucleops 2 socktesXEN , Discos: Local 2 Discos 15k 146GB -- so S.O e Binarios instalados chunk em storage) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Storage IBM DS 3425 SAS com 3 discos 300GB 10 k 6GB&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;i&gt; Software&lt;/i&gt;: IBM INFORMIX GROW 11.7 FC1TL (Informix configurado com 4 GB &amp;nbsp;Residente e 4 GB Share memory , utilizando Direct_IO , KAIO)&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUSE LINUX 11 (Atualizado)&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive Rdac (ultima versao)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;i&gt;Configuraçao&amp;nbsp;Storage&lt;/i&gt;: Physical - 4 discos 300GB SAS &lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOGICAL - RAID 5&amp;nbsp; - 836GB &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Testes utilizando dbimport (Logical log e Physical log em conjunto com o rootdbs)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;RAID 5 - 100GB - Ext2 - Paginas dos chunk dados &amp;nbsp;4k&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Database importada 1GB &amp;nbsp;- &lt;span class="Apple-style-span" style="color: red;"&gt;Tempo: 7minutos e 58 segundos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;&amp;nbsp;&amp;nbsp;- RAID 5 - 100GB - Ext3 - Paginas dos chunk dados &amp;nbsp;4k&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Database importada 1GB &amp;nbsp;-&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;Tempo: 20minutos e 6 segundos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;&amp;nbsp;&amp;nbsp;- RAID 5 - 100GB - Reiserfs - Paginas dos chunk dados &amp;nbsp;4k&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Database importada 1GB &amp;nbsp;-&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;Tempo: 20minutos e 56 segundos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;&amp;nbsp;&amp;nbsp;- RAID 5 - 100GB - XFS - Paginas dos chunk dados &amp;nbsp;4k&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Database importada 1GB &amp;nbsp;-&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;Tempo: 19minutos e 16 segundos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como meu intuito é fazer amostragem então trabalhei uma database que tem 90G sendo 40% de index para mostrar a agilidade de importação com EXT2&lt;br /&gt;&lt;br /&gt;Testes com database maiores, usando dbimport&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;- RAID5 - 200GB - EXT2 - Paginas dos chunk dados e Index 4K (physical log (2GB) e logical log (2 dbspace de logical log) e rootdbs em paginas de 2K )&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Database importada 90GB &amp;nbsp;-&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;Tempo: 256minutos e 53 segundos (Cerca de 4 horas 12 minutos )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;*** Mesmos testes em EXT3 tivemos cerca de 600 Minutos de tempo total&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Efetuei uma restauracão da instancia que recebeu a database acima importada por ontape&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&amp;nbsp;- Instancia restaurada em EXT2 - (56 Minutos de restauração)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18 chunk de 4K de 5GB&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 Chunk de logical log de 1 GB cada em paginas de 2K&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 Chunk de Physical log de 2 GB em paginas de 2K&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 Rootdbs de 200 MB em pagina de 2K&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Conclusão:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;Como conclusão posso dizer que o File System em EXT2 entre os testados foi o mais rápido chegando a ser 3 vezes mais rápido , sem nenhuma duvida isso faz grande diferença no banco de dados .... (no meus testes fiz com uma baixa plataforma com hardware mais eficientes pode abaixar estes tempos e com hardware inferiores pode elevar mas a proporcionalidade se mantém...&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;&amp;nbsp;&amp;nbsp; Existem sistemas de arquivos que permitem desativar o JOURLING tornando mais rápido.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;&amp;nbsp;&amp;nbsp; A explicação para essa diferença é que quando é feito com JOURLING tem mais custos para gravação pois escreve além dos dados os log de tudo que esta sendo escrito, &amp;nbsp;para o banco de dados essas informações de LOG não tem nenhuma necessidade.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-8212380502393548434?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8212380502393548434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8212380502393548434'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/04/testes-de-performance-de-file-system.html' title='TESTES DE PERFORMANCE DE  FILE SYSTEM'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-6509512344950954443</id><published>2011-02-07T09:39:00.000-08:00</published><updated>2011-02-07T09:39:15.444-08:00</updated><title type='text'>CERTIFICAÇÃO 919 - INFORMIX 11.7</title><content type='html'>CERTIFICAÇÃO 919 - INFORMIX 11.7 &lt;br /&gt;&lt;br /&gt;Hora de estudar , esta disponivel a certificação 919 que esta cobrindo a versão 11.7.&lt;br /&gt;Existe uma promoção que sai periodicamente para certificações de produtos IBM que oferece a um custo de U$ 30,00 a prova mas precisa ficar monitorando o site até a ser diponibilizado segue URL: &lt;span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-ansi-language: PT-BR; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: PT-BR; mso-fareast-theme-font: minor-latin;"&gt;&lt;a href="http://www.ibm.com/br/developerworks/smartprofessional/datas.phtml"&gt;&lt;span style="color: purple;"&gt;http://www.ibm.com/br/developerworks/smartprofessional/datas.phtml&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-ansi-language: PT-BR; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: PT-BR; mso-fareast-theme-font: minor-latin;"&gt;Obtive resposta do responsavél por este programa de certificação que é previsto para março novos pacotes de certificações e pode ser que nesta proxima venha a do INFORMIX, não posso garantir mas vale muito monitorar e aproveitar que o custo é bem mais agradavél ... &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-6509512344950954443?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/6509512344950954443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/6509512344950954443'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/02/certificacao-919-informix-117.html' title='CERTIFICAÇÃO 919 - INFORMIX 11.7'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-2341926728083387264</id><published>2011-02-07T09:31:00.000-08:00</published><updated>2011-02-07T09:31:04.073-08:00</updated><title type='text'>BANCO DE DADOS INFORMIX: onstat</title><content type='html'>&lt;a href="http://dba-eliel.blogspot.com/2011/02/onstat-g-env.html?spref=bl"&gt;BANCO DE DADOS INFORMIX: onstat&lt;/a&gt;: "onstat -z  - Limpar statiscas onstat -g env - Ver variavel de ambientes"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-2341926728083387264?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dba-eliel.blogspot.com/2011/02/onstat-g-env.html?spref=bl' title='BANCO DE DADOS INFORMIX: onstat'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2341926728083387264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2341926728083387264'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/02/banco-de-dados-informix-onstat.html' title='BANCO DE DADOS INFORMIX: onstat'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-1694157933827746459</id><published>2011-02-07T09:24:00.001-08:00</published><updated>2011-04-22T11:49:39.293-07:00</updated><title type='text'>onstat</title><content type='html'>&lt;a href="http://dba-eliel.blogspot.com/2011/01/administrando-tempo-das-estatisticas.html"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;onstat -z&lt;/span&gt;&lt;/a&gt;&amp;nbsp; - Limpar statiscas &lt;br /&gt;&lt;a href="http://dba-eliel.blogspot.com/2011/01/identificar-variavel-de-ambiente.html"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;onstat -g env&lt;/span&gt;&lt;/a&gt;&amp;nbsp;- Ver variavel de ambientes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-1694157933827746459?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1694157933827746459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1694157933827746459'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/02/onstat-g-env.html' title='onstat'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-5182447832443637106</id><published>2011-01-13T16:42:00.000-08:00</published><updated>2011-01-13T16:42:11.672-08:00</updated><title type='text'>IDENTIFICAR VARIAVEL DE AMBIENTE</title><content type='html'>Como verificar quais variavéis de ambiente estão definidas para uma seção. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Verificar as variavéis de ambiente definidas para uma seção é uma tarefa muito simples, o importante é entender que podemos ter variavéis diferentes para o mesmo usuario, depende das variavéis informadas no momento da conexão. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Para verificar basta executar o comando :&lt;/strong&gt;&lt;br /&gt;&lt;br /&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;&amp;nbsp;&lt;span style="color: lime;"&gt;&amp;nbsp;$ onstat -g env&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #f1c232;"&gt;# Comando para verificar as variavéis de ambiente definidas&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No caso se digitarmos o comando onstat -g env no bash do usuario conectado estaremos verificando as variavéis do usuario que está conectado, se desejarmos verificar uma seção especifica basta identificar o id da conexão e executar o comando &lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp;&lt;span style="color: lime;"&gt; $onstat -g env &lt;id connexão=""&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Exemplo pratico:&lt;/strong&gt;&lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp; &lt;span style="color: lime;"&gt;$ onstat -u&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #f1c232;"&gt; # comando para verificar os usuarios conectados &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;informix@urano:/mnt/backup/informix/ontape/backup/borr/borr_backup&amp;gt; onstat -u&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 12 days 11:51:06 -- 344484 Kbytes&lt;br /&gt;&lt;br /&gt;Userthreads address flags sessid user tty wait tout locks nreads nwrites&lt;br /&gt;&lt;br /&gt;21429018 &amp;nbsp;---P--D&amp;nbsp; 1informix - 0 0 0 3013 16722&lt;br /&gt;21429544&amp;nbsp; ---P--F&amp;nbsp;&amp;nbsp; 0&amp;nbsp;informix - 0 0 0 0 475943&lt;br /&gt;21429a70 &amp;nbsp;---P---&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 informix - 0 0 0 0 16&lt;br /&gt;21429f9c&amp;nbsp; &amp;nbsp;---P--B&amp;nbsp; &amp;nbsp;9 informix - 0 0 0 1267204 16&lt;br /&gt;2142a9f4&amp;nbsp;&amp;nbsp;Y--P---&amp;nbsp;&amp;nbsp; 15825 fiscal 2 2209bc70 0 1 112 0&lt;br /&gt;2142af20&amp;nbsp;&amp;nbsp; ---P--D&amp;nbsp;16 informix - 0 0 0 0 0&lt;br /&gt;2142b44c Y--P--D 20 informix - 1007f138 0 0 0 0&lt;br /&gt;2142b978 Y--P--- 15594 especial SPDP-WXP 21e9a680 0 1 63758 63865&lt;br /&gt;2142bea4 Y--P--- 15034 teste 0 223c7108 0 1 53039 0&lt;br /&gt;2142c8fc&amp;nbsp; Y--P--- 15902 roxa 2 22994410 0 1 1 0&lt;br /&gt;2142d354 Y--P--- 15776 roxa 2 21e84248 0 1 3 0&lt;br /&gt;2142f25c&amp;nbsp; Y--P--- 15621 interfac - 21e84018 0 1 15 1&lt;br /&gt;2143070c Y--P--- 15253 checkin 2 227fa808 0 1 0 0&lt;br /&gt;21431164 Y--P--- 15551 checkin 2 220cbaf8 0 1 144 80&lt;br /&gt;21431690 Y--P--- 15607 adfisca1 2 220efd48 0 1 3 0&lt;br /&gt;21432614 Y--P--- 15566 pedra 2 223c7940 0 1 62 0&lt;br /&gt;21432b40 Y--P--- 15152 especial SPODP-WX 227fa628 0 1 66461 63894&lt;br /&gt;21433ac4 Y--P--- 15560 roxa 2 220efb18 0 1 68 36&lt;br /&gt;21434a48 Y--P--- 15906 roxa 2 21e22b00 0 1 18 0&lt;br /&gt;214359cc Y--P--- 15712 adfisca1 2 220efde8 0 1 167 0&lt;br /&gt;214378d4 Y--P--- 15836 checkin 2 220efe88 0 1 162 64&lt;br /&gt;21437e00 Y--P--- 15901 roxa 2 21f7b8a0 0 1 271 0&lt;br /&gt;&lt;br /&gt;22 active, 128 total, 49 maximum concurrent&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #bf9000;"&gt;# Vou estar querendo ver as variavéis de ambiente da seção 15836 referente ao usuario checkin &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: lime;"&gt;$ onstat -g env 15836&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;informix@urano:/mnt/backup/informix/ontape/backup/borr/borr_backup&amp;gt; onstat -g env 15836&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 12 days 11:54:50 -- 344484 Kbytes&lt;br /&gt;Environment for session 15836:&lt;br /&gt;&lt;br /&gt;Variable Value [values-list]&lt;br /&gt;CLIENT_LOCALE en_US.8859-1&lt;br /&gt;DBDATE DMY4/&lt;br /&gt;DBDELIMITER &lt;br /&gt;DBMONEY ,&lt;br /&gt;DBNLS 1&lt;br /&gt;DBPATH //ifxprd01&lt;br /&gt;[//ifxprd01]&lt;br /&gt;[/tmp]&lt;br /&gt;DBPRINT lp -s&lt;br /&gt;DBTEMP /tmp&lt;br /&gt;DB_LOCALE en_US.819&lt;br /&gt;INFORMIXDIR /home/informix&lt;br /&gt;[/home/informix]&lt;br /&gt;[/usr/informix]&lt;br /&gt;INFORMIXSERVER edi&lt;br /&gt;INFORMIXSQLHOSTS /home/informix/etc/sqlhosts_edi&lt;br /&gt;INFORMIXTERM terminfo&lt;br /&gt;[terminfo]&lt;br /&gt;[termcap]&lt;br /&gt;LANG en_US.UTF-8&lt;br /&gt;LC_COLLATE en_US.819&lt;br /&gt;LC_CTYPE en_US.819&lt;br /&gt;LC_MONETARY en_US.819&lt;br /&gt;LC_NUMERIC en_US.819&lt;br /&gt;LC_TIME en_US.819&lt;br /&gt;LKNOTIFY yes&lt;br /&gt;LOCKDOWN no&lt;br /&gt;NODEFDAC no&lt;br /&gt;[no]&lt;br /&gt;[no]&lt;br /&gt;ONCONFIG onconfig_edi&lt;br /&gt;PATH .:/bin:/usr/bin:/usr/local/bin:/dados/fjs/fgl2c.14/bin:/home/informix/bin:/usr/local/bin:/wch2/sispac:/wch2/sispac/bin&lt;br /&gt;SERVER_LOCALE en_US.819&lt;br /&gt;SHELL /bin/sh&lt;br /&gt;SINGLELEVEL no&lt;br /&gt;SQLPID 578023448&lt;br /&gt;SUBQCACHESZ 10&lt;br /&gt;TERM scoansi&lt;br /&gt;[scoansi]&lt;br /&gt;[dumb]&lt;br /&gt;TERMCAP /etc/termcap&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-5182447832443637106?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5182447832443637106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5182447832443637106'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/01/identificar-variavel-de-ambiente.html' title='IDENTIFICAR VARIAVEL DE AMBIENTE'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-5552709652131657426</id><published>2011-01-13T09:49:00.000-08:00</published><updated>2011-01-13T11:00:39.298-08:00</updated><title type='text'>Administrando tempo das estatisticas exibidas nos comandos "onstat"</title><content type='html'>Através dos comandos onstat podemos conferir statisticas da instancia do INFORMIX, o detalhe é que muitas vezes estamos vendo estatisticas de um periodo muito longo e nossa analise pode requerer uma estatistica de um intervalo menor, ou pior podemos nos referenciar que os dados statisticos são referentes ao periodo de up time da instancia mas na realidade esta estatistica já foram zeradas no decorrer do tempo. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Será abordado neste&amp;nbsp; tutorial os seguintes assuntos:&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: #cc0000;"&gt;-&amp;nbsp;Como zerar as estatisticas com a instancia up. &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: #cc0000;"&gt;- Como verificar a ultima vez que a estatistica foram zeradas&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Como zerar as estatisticas com a instancia up&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Não temos muito o que falar sobre este assunto é um simples comando e que pode ser executado a qualquer momento e com a instancia ativa sem nenhum problema. &lt;br /&gt;&lt;br /&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;&lt;span style="color: lime;"&gt;&amp;nbsp; &lt;strong&gt;$ onstat -z&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Comando para zerar as informações estatisticas da instancia UP. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Como verificar a ultima vez que a estatistica foram zeradas&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;verificaremos esta informação através de uma consulta as tabelas de catalogo do INFORMIX da database sysmaster. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;# Conectar na database sysmaster e executar a consulta abaixo:&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;select dbinfo("utc_to_datetime", sh_pfclrtime) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;from sysmaster:sysshmvals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Com este conhecimento agora será possivél zerar as estatisticas e acompanhar de forma on-line ou saber a qual preriodo os numeros apresentados são referenciados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-5552709652131657426?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5552709652131657426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5552709652131657426'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/01/administrando-tempo-das-estatisticas.html' title='Administrando tempo das estatisticas exibidas nos comandos &quot;onstat&quot;'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-2575021668640356622</id><published>2011-01-03T09:30:00.000-08:00</published><updated>2011-01-03T09:30:30.023-08:00</updated><title type='text'>NOVAS POSTAGENS - INFORMIX - FELIZ 2011</title><content type='html'>&lt;span style="color: red;"&gt;Fiquei um tempo distanciado deste meu projeto de publicar informações tecnica sobre o&amp;nbsp;&lt;strong&gt;INFORMIX&lt;/strong&gt; devido ao periodo de final de ano que é uma epoca de muito trabalho para quem trabalha especificamente&amp;nbsp;com varejo. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Após este periodo e com todo o sucesso que foi este final de ano para os meus ambientes&amp;nbsp;&lt;strong&gt;INFORMIX&lt;/strong&gt;&amp;nbsp;&amp;nbsp;volto a fazer postagens periodicamente e dar mais atenção a este projeto do&amp;nbsp;blog . &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;São inumeras pessoas que me escreveram este ano, varias pessoas que passei a conversar e trocar informações, posso dizer que isso foi muito bacana. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Um Feliz 2011 para todos com muita prosperidade ... e muito &lt;strong&gt;INFORMIX&lt;/strong&gt; no dia a dia ... seguramente posso dizer que com &lt;strong&gt;INFORMIX&lt;/strong&gt; o ano será prospero , tranquilo e seguro. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;OBRIGADO A TODOS QUE VISITARAM ESTE BLOG !!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Reforço que se alguem precisar conversar sobre&amp;nbsp;&lt;strong&gt;INFORMIX&lt;/strong&gt; estou sempre a disposição .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; INFORMIX , INFORMIX , INFORMIX , INFORMIX , INFORMIX , INFORMIX &lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-2575021668640356622?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2575021668640356622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/2575021668640356622'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/01/novas-postagens-informix-feliz-2011.html' title='NOVAS POSTAGENS - INFORMIX - FELIZ 2011'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-7674400776146322593</id><published>2011-01-03T09:11:00.000-08:00</published><updated>2011-01-03T09:19:15.798-08:00</updated><title type='text'>SYSDISTRIB - UPDATE STATISTICS - INFORMIX</title><content type='html'>&amp;nbsp;&amp;nbsp;Como identificar a ultima data de execução do Update statistics :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Toda&amp;nbsp;database irá existir uma tabela de catalogo chamada sysdistrib nesta tabela estará armazenada informações referentes a &lt;em&gt;UPDATE STATISTICS&lt;/em&gt; de nivél MEDIUM e HIGH. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a tabela é composta por 9 campos abaixo detalhados: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;tabid&lt;/strong&gt; = Código de identificação da tabela , é o mesmo código existente da systables&lt;br /&gt;&lt;strong&gt;colno&lt;/strong&gt; = Numero da coluna na tabela de origem &lt;br /&gt;&lt;strong&gt;seqno&lt;/strong&gt; = numero ordinal para multiplas entradas&lt;br /&gt;&lt;strong&gt;constructed&lt;/strong&gt; = Data que foi exxecutado o update statistics&lt;br /&gt;&lt;strong&gt;mode&lt;/strong&gt; = Nivél de otimização , medio e alto (lembrando baixo não é armazenado nesta tabela) &lt;br /&gt;&lt;strong&gt;resolution&lt;/strong&gt; = valor especificado na instrução update statistics &lt;em&gt;(Veja no tutorial update statistics mais detalhes)&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;confidence&lt;/strong&gt;&amp;nbsp; = valor especificado na instrução update statistics &lt;em&gt;(Veja no tutorial update statistics mais detalhes)&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;encdat&lt;/strong&gt; = informações estatisticas referenciada pelo type &lt;br /&gt;&lt;strong&gt;type&lt;/strong&gt; = Tipo de estatísticas: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A = encdat tem histograma ASCII codificado em campo de comprimento fixo de caracteres &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S = encdat tem estatísticas definidas pelo usuário&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Obs.:&lt;/em&gt;&lt;/strong&gt; O nivél low não é controlado nesta tabela pois não existe valores para colunas neste nivél de execução. &lt;br /&gt;&lt;br /&gt;caso&amp;nbsp; queira saber quando uma determinada tabela teve suas statisticas atualizada pela ultima vez você pode executar a consulta abaixo diretamente na database, eu coloqyuei uma query cobrindo os pontos basicos, mas sejam criativos e acrescentem o que for necessario. &lt;br /&gt;Esta tabela armazena um valor por coluna então para a mesma tabela vai existir varios registros. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;SELECT tabname, constructed, mode , colname FROM systables m , sysdistrib n , syscolumns o&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;WHERE m.tabid = n.tabid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;AND n.colno = o.colno&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;AND m.tabid &amp;gt;99&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-7674400776146322593?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7674400776146322593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7674400776146322593'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2011/01/sysdistrib-update-statistics.html' title='SYSDISTRIB - UPDATE STATISTICS - INFORMIX'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-1343168492375233259</id><published>2010-10-25T13:40:00.000-07:00</published><updated>2010-10-28T13:32:35.814-07:00</updated><title type='text'>LOCKS INFORMIX</title><content type='html'>&lt;strong&gt;TRABALHANDO COM LOCKS NO INFORMIX&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;O Assunto que iremos abordar neste tutorial considro bastante interessante e sem nenhuma duvida é algo que todos os dias a&amp;nbsp;grande parte&amp;nbsp;dos DBA devem ter que fazer algum tipo de analise&amp;nbsp; que envolva LOCK. &lt;br /&gt;&lt;br /&gt;Para demonstrações neste tutorial estarei utilizando uma base de dados com o nome "bd_teste" que está na instancia "door" ,tenho 2 tabelas criadas (teste1 e teste2) &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TOPICOS QUE VEREMOS NESTE TUTORIAL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;* O que é LOCKS?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Tipos de LOCKS / Siglas&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Explicação sobre cada tipo de Locks&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Granularidade de Locks&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Demonstração dos Locks na pratica &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Locks de pagina &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Locks de linha &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Log de base de dados&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Niveis de isolamento&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- O que é LOCKS?&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Posso definir Lock como sendo um método que o banco de dados utiliza para controlar os acessos a base de dados, tabelas e linhas (Colocando ordem e dando preferencias e exclusividades) , como o banco de dados normalmente tem diversos usuarios conectados de forma simultânea e cada usuário que chega até o banco de dados está com alguma intenção com algum dos objetos da base de dados, para garantir a integridade de dados para que não tenhamos conflitos e possa garantir a consistência dos dados o banco de dados então utiliza do recurso de LOCKS. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;Comentario:&lt;/span&gt; Mesmo sendo fundamental e de extrema importância a utilização de LOCKS posso dizer que muitas vezes incomoda muito, e piora a situação quando o desenvolvedor desconhece o metodo de trabalhar com LOCKS no INFORMIX, mas nem pensem em imaginar ter um banco de dados sem utilização de LOCKS, isso seria praticamente terminar com toda a integridade de dados que existe. &lt;br /&gt;Certamente todo o DBA vai ter varias situações que irá precisar monitorar LOCKS.&lt;br /&gt;Inicialmente vamos perceber que&amp;nbsp;é uma tarefa bastante complicada&amp;nbsp;para ser feita no &amp;nbsp;INFORMIX, após entendermos&amp;nbsp;o funcionamento iremos mudar de opinião e achar&amp;nbsp;simples e de facil visualização,&amp;nbsp;porém não adianta tentar monitorar se&amp;nbsp;não souber como monitorar e o que monitorar e se não houver algumas scripts ou ferramentas para esse monitoramento acontecer. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* TIPOS DE LOCKS / SIGLAS&lt;/strong&gt; &lt;br /&gt;Vai encontrar essas referencias no retorno do comando onstat -k na coluna "type"&lt;br /&gt;&lt;br /&gt;- Share Lock - S &lt;br /&gt;- Update Lock - U&lt;br /&gt;- Exclusive Lock - X&lt;br /&gt;- Itent Lock - IX&lt;br /&gt;- Byte Lock - B&lt;br /&gt;- Share Ineted exclusive Lock - SIX &lt;br /&gt;- Exclusive key value held by a repeatable reade - XR&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* Explicação sobre cada tipo de Locks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Estaremos vendo com frequencia referencias ao campo tblsnum no decorrer do TUTORIAL, para uma simples e facil compreensão abaixo uma referencia. &lt;em&gt;(Abaixo teremos uma explicação de todos os campos de retorno do onstat -k) &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Se o rowid for igual a zero, o tblsnum se refere a um bloqueio de tabela. &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Se o rowid terminar em dois zeros, o bloqueio se refere a um bloqueio de pagina. &lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Se o rowid estiver com até 6 digitos e não terminar em zero, o bloqueio se refere a linha.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Se o rowid estiver com mais de 6 digitos, o bloquieo se refere a um indice&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;Comentario:&lt;/span&gt; Perceba que o significado da coluna "tblsnum" está relacionado com a coluna "rowid"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Share Lock Database&amp;nbsp; - HDR-S ou S&lt;/em&gt; &lt;br /&gt;O Share Lock de database é representado como HDR-S na primeira conexão que colocar o LOCK e como S para as demais conexões, toda conexão que chegar na database irá marcar um LOCK se não for definido nenhum especifico lock será automaticamente colocado o SHARE LOCK, esse lock é importante para que não exista alterações na database enquanto houver usuarios conectados. &lt;br /&gt;&lt;br /&gt;- Só pode ser colocado um SHARE LOCK na database que não existir um EXCLUSIVE LOCK. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #073763;"&gt;Vamos ver um pouco na pratica:&lt;/span&gt; &lt;br /&gt;Como estamos com um banco de teste é possivél fechar todas as conexões existentes, então vamos lá encerre todas as conexões existentes e após isso faça &lt;br /&gt;&lt;br /&gt;terminal 1 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ onstat -k&lt;/span&gt;&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Retorno:&lt;/span&gt; Veja abaixo o retorno em tela que mostra que não temos nenhum LOCK no momento. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 04:11:11 -- 3378356 Kbytes&lt;br /&gt;&lt;br /&gt;Locks&lt;br /&gt;&lt;br /&gt;address wtlist owner lklist type tblsnum rowid key#/bsiz&lt;br /&gt;0 active, 600000 total, 32768 hash buckets, 5 lock table overflows&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;Comentario:&lt;/span&gt; Não houve retorno nenhum de LOCK pois não existe nenhuma conexão estabelecida. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;terminal 2 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_teste &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;terminal 1 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ onstat -k &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Retorno:&lt;/span&gt; veja abaixo que agora temos o retorno em tela que mostra que existe 1 LOCK tblsnum = 100002 e rowid = 208 do tipo HDR+S (lembra que HDR+S quer dizer que é um SHARE LOCK e é referente a primeira conexão por estar com HDR)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;Comentario:&lt;/span&gt; Se quiser ver que a proxima conexão ficará apenas com "S" abra um terceiro terminal e se conecte também na bd_teste e execute novamente no terminal 1 o comando "onstat -k" e veja que terá um novo SHARE LOCK só que desta vezz com o type "S" pois é a segundo conexão . &lt;br /&gt;&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 04:12:18 -- 3378356 Kbytes&lt;br /&gt;Locks&lt;br /&gt;address wtlist owner lklist type tblsnum rowid key#/bsiz&lt;br /&gt;a4c7d280 0 a14b3a70 0 &lt;span style="color: #cc0000;"&gt;HDR+S 100002 208&lt;/span&gt; 0&lt;br /&gt;&lt;span style="color: #cc0000;"&gt;1 active&lt;/span&gt;, 600000 total, 32768 hash buckets, 5 lock table overflows&lt;br /&gt;&lt;br /&gt;Bem você deve estar se perguntando , como sabemos que esse LOCK é referente a database e qual database ... calma ai ... vamos ver já isso ...&lt;br /&gt;&lt;br /&gt;sempre que o tblsnum for 100002 representa que é um lock de database &lt;br /&gt;&lt;br /&gt;Para saber qual database está em LOCK vamos fazer uma consulta no banco de dados na database sysmaster table sysdatabase&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$dbaccess sysmaster &lt;/span&gt;&amp;nbsp;&lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;escrever a consulta abaixo&amp;nbsp;(Pode utilizar o dbaccess para essa consulta) &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a64d79;"&gt;select name , hex(rowid) hex_rawid_database from sysdatabase' &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No meu caso retorna &lt;span style="color: #38761d;"&gt;# Esse retorno vai variar de acordo com a quantidade de base que existir no servidor e nomes. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;name sysmaster&lt;br /&gt;hex_raw_id_tablee 0x00000201&lt;br /&gt;name sysutils &lt;br /&gt;hex_raw_id_tablee 0x00000202&lt;br /&gt;name sysuser&lt;br /&gt;hex_raw_id_tablee 0x00000203&lt;br /&gt;name&lt;span style="color: #cc0000;"&gt; bd_teste&lt;/span&gt;&lt;br /&gt;hex_raw_id_tablee &lt;span style="color: #cc0000;"&gt;0x00000208&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;veja que o retorno do numero &lt;span style="color: #cc0000;"&gt;0x00000208&lt;/span&gt; representa o rowid &lt;span style="color: #cc0000;"&gt;208&lt;/span&gt; então concluimos que o lock do &lt;span style="color: #cc0000;"&gt;tblsnum = 100002 do rowid = 208&lt;/span&gt; é referente a &lt;span style="color: #cc0000;"&gt;database "bd_teste"&lt;/span&gt;, caso o LOCK estivesse indicando rowid 203 teriamos então um SHARE LOCK na tabela sysuser e assim por diante ... &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Vamos ver um exemplo de como funciona o SHARE LOCK .&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;1° Tentando alterar o nome de uma tabela que esteja com SHARE LOCK. &lt;br /&gt;&lt;br /&gt;terminal 1&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_teste&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;terminal 2&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_sysmaster &lt;span style="color: #38761d;"&gt;# Comando ex&lt;/span&gt;&lt;span style="color: #38761d;"&gt;ecutado &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;rename database bd_teste to teste_bd&amp;nbsp;&amp;nbsp; &lt;span style="background-color: white;"&gt;&lt;span style="color: #38761d;"&gt;# Linha digitada no dbaccess&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Essa situação irá retornar os dois erros abaixo demonstrados, isso porque estamos tentando mudar o nome de uma base que existe conexões. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc0000;"&gt;425: Database is currently opened by another user.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #cc0000;"&gt;107: ISAM error: record is locked.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Share Lock table -- HDR-S ou S&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;O Share Lock de tabela é representado como HDR+S na primeira conexão que colocar o LOCK como "S" para as demais conexões, esse lock é importante para que não exista alterações na tabela enquanto consultas estejam sendo efetuadas. &lt;br /&gt;&lt;br /&gt;Para identificar o SHARE LOCK da table com o comando onstat -k o rowid estará representado pelo numero "0" e o tblsnum estará exibindo de forma hexadecimal o numero da tabela. &lt;br /&gt;&lt;br /&gt;- só é permitido colocar um Share Lock na tabela que não existir um exclusivo Lock &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Vamos trabalhar na pratica um pouco:&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Terminal 1&lt;span style="color: #38761d;"&gt; # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;Comentario:&lt;/span&gt;&amp;nbsp;Vamos&amp;nbsp;colocar o Lock explicitamente na tabela &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_teste&amp;nbsp; &lt;/span&gt;&lt;span style="color: #38761d;"&gt;# Comando executado &lt;/span&gt;&lt;br /&gt;begin; lock table tabela1 in share mode&amp;nbsp; &lt;span style="background-color: white;"&gt;&lt;span style="color: #38761d;"&gt;# Linha digitada no dbaccess&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;terminal 2 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;Comentario: Vamos verificar&amp;nbsp;o Share lock &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ onstat -k &lt;/span&gt;&lt;span style="color: #38761d;"&gt;# Comando executado &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;retorno do onstat -k&lt;br /&gt;&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 06:03:44 -- 3378356 Kbytes&lt;br /&gt;Locks&lt;br /&gt;address wtlist owner lklist type tblsnum rowid key#/bsiz&lt;br /&gt;101209bc 0 9ffed0ec 0 &lt;span style="color: #cc0000;"&gt;HDR+S 100002 208&lt;/span&gt; 0&lt;br /&gt;105dad84 0 9ffed0ec 101209bc &lt;span style="color: #cc0000;"&gt;HDR+S 700264 0&lt;/span&gt; 0&lt;br /&gt;2 active, 600000 total, 32768 hash buckets, 5 lock table overflows&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;analisando o retorno do comando onstat -k &lt;br /&gt;&lt;br /&gt;Neste retorno temos 2 Locks do tipo Share onde os dois são os primeiros a serem colocados. (Sabemos que são os primeiros porque estão com HDR)&lt;br /&gt;&lt;br /&gt;Agora pergunto a todos, porque 2 Locks se neste momento só estamos explicitamente colocando LOCK na "tabela1" ?&lt;br /&gt;&lt;br /&gt;É claro que todos que estão acompanhando esse tutorial&amp;nbsp;já sabem&amp;nbsp;a resposta na ponta da lingua ... a resposta é porque para chegar na tabela precisa conectar na database e para toda a conexão aberta com a database é criado um share lock. &lt;br /&gt;&lt;br /&gt;Bem como já definimos acima o SHARE LOCK de database sabemos que está conectado na database bd_teste então vamos agora analizar o SHARE LOCK da tabela.&lt;br /&gt;&lt;br /&gt;tblsnum = 700264 &lt;span style="color: #38761d;"&gt;# Essa é a tabela em hexadecimal então coloque na query abaixo e irá conseguir identificar o nome da tabela , lembrando acrescente 0x00 antes do código.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Sabemos que se trata de um SHARE LOCK na tabela porque o rowid é igual a 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #741b47;"&gt;SELECT tabname FROM systables&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #741b47;"&gt;WHERE hex(partnum) = "0x00700264"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Resultado da query:&lt;br /&gt;&lt;br /&gt;tabname teste1&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Tabela "teste1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Então concluimos que tblsnum = 700264 é o mesmo que tabname teste1 ou seja a tabela teste1 tem um SHARE LOCK. &lt;br /&gt;&lt;br /&gt;outra maneira de conseguir informações de qual tabela é referido o numero hexadecimal retornado pelo onstat -k na coluna tblsnum será através do comando oncheck -pt &lt;hexadecimal&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ oncheck -pt "0x00700264"&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Comando executado &lt;/span&gt;&lt;/span&gt;&lt;em&gt;retorno do comando&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TBLspace Report for bd_teste:gerenc.&lt;span style="color: red;"&gt;teste1&lt;/span&gt;&lt;br /&gt;Physical Address 9:1169997&lt;br /&gt;Creation date 10/05/2010 18:11:51&lt;br /&gt;TBLspace Flags 801 Page Locking&lt;br /&gt;TBLspace use 4 bit bit-maps&lt;br /&gt;Maximum row size 1&lt;br /&gt;Number of special columns 0&lt;br /&gt;Number of keys 0&lt;br /&gt;Number of extents 1&lt;br /&gt;Current serial value 1&lt;br /&gt;Pagesize (k) 2&lt;br /&gt;First extent size 8&lt;br /&gt;Next extent size 8&lt;br /&gt;Number of pages allocated 8&lt;br /&gt;Number of pages used 1&lt;br /&gt;Number of data pages 0&lt;br /&gt;Number of rows 0&lt;br /&gt;Partition partnum 7340644&lt;br /&gt;Partition lockid 7340644&lt;br /&gt;&lt;br /&gt;Extents&lt;br /&gt;&lt;br /&gt;Logical Page Physical Page Size Physical Pages&lt;br /&gt;0 9:2176832 8 8&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Exclusive Lock DATABASE&amp;nbsp; -- HDR+X ou X&lt;br /&gt;&lt;br /&gt;Lock exclusivo em database pode ser colocado de modo explicito ou pode ser gerado através de utilitarios do tipo dbexport , exclusivo Lock na database será representado sempre na coluna de type como HDR+X ,detalhe neste caso de LOCK de database é que somente pode existir um unico processo com o exclusivo lock então não teremos situações de existir um Lock de database que não seja HDR+X que seja apenas "X" isso seria impossivél. &lt;br /&gt;&lt;br /&gt;- Não é possivél colocar EXCLUSIVO LOCK quando já existir um SHARE LOCK , caso tente colocar será retornado erro -425 e -107 &lt;br /&gt;&lt;br /&gt;vamos provacar EXCLUSIVO LOCK efetuando um export da base de dados &lt;br /&gt;&lt;br /&gt;Terminal 1 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbexport bd_teste &amp;nbsp;&lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;terminal 2&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ onstat -k&lt;/span&gt;&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt;&lt;span style="color: orange;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Retorno do comando onstat -k&lt;/em&gt;&lt;br /&gt;Locks&lt;br /&gt;address wtlist owner lklist type tblsnum rowid key#/bsiz&lt;br /&gt;101209bc 0 9ffed0ec 0 &lt;span style="color: #cc0000;"&gt;HDR+X 100002 208&lt;/span&gt; 0&lt;br /&gt;1 active, 600000 total, 32768 hash buckets, 5 lock table overflows&lt;br /&gt;&lt;br /&gt;Analisando o comando, podemos relembrar um pouco o que foi explicado no SHARE LOCK para database. &lt;br /&gt;&lt;br /&gt;"o numero Rowid é o hexadecimal que refere o nome da database na tabela sysdatabase da database sysmaster"&lt;br /&gt;&lt;br /&gt;"encontraremos o nome da database correspondente ao rowid numero 208 através da consulta, &lt;br /&gt;&lt;span style="color: purple;"&gt;select name , hex(rowid) hex_rawid_database from sysdatabase&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"tblsnum = 100002 referencia-se a LOCK de DATABASE"&lt;br /&gt;&lt;br /&gt;no comando acima o type que nos retorna é "HDR+X" isso quer dizer que base de dados está com exclusivo Lock isso quer dizer que não será possivél nenhuma outra conexão com a base de dados que se referencia na sysdatabase da database sysmaster como hexadecimal "0x00000208" e se não conseguimos mais conectar por estar EXCLUSIVO LOCK isso quer dizer que nenhum outro tipo de LOCK será criado nesta base de dados. (Meio que obvio isso mas importante entender isso) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;tentativa de conexão na base de dados bd_teste durante o exclusivo lock "HDR+X"&lt;br /&gt;&lt;br /&gt;terminal 2&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_teste&lt;/span&gt;&amp;nbsp; &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt;&lt;span style="color: orange;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Retorno de erro quando se tenta conectar em uma base de dados que esteja com "HDR+X"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;425: Database is currently opened by another user.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;107: ISAM error: record is locked.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exclusive Lock TABLE&amp;nbsp; -- HDR+X ou X&lt;br /&gt;&lt;br /&gt;O exclusivo lock de uma tabela é utilizado para previnir que ninguem faça leitura ou escrita na tabela, logico que para algumas regras podem existir execeções, neste caso pode ser utilizado nivéis de isolamento "isolation level" do tipo leitura suja "dirty reader" porém essa execeção pode causar incosistencia dos dados que estejam sendo recuperados. &lt;br /&gt;&lt;br /&gt;Vamos ver na pratica: &lt;br /&gt;&lt;br /&gt;terminal 1 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ dbaccess bd_teste &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;/span&gt;&lt;span style="color: orange;"&gt;&lt;span style="color: purple;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;&lt;span style="color: purple;"&gt;begin; lock table teste1 in exclusive mode&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;terminal 2 &lt;span style="color: #38761d;"&gt;# Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;$ onstat -k &lt;span style="color: #38761d;"&gt;# Comando executado&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;retorno do comando onstat -k&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 14 days 04:03:23 -- 3378356 Kbytes&lt;br /&gt;Locks&lt;br /&gt;&lt;br /&gt;address wtlist owner lklist type tblsnum rowid key#/bsiz&lt;br /&gt;101209bc 0 9ffed0ec 0 &lt;span style="color: red;"&gt;HDR+S 100002 208&lt;/span&gt; 0&lt;br /&gt;105dad84 0 9ffed0ec 101209bc &lt;span style="color: red;"&gt;HDR+X 700264 0&lt;/span&gt; 0&lt;br /&gt;2 active, 600000 total, 32768 hash buckets, 5 lock table overflows&lt;br /&gt;&lt;br /&gt;Bem analisando o retorno acima podemos verificar que temos um Share Lock na database motivado pela conexão que estabelecemos quado abrimos a conexão para colocar a tabela em LOCK, temos também um EXCLUSIVE LOCK na tabela hex 0x00700264 que identificamos pelo rowid = 0 esse exclusive Lock nos forçamos acontecer..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* Granularidade de Locks&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;existe uma granularidade do exclusivo Lock por tabela podendo ser colocado lock de linha (row) ou em pagina (page) &lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Comentario:&lt;/span&gt; não citei essa granularidade quando falei do Share Lock table pois achei que estari complicando muito, mas tudo que veremos se aplica ao SHARE também. &lt;br /&gt;&lt;br /&gt;Vamos então ver na pratica&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-1343168492375233259?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1343168492375233259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1343168492375233259'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/10/locks.html' title='LOCKS INFORMIX'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-3385657288896986346</id><published>2010-10-13T11:29:00.000-07:00</published><updated>2010-10-13T12:11:23.252-07:00</updated><title type='text'>NOVA VERSÃO DO INFORMIX  11.7</title><content type='html'>Foi liberado oficialmente dia 12/10/2010 a versão 11.7 do INFORMIX , o que já estava muito bom com a versão 11.5 ficou ainda melhor, foram atendidos nesta versão varios recursos que eram esperados a muito tempo.&lt;br /&gt;&lt;br /&gt;A algum tempo eu estava fazendo alguns testes com a versão beta e comprovei melhorias e varios recursos que irão nos ajudar ainda mais, varias coisas que era esperado saiu nesta versão. Como é INFORMIX nem precisamos nos preocupar com a qualidade é certo que está tudo muito bem feito e testado.&lt;br /&gt;&lt;br /&gt;existe ganhos de performance.&lt;br /&gt;Foram incorporados recursos antes existentes apenas na versão XPS para o IDS ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp?topic=/com.ibm.relnotes.doc/notes/ifx_1170xc1/ids_unix_relnotes_11.70.html"&gt;Notas da release &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Recursos de particionamento de tabelas com LIST , INTERVAL e mantem o ROBIN e EXPRESSION.&lt;br /&gt;- Não tem mais limite de extents # Execelente , porém requer cuidados com a fragmentação.&lt;br /&gt;- Não é necessario mais criar usuarios no sistema operacional&lt;br /&gt;- Gerenciador automatico de storege&lt;br /&gt;- Definir tamanho de extent para indice # Isso vai ser muito util&lt;br /&gt;- Atualização do Informix eliminando o down time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-3385657288896986346?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/3385657288896986346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/3385657288896986346'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/10/nova-versao-do-informix-117.html' title='NOVA VERSÃO DO INFORMIX  11.7'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-5438273396628391061</id><published>2010-10-06T13:53:00.000-07:00</published><updated>2010-10-06T14:16:24.863-07:00</updated><title type='text'>LOGICAL LOG - INFORMIX</title><content type='html'>O que é logical LOG ?&lt;br /&gt;&lt;br /&gt;Em varios dos tutoriais que estão neste blog o nome LOGICAL LOG aparece por  varias vezes ... este material abaixo tem como finalidade explicar:&lt;br /&gt;&lt;br /&gt;   -  O que é Logical Log&lt;br /&gt;   - Localização dos arquivos de logical Log&lt;br /&gt;   - Identificação dos arquivos de logical&lt;br /&gt;   -  Status e flags dos arquivos de Logical Log&lt;br /&gt;   - Tamanho do Logical Log &lt;br /&gt;   - Numero de arquivos de logical Log &lt;br /&gt;   -Considerações de performance&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;OBSERVAÇÃO:&lt;/em&gt;&lt;/strong&gt; Para monitorar e acompanhar o Logical Log deve ser utilizado o comando &lt;em&gt;"onstat -l"&lt;/em&gt; , para movimentar o Logical Log &lt;em&gt;"onmode -l"&lt;/em&gt; e para configirar o logical Log (Adicionar, deletar, modificar) o comando "&lt;em&gt;onparams"&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;O que é Logical Log:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt; O Logical Log mantém o hitorico de transações da instancia de todas as mudanças ocorridas desde o ultimo backup executado (nivél 0,1 ou 2) ,o INFORMIX gera logicais logs conforme transações com o banco são efetuadas. &lt;br /&gt;O INFORMIX armazena registros dos logicais logs que são construidos de forma circular através de arquivos criados dentro do chunk destinado ao Logical Log.&lt;br /&gt;Os logicais logs podem ser compostos de 3 ou mais arquivos de logs definidos dentro do Chunk&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;ATENÇÃO:&lt;/em&gt;&lt;/span&gt; quando o banco é inciado pela primeira vez o logical log está contido no rootdbs e precisa ter no minimo 3 logs para funcionar.&lt;br /&gt;&lt;br /&gt; O ultimo backup mais todos os arquivos de logical log gerados formam a base de dados completa (em caso de uma necessidade de restauração de backup será através do ultimo backup (0,1,2) mais os logicais logs que a base de dados será restaurada para o momento mais proximo da cena necessaria&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;ATENÇÃO:&lt;/span&gt; Não confundam os logicais logs existentes no chunk com o backup de LOG, cada vez que um logical log é completado é gerado um arquivo de backup do LOG ... Se o intuito é estar tendo backup de log para estar seguro que quando houver um evento que gere a necessidade de restaurar o  backup possamos chegar no ponto mais proximo possivél do desejado então considere que logical log muito grande vai tornar ineficiente e logical log muito pequeno vai tornar muito custoso administrar e compromete a performance então existe um ponto de equilibrio. &lt;br /&gt;&lt;br /&gt;   A cada vez que o logical log é compeltado o seu uso e passa para o proximo arquivo de log é gerado um arquivo para uma area de despejo de arquivos (diretorio do sistema ) pré definida nos parametros do Onconfig contendo todas as transações ocorridas no logical Log.  &lt;br /&gt;Caso não seja feito  gerenciamento do backup dos arquivos de log regularmente o INFORMIX irá parar de funcionar suspendendo todos os processos, até regularizar o backup.&lt;br /&gt;&lt;br /&gt; Caso não exista interesse de manter o backup do logical Log armazenado deve então mandar para uma area nula /dev/null que o informix entenderá que está sendo feito e evita o travamento.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Gerenciar o backup dp logical Log inclui algumas tarefas:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt; -- na versão 11 foi feita algumas melhorias onde o backup pode ser feito direto para um diretorio vazio onde o proprio informix cria os arquivos, pode ser configurado o gerenciamento pelo ALARMEPROGRAM&lt;br /&gt;&lt;br /&gt;    - Escolher um local para ser depositado o logical Log.   &lt;br /&gt;    - Monitorar o status dos logical Log&lt;br /&gt;    - Ter sempre espaço disponivél para o depejo dos novos logicais Logs.  &lt;br /&gt;    - Alocar adicionais arquivos de log sempre que necessario.  &lt;br /&gt;    - backup do logical Log para media &lt;br /&gt;    -  Localização dos arquivos de Logical Log&lt;br /&gt;&lt;br /&gt; Quando o banco de dados é instalado o Logical Log é criado pelo INFORMIX no root dbspace assim como o Physical Log também é criado. Por motivos de performance para diminuir o numero de escritas e gravações no root dbspace é recomendado mover os logicais logs para outro dbspace &lt;br /&gt;Para melhorar performance já prevendo uma situação futura o logical log pode ser dividido em 2 grupos de arquivos em discos separados (Não vou me aprofundar neste assunto neste material,veremos isso em outro tutorial mas saiba que é possivél e recomendado)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Identificação dos arquivos de logical Log&lt;/em&gt;&lt;br /&gt; &lt;br /&gt; cada arquivo de logical log tem um unico numero de identificação "uniqid", já sabemos que o Logical Log é circular ou seja : temos 6 Logical Log começando do numero 1 "number" que vai até o numero 6 "number" o INFORMIX é inicado então começa a gravar as transações no LOG 1 e conforme vai sendo completado o LOG vai vançando para os demais LOG como temos 6 arquivos de LOG quando ele chegar no de numero 6 ele vai retornar e utilizar o de numero 1 novamente porém o numero de "uniqid" será progressivo ou seja no primeiro ciclo o de numero 6 quando for ser utilizado pela segunda vez receberá o nuemro 7 na terceira vez 14 e assim por diante.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Status e flags dos arquivos de Logical Log&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;A primeira posição do Logical Log sempre será representada pelos status:  A (adicionar) , D (deletar) , F (Free) , U (Used)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Tamanho do Logical Log :&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;O tamanho minimo para o arquivo de logical log é 200 kilobytesO tamanho maximo para o arquivo de logical log é 1048576 paginas (equivalente a 0X100000)&lt;br /&gt;Numero de arquivos de logical Log&lt;br /&gt;O INFORMIX requer no minimo 3 logical Log e pode ter no maximo 32767 arquivos de logical log.&lt;br /&gt;O numero de log vai depender do tamanho dos arquivos de log (em simpes palavras, podemos ter um dbspace de 2 GB com 1 unico logical log de 2GB como podemos ter uma area de 2GB dividida em varios logical log de 15 MB)&lt;br /&gt;&lt;br /&gt;O numero de arquivos de logical log e seus tamanho e a quantidade de transações vai influenciar diretamente na frequencia de backup de log, checkpoints .&lt;br /&gt;&lt;br /&gt;-- Existe um calculo para chegar no tamanho e quantidade de log necessario para o servidor.&lt;br /&gt;&lt;br /&gt;         &lt;span style="color:#000099;"&gt;LOGSIZE = (connections * maxrows * rowsize) / 1024) / LOGFILES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; - connections &gt; utilize "onstat -u" e pegue a informação maximum concurrent&lt;br /&gt; - maxrows &gt; Numero maximo de linhas previstas para serem atualizadas em uma unica transação&lt;br /&gt; - rowsize&gt;  o tamanho médio de uma linha em bytes.&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#000099;"&gt;total logical log space = LOGFILES * LOGSIZE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;para saber as informações existentes atuais de "LOGFILES" e "LOGSIZE" utilize o "onstat -l"&lt;br /&gt;&lt;br /&gt;Obs: O size apresentado no "onstat -l" vai mostrar em paginas para saber o tamanho da pagina criada utilize "onstat -b" para chegar no resultado em KB multiplique o SiZE pelo tamanho do (Buffer size  / 1024)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-5438273396628391061?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5438273396628391061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/5438273396628391061'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/10/logical-log-informix.html' title='LOGICAL LOG - INFORMIX'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-666110047962927685</id><published>2010-10-04T11:53:00.000-07:00</published><updated>2010-10-05T09:27:53.904-07:00</updated><title type='text'>CONFIGURAÇÃO I</title><content type='html'>Vamos falar neste tutorial das configurações básicas que podem ser feitas após a instalação do IDS.&lt;br /&gt;&lt;br /&gt;- Criar dbspaces&lt;br /&gt;- Configurar dbspace Logical Log&lt;br /&gt;- Configurar dbspace Phisical Log&lt;br /&gt;- Configurar dbspace temporario&lt;br /&gt;&lt;br /&gt;Para o IDS inicializar pela primeira vez ele requer uma área reservada para Logical Log e Phisical Log, no momento da sua primeira inicialização este espaço é reservado junto ao rootdbs. (veja a matéria explicando o que é logical Log e Phisical Log ) . é necessario existir o minimo de 3 logical log senão o banco não irá inicializar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; Relembrando o tutorial de instalação 02 , teremos no arquivo onconfig uma configuração de path e size do rootdbs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O que vamos fazer agora é desvincular o Logical Log e phisical Log do rootdbs entregando para esses dois objetos áreas reservadas e exclusivas para eles.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Criar arquivos vazios de dados:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; neste tutorial estamos criando esses espaços por arquivos mas certamente se pensarmos em performance iríamos utilizar rawdevices.&lt;br /&gt;&lt;br /&gt;Relembrando: A minha escolha para o local dos arquivos de dados foi de utilizar o diretório /opt/ifmxdata -- eu escolhi esse diretório mas isso não é uma regra.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Comentario:&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; eu gosto de organizar os nomes do chunk seguindo uma lógica que eu sigo em quase todos os lugares onde eu trabalho com IDS, mas é uma convenção e não uma exigência, vou explicar a minha regra de formação de nome.&lt;br /&gt;&lt;br /&gt;Dbs = indica que o espaço é do tipo dbspace&lt;br /&gt;&lt;nome&gt;&lt;nome&gt;nome do dbspace= identifico a finalidade do chunk como exemplo dbs_llog_dat.000 o llog seria o nome do tipo do chunk que relaciono como sendo logical log , se fosse dbs_plog_dat.000 seria phisical Log ou se fosse dbs_temp1_dat.000 seria temporário.&lt;br /&gt;Dat = Relaciono que é um arquivo de dados.&lt;br /&gt;000 = Numero do Chunk do dbspace , um único dbspace pode ter vários chunk então conforme vamos adicionando chunk esse numero é incrementado uma unidade (000, 001, 002 ...)&lt;br /&gt;&lt;br /&gt;Maneira como eu faço a construção dos nomes : # reforçando este é o meu padrão, funcionaria com outros nomes sem nenhum problema, sejam criativos !&lt;br /&gt;&lt;br /&gt;dbs_llog_dat.000 # Logical Log&lt;br /&gt;dbs_plog_dat.000 # Phisical Log&lt;br /&gt;dbs_temp1_dat.000 # temporario&lt;br /&gt;dbs_dados_dat.000 # dados&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Vamos agora criar então os arquivos de chunk :&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ touch /opt/ifmxdata/dbs_llog_dat.000&lt;br /&gt;$ touch /opt/ifmxdata/dbs_plog_dat.000&lt;br /&gt;$ touch /opt/ifmxdata/dbs_temp1_dat.000&lt;br /&gt;$ touch /opt/ifmxdata/dbs_dados_dat.000&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Explicação: temos criado arquivos no sistema operacional, até o momento o banco de dados não está utilizando e nem sabe que existe esses espaços.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;Comentario adicional:&lt;/span&gt; Se estivessemos trabalhando com Rawdevices ao inves de criar o arquivo vazio fariamos link simbolico para o raw que estaria montado através do serviço do rawdevices , lembrando que poderiamos apontar mais de um cunk a unico raw, é importante saber o tamanho fisico existente em cada raw , caso tenha mais de 1 chunk apontado para o mesmo raw vai então utilizar o offset para separar os espaços...&lt;br /&gt;&lt;br /&gt;Ex:&lt;br /&gt;&lt;span style="color:#993300;"&gt;      $ ln -s /dev/raw/raw1 rootdbs&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;      $ ln -s /dev/raw/raw1 dbs_plog_dat.000 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;      $ ln -s /dev/raw/raw2 dbs_llog_dat.000&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;      $ ln -s /dev/raw/raw3 dbs_temp1_dat.000 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;      $ ln -s /dev/raw/raw4 dbs_dados_dat.000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;## O exemplo acima é somente em caso de utilizar rawdevices, não estamos fazendo essa pratica  neste tutorial apenas estou demonstrando mais uma opção. (considere o uso do Rawdevice para melhor performance)&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Definindo espaço para ser utilizado:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Com base nos arquivos criados no passo acima vamos atuar agora em entregar esses arquivos para o banco de dados e também definir espaço.&lt;br /&gt;&lt;br /&gt;Iremos ver agora mais um comando do INFORMIX, esse comando é responsável pelo gerenciamento de espaço (Criar, excluir , adicionar) como padrão do informix em quase todos os comandos se quiser verificar os atributos de comando execute onspaces –&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sintaxe completa do comando que vamos usar agora:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Onspace { -c { -d &lt;dbspace&gt;[-k &lt;pagesize&gt;] [-t]&lt;br /&gt;-p &lt;path&gt;-o &lt;offset&gt;-s &lt;size&gt;[-m &lt;path&gt;&lt;offset&gt;] }&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sintaxe que vamos usar:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Onspaces { –c -d &lt;dbspace&gt;&lt;br /&gt;-p &lt;path&gt;-o &lt;offset&gt;-s &lt;size&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Resumida explicação das Sintaxe do onspaces:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;-c = Criar novo dbspace (Só utilizado quando vamos criar um novo dbspace, em casos de adicionar novos chunks esse –c é trocado por –a)&lt;br /&gt;-d = nome do dbspace (Na minha convenção eu uso dbs_llog, dbs_plog, dbs_temp1,dbs_dados ...)&lt;br /&gt;-p = caminho onde está o arquivo ou link para o chunk (No meu caso eu uso /opt/ifmxdata/&lt;nome&gt;)&lt;br /&gt;-o = Ponto de inicio de onde deve começar a criar o chunk esse numero vai ser alterado caso no mesmo bloco do disco esteja sendo adicionado mais de 1 único dbspace.&lt;br /&gt;-s = tamanho do dbspace em Kb&lt;br /&gt;-t = define o dbspace como temporário&lt;br /&gt;&lt;br /&gt;Antes de criar é importante traçar um plano de espaços que serão adicionados.&lt;br /&gt;&lt;br /&gt;Phisical Log , vamos criar com 400Mb&lt;br /&gt;Logical Log , vamos criar com 500MB&lt;br /&gt;Temporario1, Vamos criar com 500MB&lt;br /&gt;Dados, Vamos criar com 1GB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Antes de efetuar a criação execute o comando osntat –d # Esse comando vai mostrar a você a situação atual dos dbspaces, neste momento só teremos o rootdbs&lt;br /&gt;Execute também um&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Criando:&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onspaces –c –d dbs_plog –p /opt/ifmxdata/dbs_plog_dat.000 –o 0 –s 400000&lt;br /&gt;$ onspaces –c –d dbs_llog –p /opt/ifmxdata/dbs_llog_dat.000 –o 0 –s 500000&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onspaces –c –d dbs_temp1 –t –p /opt/ifmxdata/dbs_temp1_dat.000 –o 0 –s 500000&lt;/span&gt; # esse tem o parâmetro –t que indica ser um dbspace temporário.&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onspaces –c –d dbs_dados –p /opt/ifmxdata/dbs_dados_dat.000 –o 0 –s 1000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Execute agora o onstat –d novamente e veja que o banco já tem agora os espaços criados.&lt;br /&gt;Seria legal também executar um ls –lh e verificar que os arquivos estão todos com o o tamanho que definimos ...&lt;br /&gt;&lt;br /&gt;Bem agora temos espaços adicionados para o banco, mas o banco ainda não sabe para qual finalidade é cada espaço vamos então agora fazer algumas configurações para dizer ao banco a finalidade de cada um desses espaços.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Vamos inicialmente trabalhar o logical Log&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Antes de qualquer mudança executem o comando onstat –l , com este comando será listado o Logical Log .&lt;br /&gt;&lt;br /&gt;Observe que teremos 6 logicais Log e na coluna “Begin” o inicio será 1:XXXXX esse numero 1 representa que ele está fisicamente construído no dbspace 1, veja quem é o dbspace 1 com o comando onstat –d . Se fosse 2:XXXX teríamos o logical log no dbspace numero 2 se 3:XXXX seria no dbspace 3 e assim por diante, vale lembrar que posso criar logical log em dbspaces distintos , veremos mais adiante quando for ser criado .&lt;br /&gt;&lt;br /&gt;Resposta: O dbspace 1 é o rootdbs , lembra que falei um pouco mais acima que o logical log e phisical log seriam criados fisicamente no roodbs então está ai a comprovação.&lt;br /&gt;&lt;br /&gt;Vamos então fazer a alteração do logical log do dbspace 1:XXXX (rootdbs) para o dbspace 2:XXXXX (dbs_llog)&lt;br /&gt;&lt;br /&gt;Veremos agora mais 1 comando onparams, esse comando também exibe a sintaxe através do comando onparams -- , o onparans vai permitir criar, apagar e mover logical log .&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sintaxe que vamos utilizar:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Onparams&lt;br /&gt;-a -d &lt;dbspace&gt;[-s &lt;size&gt;]&lt;br /&gt;&lt;br /&gt;-a = adicionar arquivo de logical log&lt;br /&gt;-d = dbspace , nome do dbspace que receberá os arquivos de logical log&lt;br /&gt;-s = tamanho do arquivo de logical log # Neste tutorial estarei criando com o tamanho de 15MB , mas existe uma conta para definir este tamanho , logical log muito grande pode ser problema e logical log muito pequeno pode ser problema tem um tamanho certo , lembrem-se.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –a –d dbs_llog –s 15000&lt;/span&gt; (6 vezes)&lt;br /&gt;&lt;br /&gt;Vamos repetir esse comando por 6 vezes .&lt;br /&gt;&lt;br /&gt;$onstat –l&lt;br /&gt;&lt;strong&gt;Comentário:&lt;/strong&gt; esse comando onstat –l estará mostrando que temos agora 12 arquivos de logical log criados sendo que 6 pertencem ao dbspace rootdbs e 6 pertencem ao dbspace dbs_llog&lt;br /&gt;&lt;br /&gt;Teremos então que movimentar o cursor do logical log até a posição 7 para que possamos então excluir os 6 primeiros logical log ficando apenas com os novos .&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –l&lt;/span&gt; (execute esse comando por 6 vezes)&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –c&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onstat –l&lt;/span&gt; # veja que o cursor estará no logicalLog de numero 7&lt;br /&gt;&lt;br /&gt;Excluindo os 6 primeiros logs que estão construídos dentro do rootdbs&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sintaxe excluir logical log:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;onparams&lt;br /&gt;{ -d -l &lt;log&gt;[-y] }&lt;br /&gt;&lt;br /&gt;-d = excluir (drop)&lt;br /&gt;-l = numero do logical log&lt;br /&gt;-y = Confirmação automática&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 1 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 2 –y&lt;/span&gt; # Excluindo 2 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 3 –y&lt;/span&gt; # Excluindo 3 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 4 –y&lt;/span&gt; # Excluindo 4 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 5 –y&lt;/span&gt; # Excluindo 5 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 6 –y&lt;/span&gt; # Excluindo 6 logical Log&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$onstat –l # Observe que teremos agora apenas 6 Logical Log porém eles estão com o numero 7,8,9,10,11,12&lt;br /&gt;&lt;br /&gt;Adicionar então 6 novos logicais Log&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –a –d dbs_llog –s 15000&lt;/span&gt; (6 vezes)&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onstat –l&lt;/span&gt; # veja que temos agora 12 logical log porém o de numero 1 começa após o de numero 7 .&lt;br /&gt;&lt;br /&gt;O passo asseguir não é necessário pois essa numeração é apenas organizacional não irá atrapalhar em nada o funcionamento, mas eu como sendo chato e querendo que quem esteja seguindo esse tutorial pratique vou então arrumar essa sequencia exluindo os logicais de 7 – 12&lt;br /&gt;&lt;br /&gt;Leve o cursos até o logical Log 1&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –l&lt;/span&gt; (execute esse comando por 6 vezes)&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –c&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#993300;"&gt;$ onstat –l&lt;/span&gt; # veja que o cursor estará no logicalLog de numero 1&lt;br /&gt;&lt;br /&gt;Excluir o logical log da posição 7 até a 12&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 7 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 8 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 9 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 10 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 11 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –d –l 12 –y&lt;/span&gt; # Excluindo 1 logical Log&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onstat –l&lt;/span&gt; # veja que o cursor estará no logicalLog de numero 1 e a sequencia de 1 até 6 está correta agora ..&lt;br /&gt;&lt;br /&gt;Então agora é só adicionar a quantidade de logical Log que precisamos, lembrando que a área de logical log definida no inicio do tutorial é de 500MB então nesta área teremos como adicionar com o tamanho de 15MB a quantidade máxima de 33 Logical Log .&lt;br /&gt;&lt;br /&gt;Temos 6 já criado então falta adicionar 27 para isso então repita o comando abaixo poer 27 vezes ....&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –a –d dbs_llog –s 15000&lt;/span&gt; (27 vezes)&lt;br /&gt;Comentário: Como somos mentes evoluídas deixamos o trabalho repetitivo para outras pessoas vamos montar uma linha para fazer esse comando de uma vez só&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ for i in $(seq 7 33); do onparams -a -s 15000 $i ; done&lt;/span&gt; # Fica essa linha como sugestão, o importante é criar os 27 logical log não importa como o que precisa é quando executar onstat –l tenhamos 33 logical log criados e definido o dbspace dedicado a finalidade de acomodar os logical log.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CONFIGURANDO PHYSICAL LOG&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A configuração do Physical Log é feita através do comando onparams o mesmo utilizado para a configuração acima do Logical Log.&lt;br /&gt;&lt;br /&gt;Sintax utilizada para a configuração do Phisical Log&lt;br /&gt;&lt;br /&gt;Onparams&lt;br /&gt;{ -p -s &lt;size&gt;[-d &lt;dbspace&gt;] [-y] }&lt;br /&gt;&lt;br /&gt;-p = Indica que é physical log&lt;br /&gt;-s = tamanho em Kb definido&lt;br /&gt;-d = nome do dbspace&lt;br /&gt;-y = Confirmação automática do comando&lt;br /&gt;&lt;br /&gt;Antes de alterar o dbspace vamos ver com o comando onstat –l o tamanho e local onde está o physical Log.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onstat –l&lt;/span&gt; # Esse comando trás informações do Logical Log e Physical Log , localize no seu arquivo logo no inicio as informações do Physical Log, o que nos interessa neste momento é a coluna e phybegin physize que respectivamente respondem pela informação de onde está o Phisical e qual o tamanho o size é exibido em paginas (o tamanho de paginas que estamos utilizando no dbspace é de 2Kb)&lt;br /&gt;&lt;br /&gt;Physical Logging&lt;br /&gt;Buffer bufused bufsize numpages numwrits pages/io&lt;br /&gt;P-1 4 64 272778 4884 55.85&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;phybegin&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;physize&lt;/span&gt; phypos phyused %used&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;1:53&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;32000&lt;/span&gt; 143881 45 0.03&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –u&lt;/span&gt; # essa alteração exige que seja feita com o banco em quaisent mode&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onparams –p –s 400000 –d dbs_plog –y&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ onmode –m&lt;/span&gt; # Voltar o banco para modo online&lt;br /&gt;Execute o comando onstat –l e veja que teremos mudanças, phybegin agora está com o dbspace 3 e physize está com 400MB (lembrando que o size é exibido em paginas e trabalhamos com paginas de 2k então para tramanho em Kb deve mutiplicar por 2)&lt;br /&gt;&lt;br /&gt;Physical Logging&lt;br /&gt;Buffer bufused bufsize numpages numwrits pages/io&lt;br /&gt;P-2 3 64 272906 4925 55.41&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;phybegin&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;physize&lt;/span&gt; phypos phyused %used&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;3:53&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;200000&lt;/span&gt; 144050 100 0.06&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As alterações automaticamente são escritas no arquivo onconfig PHYSDBS e PHYSFILE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-666110047962927685?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/666110047962927685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/666110047962927685'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/10/configuracao-i.html' title='CONFIGURAÇÃO I'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-1523161988943367954</id><published>2010-09-27T16:40:00.000-07:00</published><updated>2011-04-22T11:53:59.999-07:00</updated><title type='text'>INDENTIFICANDO NUMERO MAXIMO DE EXTENTS</title><content type='html'>Esse assunto abaixo abordado é extenso recomendo que entendam primeiramente o que é dbspace, chunk, extent , sem duvida nenhuma a maneira como os dados irão ser construidos faz grande diferença principalmente para performance e elimina também trabalhar reativamente. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;Comenatrio:&lt;/span&gt;&lt;/b&gt; &amp;nbsp;A versão 11.7 não tem mais limitação de números de extents , mas não é por isso que vamos deixar nossos objetos serem construídos de forma desordenada e sem controle até porque isso influencia diretamente na performance.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff6600;"&gt;Considerações iniciais :&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Uma das tarefas do DBA é admistrar o numero de extents que as tabelas estão utilizando, caso essa administração não seja feita certamente em algum momento teremos uma mensagem -136 no more extentsque será retornado após a execução de um comando INSERT. &lt;br /&gt;&lt;br /&gt;O que vou escrever abaixo é uma resposta a qual busquei por algum tempo, lá traz quando comecei a mexer com informix quando me falaram que o banco precisava ser exportado e importado para reorganizar os extents ... isso nunca entrou na minha cabeça como um banco de dados tão eficiente exige uma manutenção tão radical ... e não tinha explicações nem sobro o que era extents e muito menos como não cair no problema -136 então como muitas coisas fui a luta pesquisar e abaixo estarei passando a explicação de como definir o numero maximo de extents que uma tabela comporta. &lt;br /&gt;&lt;br /&gt;para determinar o numero maximo de extents de uma tabela é uma tarefa muito simples.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Não posso deixar de falar agora neste assunto  apesar de nosso objetivo ser apenas aprender o numero maximo de extents , mas vou falar superficialmente somente para chamar a atenção -- É DE FUNDAMENTAL IMPORTANCIA CONHECERMOS  O BANCO DE DADOS E AS PROJEÇÕES DE CRESCIMENTO DAS TABELAS ... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Os 4 passos abaixo são exatamente o que precisa ser feito para achar o numero maximo de extents. &lt;br /&gt;&lt;br /&gt;1. execute o comando oncheck -pt databaseanme:tablename &lt;br /&gt;2. oncheck -pP &amp;lt;&lt;physical&gt;Physical Address&amp;gt; &lt;br /&gt;3. Additional_extents = trunc (frcnt / 8) &lt;br /&gt;4. Maximum_number_extents = Additional_extents + Number_of_extents &lt;br /&gt;&lt;br /&gt;.... verdade esses 4 passos é simples, mas vamos ter colegas que estão ainda começando a trabalhar com informix que terão ainda certa dificuldade então vamos melhorar o exemplo. &lt;br /&gt;&lt;br /&gt;Vou utilizar no meu exemplo uma tabela chamada "cidade" e uma database com o nome "eli" &lt;br /&gt;&lt;br /&gt;1. execute o comando oncheck -pt databaseanme:tablename &lt;br /&gt;&lt;span style="color: #993300;"&gt;$ oncheck -pt eli:estoque more&lt;/span&gt; &lt;span style="color: #003300;"&gt;# estou usando more pois o que me intereça é o começo do retorno ..&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Retorno do comando : &lt;br /&gt;&lt;br /&gt;TBLspace Report for eli:eis.cidade &lt;br /&gt;&lt;span style="color: red;"&gt;Physical Address 5:487&lt;/span&gt; Creation date 11/23/2009 19:58:07 TBLspace Flags 801 Page Locking TBLspace use 4 bit bit-maps Maximum row size 26 &lt;br /&gt;Number of special columns 0 &lt;br /&gt;Number of keys 0 &lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Number of extents 1&lt;/span&gt; &lt;br /&gt;Current serial value 1 &lt;br /&gt;Pagesize (k) 2 &lt;br /&gt;&lt;span class="Apple-style-span" style="color: #ffcc33;"&gt;First extent size 8 &lt;br /&gt;Next extent size 8&lt;/span&gt; &lt;br /&gt;Number of pages allocated 8 &lt;br /&gt;Number of pages used 3 &lt;br /&gt;Number of data pages 2 &lt;br /&gt;&lt;span class="Apple-style-span" style="color: #ffcc33;"&gt;Number of rows 69&lt;/span&gt; &lt;br /&gt;Partition partnum 5242932 &lt;br /&gt;Partition lockid 5242932 &lt;br /&gt;&lt;br /&gt;Extents Logical Page Physical Page Size Physical Pages 0 5:831 8 8 &lt;br /&gt;&lt;br /&gt;&lt;/physical&gt;&lt;br /&gt;&lt;div&gt;&lt;physical&gt;&lt;span class="Apple-style-span" style="color: #33cc00;"&gt;Comentario:&lt;/span&gt; No retorno acima está evidenciado na cor vermelha as informações as quais são necessarias para chegarmos no resultado que este tutorial propoe. &lt;/physical&gt;&lt;/div&gt;&lt;div&gt;&lt;physical&gt;   Na cor amarela está evidenciado informações interessantes para serem observadas as quais iremos trabalhar em outras postagens. &lt;br /&gt;&lt;br /&gt;2. oncheck -pP &lt;physical&gt; &lt;br /&gt;&lt;span style="color: #993300;"&gt;$ oncheck -pP 5 487 more&lt;/span&gt; #&lt;span style="color: #003300;"&gt; estou usando more pois o que me intereça é o começo do retorno. &lt;/span&gt; &lt;br /&gt;&lt;span style="color: #003300;"&gt; &lt;br /&gt;&lt;/span&gt;addr stamp chksum nslots flag type frptr &lt;span class="Apple-style-span" style="color: red;"&gt;frcnt&lt;/span&gt; next prev &lt;br /&gt;5:487 -892218219 1fa6 5 802 PARTN 160 &lt;span class="Apple-style-span" style="color: red;"&gt;1864&lt;/span&gt; 0 0 &lt;br /&gt;&lt;br /&gt;slot ptr len flg 1 24 92 0 2 116 28 0 3 144 0 0 4 144 0 0 5 144 16 0 &lt;br /&gt;&lt;br /&gt;&lt;/physical&gt;&lt;/physical&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #33cc00;"&gt;Comentario:&lt;/span&gt; No retorno acima está evidenciado na cor vermelha as informações as quais são necessarias para chegarmos no resultado que este tutorial propoe. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;physical&gt;&lt;physical&gt; &lt;br /&gt;3. Additional_extents = trunc (frcnt / 8) &lt;br /&gt;&lt;br /&gt;Agora já temos todas as informações é só fazer conta &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006600;"&gt;Additional_extents = (1864 / 8) &lt;/span&gt;&lt;/physical&gt;&lt;/physical&gt;&lt;/div&gt;&lt;div&gt;&lt;physical&gt;&lt;physical&gt;&lt;span style="color: #006600;"&gt;Additional_extents = 233&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;4. Maximum_number_extents = Additional_extents + Number_of_extents &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006600;"&gt;Maximum_number_extents = 233 + 1 &lt;/span&gt; &lt;br /&gt;&lt;span style="color: #006600;"&gt;Maximum_number_extents = 234 &lt;/span&gt; &lt;br /&gt;&lt;span style="color: #006600;"&gt; &lt;br /&gt;&lt;/span&gt;BEM SABEMOS AGORA QUE A TABELA "CIDADE" DA DATABASE "ELI" COMPORTA UM NUMERO MAXIMO DE 234 EXTENTS , APÓS ATINGIR ESSE NUMERO VAI ACONTECER O ERRO -166 ... &lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;ATENÇÃO&lt;/span&gt; 234 não é um tamanho é uma quantidade ou seja dentro destes234 posso administrar o tamanho dos extents, passando na criação das tabelas informações de size de extent ... porém esse assunto vamos discutir em outra postagem ... &lt;br /&gt;&lt;br /&gt;&lt;/physical&gt;&lt;/physical&gt;&lt;/div&gt;&lt;div&gt;&lt;physical&gt;&lt;physical&gt; &lt;br /&gt;Quando deixamos o banco de dados alocar os extents de maneira automatica inicialmente ele vai alocar o primeiro extent com 8 KB e vai seguir com a alocação dos demais extents seguindo a logica de quando atingir 16 extents eles dobra o tamanho ou seja o primeiro foi criado com 8KB o decimo setimo terá 16 Kb o vigezimo quinto terá 32 Kb e assim por diante ... mas isso não precisa ser assim podemos tratar esses valores definindo eles na criação da tabela facilmente .. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff9900;"&gt;Dicas:&lt;/span&gt; &lt;br /&gt;1. É importante tenatar criar os extents de maneira contiguos , o que vai limitar o deslocamento da cabeça de leitura. &lt;br /&gt;&lt;br /&gt;2. Quando possivél coloque as tabelas em dbspaces separados. &lt;br /&gt;&lt;br /&gt;3. Verifique constantemente como os extents estão distribuidos no dbspace , para isso utilize o comando &lt;em&gt;&lt;span style="color: #33cc00;"&gt;oncheck -pe &lt;nome&gt;&lt;/nome&gt;&lt;/span&gt;&lt;/em&gt;, tabelas que estejam com extents muito intercalados não é ideal e requer uma grande atenção para não se tornar problema . &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ffcc33;"&gt;Como pode eliminar o problema de extents intercalados ?&lt;/span&gt; &lt;br /&gt;1. Reorganizar as tabelas exportando dados e importando (isso requer recriar a tabela) &lt;br /&gt;2. Criar ou alterar um índice de cluster. &lt;br /&gt;3. Use o ALTER TABLE FRAGMENT &lt;br /&gt;&lt;/physical&gt;&lt;/physical&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Em outras postagens neste BLOG vai existir mais conteudo sobre o assunto extent , fragmentação .. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-1523161988943367954?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1523161988943367954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/1523161988943367954'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/09/indentificando-numero-maximo-de-extents.html' title='INDENTIFICANDO NUMERO MAXIMO DE EXTENTS'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-7943240952104486348</id><published>2010-08-24T11:44:00.000-07:00</published><updated>2010-08-24T12:01:28.794-07:00</updated><title type='text'>BACKUP - ONTAPE</title><content type='html'>Quando comecei a reunir as informações para escrever esse tutorial fiz uma grande reflexão e percebi que o quanto esse assunto que vou escrever é serio.&lt;br /&gt;pensei bastante sobre os ultimos anos de minha vida profissional e posso dizer que o mal uso sobre as praticas e políticas de backup as quais a grande maioria dos clientes que atendi nos ultimos anos se submetiam me truxeram grandes desgastes , então resolvi começar esse tutorial falando português muito claro.&lt;br /&gt;&lt;br /&gt;Backup é o único meio de você reverter uma situação de perca permanente de uma base de dados, sem ele não adianta ficar fazendo cara de bobo, incentivando os profissionais que trabalham com banco de dados com palavras do tipo “você consegue, eu acredito em você” SEM BACKUP num eventual desastre você vai ficar sem dados não tem MAGICA!!!!&lt;br /&gt;&lt;br /&gt;Seus dados não estão na vitrine de nenhuma loja esperando você ir comprá-los novamente após você perde-los, não tem nenhuma loja no comercio que terá um produto chamado “Seus dados íntegros e seguros”&lt;br /&gt;&lt;br /&gt;Se roubarem seu servidor, se pegar fogo, se acontecer qualquer problema com seu hardware você consegue comprar outro agora seus dados não estão dentro de uma caixinha na vitrine de nenhuma loja esperando por vocês, então trate seu backup com muita atenção, não precisa investir milhões, basta apenas cuidar para ele estar em local seguro e integro ação que você vai conseguir muito provavelmente somente com mão de obra do dia a dia sem necessidade de tornar o backup um acontecimento , é rotina ... mas rotina fundamental.&lt;br /&gt;&lt;br /&gt;Detalhe importante... Teste periodicamente o seu backup, ninguém quer ter surpresa no momento que precisar restaurar dados, sua única chance de fazer o backup direito é enquanto o banco ainda funciona.&lt;br /&gt;&lt;br /&gt;Bem vamos agora falar da parte técnica do Informix ...&lt;br /&gt;&lt;br /&gt;O Informix assim como outros bancos de dados do mercado tem nativo ferramentas para efetuar o backup e certamente o Informix foi um dos primeiros bancos no mundo a permitir fazer o backup “on-fly”, você vai encontrar o ontape e onbar como ferramentas nativas , neste tutorial vamos falar do ontape que é a ferramenta mais simples de ser utilizada e muito funcional.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;O que vamos falar:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Configurando o ambiente&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Configurando o ambiente&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O backup de um banco de dados é a extração de todos os dados para um arquivo que poderá ser armazenado em local seguro, então se vai ser extraído os dados para ser guardado isso nos leva a dedução obvia que um local físico deve existir para esse backup ser armazenado.&lt;br /&gt;&lt;br /&gt;Backup pode ser salvo em disco, fita em qualquer unidade montada.&lt;br /&gt;&lt;br /&gt;Para que o backup seja executado o ambiente precisa ser configurado.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ vim $INFORMIXDIR/etc/onconfig&lt;/span&gt; # Arquivo de variáveis de ambiente do Informix&lt;br /&gt;&lt;br /&gt;Localizar: ontape Tape Device Configuration Parameter&lt;br /&gt;&lt;br /&gt;TAPEDEV /opt/informix/backup/fita # Arquivo onde o backup será gerado&lt;br /&gt;TAPEBLK 32&lt;br /&gt;TAPESIZE 2000000 # tamanho Maximo para a geração do backup&lt;br /&gt;&lt;br /&gt;Neste exemplo acima precisa existir os diretório /opt/informix/backup e o arquivo fita, esse arquivo fita precisa estar com permissão 660, veja bem o diretório você pode definir qual queira e o nome do arquivo também desde que os mesmos estejam devidamente configurados no onconfing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Caso o diretório e arquivo não exista vamos criar e dar permissões:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ mkdir –p /opt/informix/backup&lt;/span&gt; # Criando diretório&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ touch opt/informix/backup/fita&lt;/span&gt; # criando arquivo vazio&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ Chow informix:informix opt/informix/backup –R&lt;/span&gt; # Mudando grupo e usuario&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ chmod 777 opt/informix/backup&lt;/span&gt; # Mudando permissão da pasta&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ chmod 660 opt/informix/backup/fita&lt;/span&gt; # Mudando permissão do arquivo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt; Caso não queira que o backup seja salvo em nenhum local deve colocar o prametro TAPDEV como /dev/null (Isso vai fazer com que o backup seja enviado para nenhum lugar)&lt;br /&gt;Com estas configurações estamos preparando o ambiente para efetuar backup de nível 0, 1 ou 2 de toda a instancia até o logical log que o banco se encontre no termino do backup e de forma “on-fly”&lt;br /&gt;&lt;br /&gt;O banco de dados conforme vai sendo movimentado vai transacionando dados nos chamados Logicais Logs que podem também ser feitos backup e num momento de restore pode ser aplicado para complementar o ultimo nível de backup existente, buscando a restauração no ponto mais próximo do desastre, assim como o backup full precisamos definir no ambiente onde efetuaremos o backup dos logicais logs. &lt;em&gt;(vamos ainda falar sobre niveis de backup não se preocupe com isso agora)&lt;br /&gt;&lt;/em&gt;Detalhe muito interessante , na versão 11 o informix não exige mais que se tenha um arquivo vazio para backup de Logical Log, basta ter o diretório definido que o banco cria os arquivos de backup de log. (Com algumas configurações no alarmeprogram.sh faremos isso automaticamente)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ vim $INFORMIXDIR/etc/onconfig&lt;/span&gt; # Arquivo de variáveis de ambiente do Informix&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LTAPEDEV /opt/informix/backup/logs&lt;br /&gt;LTAPEBLK 32&lt;br /&gt;LTAPESIZE 15000&lt;br /&gt;&lt;br /&gt;Caso o diretório não exista então vamos criar&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;$ mkdir /opt/informix/backup/logs&lt;/span&gt; # Criando diretório&lt;br /&gt;$&lt;span style="color:#993300;"&gt; chmod 660 opt/informix/backup/logs&lt;/span&gt; # Mudando permissão da pasta&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt; Na versão 11 do IDS tivemos algumas evoluções interessantes do ONTAPE uma delas que vou ressaltar é o backup de log ser gerado em diretório vazio sem a necessidade de arquivos vazios e com algumas poucas configurações conseguiremos eliminar a necessidade de scripts para ficar criando e renomeado arquivos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Cuidados a serem tomados:&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Verificar se vai existir espaço físico suficiente para a gravação de todos os dados no ponto onde vai ser efetuado o backup&lt;br /&gt;Verificar se o caminho configurado corresponde a pasta e arquivos existentes.&lt;br /&gt;Backup não fica em disco então deve ser copiado para local seguro, não recomendo o backup direto para unidade de fita devido ao baixo I/O que certamente irá comprometer a performance do banco de dados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bom até este ponto temos o ambiente configurado para efetuar backup&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-7943240952104486348?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7943240952104486348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7943240952104486348'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/08/backup-ontape.html' title='BACKUP - ONTAPE'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-8417874745250466301</id><published>2010-08-17T09:53:00.000-07:00</published><updated>2010-08-17T13:54:02.930-07:00</updated><title type='text'>INSTALAÇÃO DO INFORMIX - PARTE 02</title><content type='html'>O fato de ter executado o instalador do informix na parte 01 do tutorial não quer dizer que temos o IDS pronto para ser utilizado, iremos precisar agora efetuar algumas configurações para que a instancia possa ser inicializada.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;-Criar diretorio de dados:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;&lt;/span&gt;&lt;span style="color:#cc6600;"&gt;$ mkdir /opt/ifmxdata &lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#33cc00;"&gt;# Criar diretorio de dados local de minha preferencia&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#003300;"&gt;Comentario:&lt;/span&gt; o local do diretorio de dados é uma escolha não uma regra, nas minhas inatalações na grande maioria irão encontrar esses diretorio em /opt/ifmxdata, no nosso caso estamos usando maquinas virtuais que não serão produção então não estamos efetuando uma instalação visando performance ... quando penso em ambiente de produção sempre procuro utilizar uma partição de dados que não faça JOURLING fazendo uso até da partição "ext2" procuro sempre alocar dados por meio de LVM linkando com o rawdevices ... em breve falaremos com mais detalalhes sobre esses assuntos ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Criar arquivo de dados:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;&lt;span style="color:#cc6600;"&gt;&lt;/span&gt;&lt;span style="color:#cc6600;"&gt;$ touch /opt/ifmxdata/rootdbs&lt;/span&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#33cc00;"&gt;# Arquivo exigido para a primeira inicialização do BD&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;Comentario:&lt;/span&gt; será necessario a criação de outros arquivos mas falaremos no decorrer do tutorial, não se esqueçam que estamos fazendo uma instalação usando arquivos se fosse pensar em performance utilizaria rawdevices que esse arquivo seria um link simbolico com um arquivo de raw.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Permissão:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993300;"&gt;&lt;span style="color:#cc6600;"&gt;$ chmod 666 /opt/ifmxdata&lt;/span&gt; &lt;/span&gt;&lt;span style="color:#33cc00;"&gt;# Permissão sob o diretorio &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;&lt;span style="color:#cc6600;"&gt;$ chmod 660 /opt/ifmxdata/rootdbs&lt;/span&gt; # permissão sobre o arquivo&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;Comentario:&lt;/span&gt; O informix implementou um controle maior de segurança para seus arquivos exigindo que algumas diretorios e arquivos tenham permissões mais controladas, em versões anteriores como 7.31 isso não era necessario, existe meios de contornar esse controle de permissão mas isso é outro assunto , no momento vamos atender ao que o IDS exige.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Criar arquivo de configuração:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ cp -v /opt/informix/etc/onconfig.std /opt/informix/etc/onconfig&lt;/span&gt; &lt;span style="color:#33cc00;"&gt;# Arquivo onconfing é responsavél pelas configurações do informix.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;Comentario:&lt;/span&gt; O IDS traz em sua instalação um arquivo de base com o nome onconfig.std, este arquivo estará sempre disponivél em /$INFORMIXDIR/etc&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Alterar usuario e grupo do arquivo de configuração:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ chown informix:informix /$INFORMIXDIR/etc/onconfig&lt;br /&gt;$ chown informix:informix /$INFORMIXDIR/etc/sqlhosts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Editar arquivo de configuração (utilize o editor de texto de sua preferencia, no meu caso será vim)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Criar variavéis de ambiente para o usuario informix&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ vim /home/informix/.bashrc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*** No final do arquivo adicionar o conteuido&lt;br /&gt;&lt;br /&gt;export INFORMIXDIR=&lt;diretorio&gt;&lt;br /&gt;export PATH=$PATH:$INFORMIXDIR/bin&lt;br /&gt;export INFORMIXSERVER=&lt;nome&gt;&lt;br /&gt;&lt;br /&gt;*** Na minha instalação como ficou:&lt;br /&gt;&lt;br /&gt;export INFORMIXDIR=/opt/informix&lt;br /&gt;export PATH=$PATH:$INFORMIXDIR/bin&lt;br /&gt;export INFORMIXSERVER=ferraz&lt;br /&gt;&lt;br /&gt;- Mudar para usuario informix&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ su - informix - editar arquivo de configuração:&lt;br /&gt;$ vim /$INFORMIXDIR/etc/onconfig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;######## Root Dbspace Configuration Parameters ############################&lt;br /&gt;&lt;br /&gt;ROOTNAME rootdbs # Nome do chunk de administração, veja que o arquivo criado tem que ter o mesmo nome.&lt;br /&gt;ROOTPATH /opt/ifmxdata/rootdbs # Colocar o caminho onde está o arquivo criado. ROOTOFFSET 0&lt;br /&gt;ROOTSIZE 200000&lt;br /&gt;MIRROR 0&lt;br /&gt;MIRRORPATH # Deixar em branco , não estamos vendo mirror neste Tutorial MIRROROFFSET 0&lt;br /&gt;&lt;br /&gt;#### System Configuration Parameters ###################################&lt;br /&gt;&lt;br /&gt;SERVERNUM 0&lt;br /&gt;DBSERVERNAME ferraz # nome da sua instancia , no meu caso é ferraz&lt;br /&gt;DBSERVERALIASES&lt;br /&gt;&lt;br /&gt;### ontape Tape Device Configuration Parameters #########################&lt;br /&gt;&lt;br /&gt;TAPEDEV /dev/null # Inicialmente deve deixar desta maneira , mais adiante iremos configurar TAPEBLK 32 TAPESIZE 2000000&lt;br /&gt;&lt;br /&gt;###### ontape Logial Log Tape Device Configuration Parameters ##############&lt;br /&gt;&lt;br /&gt;LTAPEDEV /dev/null # Inicialmente deve deixar desta maneira , mais adiante iremos configurar&lt;br /&gt;LTAPEBLK 32&lt;br /&gt;LTAPESIZE 15000&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ Vim /$INFORMIXDIR/etc/sqlhosts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No final do arquivo deve comentar a linhada instancia demo_on e inserir a linha ferraz (No meu caso esse é o nome da minha instancia)&lt;br /&gt;&lt;br /&gt;#demo_on onipcshm on_hostname on_servername&lt;br /&gt;ferraz onsoctcp 192.168.15.75 1536&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*** A informação acima inserida no arquivo é dividida em 4 partes , esse arquivo aceita até 5 entradas porém a quinta é opcional, vamos entender um pouco mais&lt;br /&gt;&lt;dbservename&gt;&lt;nettype&gt;&lt;hostname&gt;&lt;servicename&gt;&lt;options&gt;&lt;br /&gt;&lt;br /&gt;# dbservername = mesmo nome que se encontra no arquivo onconfig no parametro&lt;br /&gt;DBSERVERNAME # nettype = on # identificação do produto soc # Interface type tcp # protocolo , para o nettype são 8 caracteres ddiiippp&lt;br /&gt;dd = Database product [olondr]&lt;br /&gt;iii = Interface type [ipcsoctlisql]&lt;br /&gt;ppp = Protocol [imcnmpshmspxstrtcpsslmux]&lt;br /&gt;&lt;br /&gt;# hostname = pode ser o IP da maquina ou o host&lt;br /&gt;# servicename = porta de conexão do IDS, recomenda ser criado uma porta em /etc/services e colocado o nome da porta nesta variavél , mas posso dizer que funciona se informar o numero da porta diretamente mas não é recomendado.&lt;br /&gt;# options = opções de conexões , campo não obrigatorio&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Iniciar a instancia do banco de dados.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ oninit -iv&lt;/span&gt; &lt;span style="color:#33cc00;"&gt;# A opção -i só deve ser utilizado na primeira inicialização.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;*** Opção -i = Initialize disk space and shared memory, leave in on-line mode&lt;br /&gt;*** opção -v = Verbose mode: prints all initialization messages&lt;br /&gt;pronto, ativação da instancia concluida , agora é só confirmar se o banco foi inicializado&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;$ onstat -&lt;/span&gt; &lt;span style="color:#33cc00;"&gt;# verifica o status do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Deve retornar algo parecedo com essa mensagem ...&lt;br /&gt;&lt;br /&gt;IBM Informix Dynamic Server Version 11.50.FC7IE -- On-Line -- Up 00:01:14 -- 157384 Kbytes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bem neste momento temos o banco de dados inatalado e inicializado... mas ainda precisamos efetuar alguns ajustes para conseguir ter o servidor em condições de operação , seguiremos com esse assunto no proximo tutorial onde falaremos de DBSpace, Chunk, logical Log, Physical Log, Temporario )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-8417874745250466301?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8417874745250466301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/8417874745250466301'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/08/o-fato-de-ter-executado-o-instalador-do.html' title='INSTALAÇÃO DO INFORMIX - PARTE 02'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-6562917808859914806</id><published>2010-08-02T13:23:00.000-07:00</published><updated>2010-08-03T14:59:02.125-07:00</updated><title type='text'>INSTALAÇÃO INFORMIX - PARTE 01</title><content type='html'>&lt;div align="left"&gt;&lt;em&gt;&lt;strong&gt;INSTALAÇÃO INFORMIX - PARTE 01&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Nosso objetivo e foco neste tutorial &lt;strong&gt;é falar da instalação do INFORMIX&lt;/strong&gt;, então serei o mais objetivo possível para não desviar o assunto, mas deixo a dica que antes de qualquer instalação do Software de banco de dados deve ser pensado e planejado o ambiente onde o banco será instalado, este planejamento envolve hardware, sistema operacional e rede. Como nosso foco neste tutorial é INSTALAÇÃO DO INFORMIX estarei fazendo citações nos pontos onde achar indispensável citar outros assuntos que não seja do INFORMIX.&lt;br /&gt;Os passos abaixo apresentados serão feitos em ambiente LINUX , com SUSE 10 SP3 64Bits instalados numa maquina virtual utilizando o Virtual Box, o modelo abaixo pode ser seguido para instalação em outras distribuições sem problema, em caso de outros sistemas operacionais irão existir variações mas este tutorial pode servir como auxílio e referencia considerando que a instalação são bastante semelhantes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* Símbolos utilizados no Tutorial:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;$ Representa comandos executados pelo Linux&lt;br /&gt;# Representa comentários após linha de comandos&lt;br /&gt;* Tópicos do tutorial&lt;br /&gt;- Subtopicos do Tutorial&lt;br /&gt;*** Explicações técnicas&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* O que vamos fazer nesta parte do Tutorial:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- Preparação do ambiente para instalar o IDS&lt;br /&gt;- Descompactar a versão do IDS&lt;br /&gt;- Instalação do IDS&lt;br /&gt;- Comentários importantes&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* Preparação do ambiente para Instalar o IDS:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- Criar usuário e grupo informix.&lt;br /&gt;&lt;span style="color:#663300;"&gt;             $ groupadd informix&lt;br /&gt;             $ useradd -g informix -d /home/informix -m informix&lt;/span&gt;&lt;span style="color:#993300;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#330099;"&gt;Explicação:&lt;/span&gt;&lt;/em&gt; O INFORMIX exige que tenha o usuário e grupo "informix" não é possível trabalhar com outro nome de usuário, é obrigatório, no INFORMIX não existe usuários criados no banco de dados o banco faz uso dos usuários do sistema operacional.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Criar diretórios onde estará a instalação do INFORMIX (usuário e grupo informix) &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;div align="left"&gt;                  &lt;span style="color:#663300;"&gt; $ mkdir /opt/informix&lt;/span&gt; # este será o diretorio de instalação do INFORMIX&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;*** Esse diretório pode ser criado de acordo com a vontade de quem estiver instalando o IDS, nos meus servidores procuro seguir um padrão para uma melhor administração e meu padrão segue a lógica da arvore de diretórios do LINUX ou seja software de terceiros deve ser no /opt então crio sempre um diretório chamado /opt/informix , estaremos então definindo no nosso tutorial que sempre que me referir a INFORMIXDIR estamos falando de /opt/informix&lt;br /&gt;Comentário: Por padrão na instalação a IBM vai sempre sugerir um diretório /opt/IBM/informix , fiquem a vontade de montar como acharem melhor.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt; os arquivos de dados podem ser do tipo file text, rawdevices, cookies o que é melhor vamos discutir em outra ocasião, no nosso ambiente agora que estamos somente fazendo a instalação do IDS sem e não vamos ter carga de dados vou utilizar o File text , normalmente em ambiente de produção que penso em performance minha escolha seria em rawdevices.&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;* Descompactar a versão do IDS :&lt;/strong&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;- Copiar a versão do IDS para um diretório qualquer, no meu caso vou estar usando um diretório chamado /opt/informix (Diretório que criei manualmente quando preparei o ambiente) &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Origem o diretorio onde esteja a versão baixada, caso a versão já esteja no diretorio desejado não precisa fazer nada. &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="color:#663300;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;span style="color:#663300;"&gt;$ cp -v /iif.11.50.FC7IE.linux-x86_64.tar /opt/informix&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt;&lt;/em&gt; O INFORMIX tem algumas versões free que estão disponíveis para download em &lt;a href="http://www-01.ibm.com/software/data/informix/"&gt;http://www-01.ibm.com/software/data/informix/&lt;/a&gt; , caso já tenha a versão baixada então siga em frente neste tutorial. &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt;&lt;/em&gt; Muita atenção em fazer a escolha da versão que seja compatível com seu ambiente (ex. Sistema operacional , 32 ou 64 Bits).&lt;br /&gt;A versão a qual baixei e que vou utilizar neste tutorial vem num arquivo .tar com o nome &lt;em&gt;&lt;strong&gt;"iif.11.50.FC7IE.linux-x86_64.tar"&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Execute o comando abaixo para descompactar o arquivo. &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="color:#663300;"&gt;$ tar -xvf iif.11.50.FC7IE.linux-x86_64.tar&lt;/span&gt; &lt;em&gt;# Descompactando o arquivo baixado do site da IBM&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Após ser descompactado alguns diretórios e arquivos serão criados abaixo listados:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;.jvm.bin*, CSDK/, ICONNECT/, JDBC/,README.html, SERVER/,bundle.ini, ids_install*, images/, suite.jar*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;* Instalação do IDS:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;*** A instalação do INFORMIX deve ser efetuada com o usuário &lt;span style="color:#ff0000;"&gt;"root"&lt;/span&gt;&lt;br /&gt;***A instalação do INFORMIX exige o JAVA presente, porém a distribuição baixada do site da IBM já traz o pacote do JAVA&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt; particularmente prefiro ter o java previamente instalado, mas isso não é nenhum requisito ou irá facilitar em alguma coisa é somente a maneira que eu acho mais produtivo o trabalho, a decisão fica por conta de quem estiver instalando.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Iniciando a instalação:&lt;br /&gt;&lt;br /&gt;*** Toda a instalação será feita com o usuário “root”, quando for hora de mudar para o usuário “informix” estarei fazendo a citação, caso não esteja com o usuário “root” o instalador do INFORMIX irá abortar a instalação.&lt;br /&gt;&lt;br /&gt;*** Entrar no diretório onde esteja o arquivo descompactado, no nosso caso: (caso tenha duvida onde está pode digitar o comando pwd) &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;&lt;/span&gt;&lt;span style="color:#663300;"&gt;                $ cd /opt/informix&lt;/span&gt; # Entrando no diretório onde estará o arquivo de instalação.&lt;br /&gt;&lt;br /&gt;*** Criar variáveis de ambiente &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="color:#663300;"&gt;              $ export INFORMIXDIR=/opt/informix&lt;/span&gt; # Variavél de ambiente deve apontar para o diretório de instalação do IDS , caso não seja definida essa vaiavél o IDS vai sugerir um diretorio padrão /opt/IBM/informix que pode ser alterado também durante a instalação. &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;Comentário:&lt;/span&gt; Não se esqueçam que esse diretório deve ser previamente preparado na preparação do ambiente e que é de livre escolha o local.&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Caso não faça essa atribuição de variável no momento da instalação o INFORMIX irá sugerir o diretório padrão conforme exemplo abaixo:&lt;br /&gt;&lt;br /&gt;Please specify a directory or press Enter to accept the default directory.&lt;br /&gt;Directory Name: [/opt/IBM/informix] /opt/informix&lt;strong&gt; &lt;em&gt;# estou passando aqui  o diretorio de instalação que eu escolhi, não estou aceitando a sugestão do instalador. &lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color:#006600;"&gt;Comentário:&lt;/span&gt; O INFORMIXDIR deve apontar para o diretório onde o IDS será instalado deve ser um diretório existente no S.O que já criamos na preparação do ambiente, caso tenha escolhido outro diretório deve apontar o INFORMIXDIR para o diretório de sua preferência.&lt;br /&gt;&lt;br /&gt;*** Caso não esteja com o usuário root acontecerá o erro abaixo, não precisa se desesperar é só entrar no root e executar a instalação novamente.&lt;br /&gt;&lt;br /&gt;“ Retorno do IDS em caso de tentativa de execução com usuário diferente do root”&lt;br /&gt;informix@ferraz:/opt/informix&gt; ./ids_install -console&lt;br /&gt;Installation must be run as a user "root" or with administrative&lt;br /&gt;privileges.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Executar o arquivo de instalação com o usuário root&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#663300;"&gt;             $ ./installserver –console&lt;/span&gt; # O informix tem vários modos de instalação sendo que o –cosnole é o defult mas existe –gui , -silent &lt;em&gt;(vamos abordar esses outros modos em outra ocasião vamos usar o default que é o –console)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;*** A partir deste ponto irá aparecer uma seqüência de telas de confirmação e avanços... Vamos partir para uma Instalação típica então confirme tudo, a instalação ira mostrar para você uma progressão em % e irá instalar alguns componentes a mais do que somente o IDS.&lt;br /&gt;&lt;/p&gt;&lt;div align="left"&gt;&lt;em&gt;&lt;span style="color:#ff0000;"&gt;Segue abaixo toda a minha instalação executada na maquina virtual que estou usando como referencia para este tutorial, com todas as opções utilizadas. &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Initializing InstallShield Wizard........&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Extracting Bundled JRE.&lt;br /&gt;&lt;br /&gt;Verifying JVM.&lt;br /&gt;&lt;br /&gt;Version "1.5.0" has been verified.&lt;br /&gt;Launching InstallShield Wizard........&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Release Notes&lt;br /&gt;2. Express Quick Beginnings Guide&lt;br /&gt;3. Launch Information Center&lt;br /&gt;4. Begin Installation&lt;br /&gt;&lt;br /&gt;Please select one of these options [4]&lt;br /&gt;Beginning installation...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;Welcome to the InstallShield Wizard for IBM Informix Dynamic Server Version&lt;br /&gt;11.50 Bundle&lt;br /&gt;&lt;br /&gt;The InstallShield Wizard will install IBM Informix Dynamic Server Version 11.50&lt;br /&gt;Bundle on your computer.&lt;br /&gt;To continue, choose Next.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 2 for Previous, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;Contrato de Licença Internacional para Programas Não Garantidos&lt;br /&gt;&lt;br /&gt;Parte 1 - Termos Gerais&lt;br /&gt;&lt;br /&gt;AO FAZER O DOWNLOAD, INSTALAR, COPIAR, ACEDER, CLICAR NO BOTÃO&lt;br /&gt;"ACEITAR" OU DE QUALQUER OUTRA FORMA UTILIZAR O PROGRAMA, O&lt;br /&gt;LICENCIADO ACEITA OS TERMOS DESTE CONTRATO. SE O CLIENTE ACEITAR&lt;br /&gt;ESTES TERMOS EM NOME DO LICENCIADO, O CLIENTE DECLARA E GARANTE QUE&lt;br /&gt;POSSUI PLENOS PODERES PARA VINCULAR O LICENCIADO A ESTES TERMOS.&lt;br /&gt;CASO O CLIENTE NÃO CONCORDE COM ESTES TERMOS,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* NÃO DEVERÁ FAZER DOWNLOAD, INSTALAR, COPIAR, ACEDER, CLICAR NO&lt;br /&gt;BOTÃO "ACEITAR" NEM UTILIZAR O PROGRAMA; E&lt;br /&gt;&lt;br /&gt;Digite/Prima a tecla Enter para continuar a visualizar o contrato de licença,&lt;br /&gt;ou, Digite/Prima "1" para aceitar o contrato, "2" para rejeitar o contrato ou&lt;br /&gt;"99" para voltar a tela/ecran anterior, "3" Imprimir, "4" Leia os Termos&lt;br /&gt;não-IBM, "5" English.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Prima 1 para Avançar, 3 para Cancelar ou 4 para Ver de novo [1]&lt;br /&gt;IBM Informix Dynamic Server Version 11.50 Bundle Install Location&lt;br /&gt;&lt;br /&gt;Please specify a directory or press Enter to accept the default directory.&lt;br /&gt;&lt;br /&gt;Directory Name: [/opt/IBM/informix]&lt;br /&gt;Press 1 for Next, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;&lt;br /&gt;Searching for products available for install: this may take a few minutes.&lt;br /&gt;&lt;br /&gt;Select the products you would like to install:&lt;br /&gt;&lt;br /&gt;To select/deselect a product or to change its setup type, type its number:&lt;br /&gt;&lt;br /&gt;Product Setup Type&lt;br /&gt;------------------------------------------------ ------------------------&lt;br /&gt;1. [ ] IBM Informix IConnect Version 3.50&lt;br /&gt;2. [x] IBM Informix Client-SDK Version 3.50 Typical&lt;br /&gt;3. [x] IBM Informix Dynamic Server Version 11.50 Typical&lt;br /&gt;4. [x] IBM Informix JDBC Driver Version 3.50&lt;br /&gt;&lt;br /&gt;Other options:&lt;br /&gt;&lt;br /&gt;0. Continue installing&lt;br /&gt;&lt;br /&gt;Enter command [0]&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 2 for Previous, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;&lt;br /&gt;Checking for Server Prerequisites ...&lt;br /&gt;&lt;br /&gt;Do you want to create an IDS demonstration database server instance?&lt;br /&gt;&lt;br /&gt;[ ] 1 - Yes&lt;br /&gt;[X] 2 - No&lt;br /&gt;&lt;br /&gt;To select an item enter its number, or 0 when you are finished: [0]&lt;br /&gt;&lt;br /&gt;You can use a demonstration database server instance to verify that IDS is&lt;br /&gt;installed correctly and that the hardware is configured correctly. You can also&lt;br /&gt;configure the demonstration database server instance to use it as a production&lt;br /&gt;instance.&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 2 for Previous, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;IBM Informix Dynamic Server Version 11.50 Bundle will be installed in the&lt;br /&gt;following location:&lt;br /&gt;&lt;br /&gt;/opt/informix&lt;br /&gt;&lt;br /&gt;with the following features:&lt;br /&gt;&lt;br /&gt;IBM Informix Client-SDK Version 3.50&lt;br /&gt;IBM Informix Dynamic Server Version 11.50&lt;br /&gt;IBM Informix JDBC Driver Version 3.50&lt;br /&gt;&lt;br /&gt;for a total size:&lt;br /&gt;&lt;br /&gt;359.6 MB&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 2 for Previous, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;Installing IBM Informix Client-SDK Version 3.50. Please wait...&lt;br /&gt;&lt;br /&gt;0 % complete&lt;br /&gt;10 % complete&lt;br /&gt;20 % complete&lt;br /&gt;30 % complete&lt;br /&gt;40 % complete&lt;br /&gt;50 % complete&lt;br /&gt;60 % complete&lt;br /&gt;70 % complete&lt;br /&gt;80 % complete&lt;br /&gt;90 % complete&lt;br /&gt;100 % complete&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creating uninstaller...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installing IBM Informix Dynamic Server Version 11.50. Please wait...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creating uninstaller...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installing IBM Informix JDBC Driver Version 3.50. Please wait...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creating uninstaller...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Performing GSKit Installation ...&lt;br /&gt;Performing GSKit installation for Linux ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Branding Installed Files ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Branding Files ...&lt;br /&gt;Installing directory .&lt;br /&gt;Installing directory etc&lt;br /&gt;Installing directory bin&lt;br /&gt;Installing directory lib&lt;br /&gt;Installing directory lib/client&lt;br /&gt;Installing directory lib/client/csm&lt;br /&gt;Installing directory lib/esql&lt;br /&gt;Installing directory lib/dmi&lt;br /&gt;Installing directory lib/c++&lt;br /&gt;Installing directory lib/cli&lt;br /&gt;Installing directory release&lt;br /&gt;Installing directory release/en_us&lt;br /&gt;Installing directory release/en_us/0333&lt;br /&gt;Installing directory incl&lt;br /&gt;Installing directory incl/esql&lt;br /&gt;Installing directory incl/dmi&lt;br /&gt;Installing directory incl/c++&lt;br /&gt;Installing directory incl/cli&lt;br /&gt;Installing directory demo&lt;br /&gt;Installing directory demo/esqlc&lt;br /&gt;Installing directory demo/c++&lt;br /&gt;Installing directory demo/cli&lt;br /&gt;Installing directory doc&lt;br /&gt;Installing directory doc/gls_api&lt;br /&gt;Installing directory doc/gls_api/en_us&lt;br /&gt;Installing directory doc/gls_api/en_us/0333&lt;br /&gt;Installing directory tmp&lt;br /&gt;Installing directory gsk&lt;br /&gt;Installing directory gsk/client&lt;br /&gt;Installing directory gskit&lt;br /&gt;Installing directory gsk&lt;br /&gt;Installing directory gsk/client&lt;br /&gt;&lt;br /&gt;IBM Informix Product: IBM INFORMIX-Client SDK&lt;br /&gt;Installation Directory: /opt/informix&lt;br /&gt;&lt;br /&gt;Performing root portion of installation of IBM INFORMIX-Client SDK...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installation of IBM INFORMIX-Client SDK complete.&lt;br /&gt;&lt;br /&gt;Installing directory etc&lt;br /&gt;Installing directory gls&lt;br /&gt;Installing directory gls/cm3&lt;br /&gt;Installing directory gls/cv9&lt;br /&gt;Installing directory gls/dll&lt;br /&gt;Installing directory gls/etc&lt;br /&gt;Installing directory gls/lc11&lt;br /&gt;Installing directory gls/lc11/cs_cz&lt;br /&gt;Installing directory gls/lc11/da_dk&lt;br /&gt;Installing directory gls/lc11/de_at&lt;br /&gt;Installing directory gls/lc11/de_ch&lt;br /&gt;Installing directory gls/lc11/de_de&lt;br /&gt;Installing directory gls/lc11/en_au&lt;br /&gt;Installing directory gls/lc11/en_gb&lt;br /&gt;Installing directory gls/lc11/en_us&lt;br /&gt;Installing directory gls/lc11/es_es&lt;br /&gt;Installing directory gls/lc11/fi_fi&lt;br /&gt;Installing directory gls/lc11/fr_be&lt;br /&gt;Installing directory gls/lc11/fr_ca&lt;br /&gt;Installing directory gls/lc11/fr_ch&lt;br /&gt;Installing directory gls/lc11/fr_fr&lt;br /&gt;Installing directory gls/lc11/is_is&lt;br /&gt;Installing directory gls/lc11/it_it&lt;br /&gt;Installing directory gls/lc11/ja_jp&lt;br /&gt;Installing directory gls/lc11/ko_kr&lt;br /&gt;Installing directory gls/lc11/nl_be&lt;br /&gt;Installing directory gls/lc11/nl_nl&lt;br /&gt;Installing directory gls/lc11/no_no&lt;br /&gt;Installing directory gls/lc11/os&lt;br /&gt;Installing directory gls/lc11/pl_pl&lt;br /&gt;Installing directory gls/lc11/pt_br&lt;br /&gt;Installing directory gls/lc11/pt_pt&lt;br /&gt;Installing directory gls/lc11/ru_ru&lt;br /&gt;Installing directory gls/lc11/sk_sk&lt;br /&gt;Installing directory gls/lc11/sv_se&lt;br /&gt;Installing directory gls/lc11/th_th&lt;br /&gt;Installing directory gls/lc11/zh_cn&lt;br /&gt;Installing directory gls/lc11/zh_tw&lt;br /&gt;&lt;br /&gt;IBM Informix Product: Gls&lt;br /&gt;Installation Directory: /opt/informix&lt;br /&gt;&lt;br /&gt;Performing root portion of installation of Gls...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installation of Gls complete.&lt;br /&gt;&lt;br /&gt;Installing directory etc&lt;br /&gt;Installing directory msg&lt;br /&gt;Installing directory msg/en_us&lt;br /&gt;Installing directory msg/en_us/0333&lt;br /&gt;&lt;br /&gt;IBM Informix Product: messages&lt;br /&gt;Installation Directory: /opt/informix&lt;br /&gt;&lt;br /&gt;Performing root portion of installation of messages...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installation of messages complete.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please read the information below.&lt;br /&gt;&lt;br /&gt;Set required environment variables&lt;br /&gt;Set $INFORMIXDIR to the directory where the IDS server is installed.&lt;br /&gt;Set $PATH to include $INFORMIXDIR/bin&lt;br /&gt;Set $INFORMIXSERVER to the name of the database server&lt;br /&gt;Set $ONCONFIG to the name of the active onconfig configuration file.&lt;br /&gt;If using a sqlhosts file other than $INFORMIXDIR/etc/sqlhosts&lt;br /&gt;Set $INFORMIXSQLHOSTS&lt;br /&gt;If using a locale/language other than the default&lt;br /&gt;Set $CLIENT_LOCALE&lt;br /&gt;Set $DB_LOCALE&lt;br /&gt;Set $SERVER_LOCALE&lt;br /&gt;Set $DBLANG&lt;br /&gt;Prepare connectivity files&lt;br /&gt;sqlhosts&lt;br /&gt;/etc/hosts&lt;br /&gt;/etc/services&lt;br /&gt;Prepare configuration file&lt;br /&gt;Set DBSERVERNAME&lt;br /&gt;Set SERVERNUM&lt;br /&gt;Set ROOTNAME&lt;br /&gt;&lt;br /&gt;Press ENTER to read the text [Type q to quit]&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;The InstallShield Wizard has successfully installed IBM Informix Dynamic Server&lt;br /&gt;Version 11.50 Bundle. Choose Next to continue the wizard.&lt;br /&gt;&lt;br /&gt;Press 1 for Next, 3 to Cancel or 4 to Redisplay [1]&lt;br /&gt;1. Release Notes&lt;br /&gt;2. Express Quick Beginnings Guide&lt;br /&gt;3. Launch Information Center&lt;br /&gt;4. Finish Installation&lt;br /&gt;&lt;br /&gt;Please select one of these options [4]&lt;br /&gt;Finishing installation...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Press 3 to Finish or 4 to Redisplay [3]&lt;br /&gt;&lt;br /&gt;* COMENTARIOS:&lt;br /&gt;&lt;br /&gt;Até este ponto somente executamos a instalação do IDS veja os próximos TUTORIAIS para aprender a configurar e iniciar o serviço do INFORMIX, até este ponto você tem o IDS instalado apenas, falta algumas etapas. A instalação aqui apresentada é aplicável em quase toda a sua totalidade para distribuições superiores a 7.31 , caso queira instalar versões inferiores a 9.40 teremos algumas mudanças inclusive são dois arquivos binários de instalação nestas distribuições mais antigas... Nada complicado, mas prefiro que se algum leitor tenha essa necessidade me pergunte diretamente por e-mail que passo as dicas (&lt;a href="mailto:elielmferraz.dba@gmail.com"&gt;elielmferraz.dba@gmail.com&lt;/a&gt;) &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-6562917808859914806?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/6562917808859914806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/6562917808859914806'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/08/parte-01-nosso-objetivo-e-foco-neste.html' title='INSTALAÇÃO INFORMIX - PARTE 01'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-178819263884503444</id><published>2010-07-27T10:01:00.000-07:00</published><updated>2010-07-27T10:25:19.268-07:00</updated><title type='text'>Instalação do INFORMIX - Introdução</title><content type='html'>Instalar e configurar o INFORMIX é uma tarefa considerada muito simples e que não exige conhecimento tecnico para a pessoa que for executar, poderiamos dizer que seria uma sequencia de confirmações, existindo um script passo a passo se torna simples e facil, Em uma ocasião ouvi de um consultor de negocio que instalar software é uma regra unica e geral da seguinte maneira: "é só apertar next, next , next e concluido" .... bem não está muito errado se for objetivo apenas instalar o software, a cada dia os instaladores estão ficando mais facieis e praticos, mas num ambiente que necessite de continuidade e que vai ser operado em produção varios cuidados devem ser tomados e diversas copetencias tecnicas passam a ser necessarias, antes de instalar precisa traçar as configurações do servidor que irá suportar o banco de dados o que certamente vai precisa de algumas copetencias tecnicas e visibilidade sobre o negocio, seja para desenhar o ambiente e proceder as intalações ou seja na execução ou definições de projetos para transferir as necessidades para outros profissionais que estarão envolvidos na execução, como nosso intuito é apenas falar do INFORMIX neste tutorial estaremos nos preocupando com alguns aspectos que chamo de ambiente para receber o banco de dados e após a instalação teremos que configurar o INFORMIX que nesta etapa ira necessitar de algumas habilidades do DBA e entendimentos um pouco mais aprofundados, saindo do simples script de "NEXT, NEXT, CONCLUIDO" para um trabalho com muito mais conhecimento.&lt;br /&gt;Estaremos vendo em 2 partes um passo a passo de como fazer uma instalação e configuração do INFORMIX em ambiente LINUX.&lt;br /&gt;Temos que ter conciencia que cuidamos de Administração de banco de&lt;br /&gt;dados e que Servidores é tarefa de tecnicos de Sistema operacionais e rede é responsabilidade de tecnicos de rede , porém sabemos que isso não é uma verdade em grande parte dos cenarios das empresas e que muitas vezes temos que assumir outras funções incluindo administrador de servidores e redes então é fundamental um bom conhecimento sobre S.O e rede, eu tenho uma visão também que mesmo em ambiente que podemos contar com um analista especializado em servidores temos que ter conhecimento generalistas para poder pedir requisitos de instalação, cobrar qualidade , então DBA e S.O, rede , caminham bem proximos. &lt;em&gt;"vejam isso é uma opinião pessoal minha não uma regra, mas certamente será um diferencial a mais" "eu defendo a segmentação ou seja cada profissional com sua especialidade e um conhecimento generalista"&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-178819263884503444?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/178819263884503444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/178819263884503444'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/07/instalacao-do-informix-introducao.html' title='Instalação do INFORMIX - Introdução'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-464036288944664847</id><published>2010-07-23T13:31:00.000-07:00</published><updated>2010-07-23T13:44:39.428-07:00</updated><title type='text'>INFORMIX - Certificação 918</title><content type='html'>O exame 918 do Informix Dynamic server 11 é uma das certificações que estão disponivéis para profissionais informix, esta prova é aplicada pela PROMETRIC disponivél em inglês, para estudar para esse exame a IBM disponibiliza de forma gratuita o curso completo que pode ser acessado pelo endereço: &lt;a href="http://www.ibm.com/developerworks/offers/lp/db2cert/ids-cert918.html"&gt;http://www.ibm.com/developerworks/offers/lp/db2cert/ids-cert918.html&lt;/a&gt;, haverá a necessidade de efetuar um cadastro para ter acesso ao material.&lt;br /&gt;&lt;br /&gt;existe um simulado também disponivél com o custo de U$ 10,00 este simulado tem 60 questões, antes de se submeter a prova é recomendado  fazer o simulado pelo menos 3 vezes. &lt;br /&gt;&lt;br /&gt;Somente com dedicação e percistencia que chegamos a resultados então o conselho que faço a todos é mergulhar nos estudos e não se limitar a apenas o conteudo do material procurar também informações adicionais a cada assunto, tem muita informação e documentação disponivel sobre INFORMIX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-464036288944664847?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/464036288944664847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/464036288944664847'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/07/o-exame-918-do-informix-dynamic-server.html' title='INFORMIX - Certificação 918'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9147480173142807278.post-7732431710493342043</id><published>2010-07-23T12:27:00.000-07:00</published><updated>2010-07-23T13:16:00.420-07:00</updated><title type='text'>INFORMIX - GRATUITO</title><content type='html'>Informix na dimensão tecnicas é um banco incontestavél muito estavél e de baixa manutenção, certa vez lendo alguma materia na internet sobre o informix vi um comentario que dizia: "informix não tem usuarios tem admiradores" e quem trabalha com esse espetacular banco de dados sabe que isso não é nenhum exagero. Mas sabemos também que a marca INFORMIX não é muito bem aceito no Brasil , quando analisado pelo aspecto comercial existe uma grande resistencia, quando consultado profissionais DBA no mercado a grande maioria desconhece esse poderoso banco de dados e acabam enxergando somente o ORACLE isso é certamente reflexo da carencia comercial do produto, falta de treinamentos, porém agora a IBM parece estar querendo reverter esse quadro, pude notar deste o ROAD SHOW promovido no ano de 2009 que teve a participação de pessoas da diretoria comercial do INFORMIX  que mudanças começaram a ocorrer neste cenario comercial, e agora em 2010 uma supresa muito grande a IBM anunciou algumas distribuições &lt;strong&gt;GRATUITAS&lt;/strong&gt; que estão disponivéis para Download direto no site da IBM.&lt;br /&gt;As versão Ultimate-C e Innovator-C podem ser baixadas diretamente do site &lt;a class="ext" title="www.ibm.com/informix" href="http://www.ibm.com/informix" target="_blank" jquery1279915047575="29"&gt;www.ibm.com/informix&lt;/a&gt; e mesmo sendo gratuita pode ser contratado o suporte do produto da IBM por um preço muito baixo.&lt;br /&gt;&lt;br /&gt;- ULTIMATE -C tem suporte até 4 sockets/16 cores , 16 GB de Shary memory , pode ser utilizado até 1 nó em cluster RSS ou HDR (versão somente disponivél para windows e MacOS)&lt;br /&gt;&lt;br /&gt;- INNOVATOR-C Versão bem mais restrita 1 Sockete / 4 cores , 2 GB de Shary memory e ilimitado em armazenamento de dados, uma boa opção pois roda em Linux 32 e 64 bits ... (Considere que 2 GB para Shary memory é um valor que permite muita coisa, se sua necessidade supera isso então certamente seu negocio comporta a aquisição do produto)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9147480173142807278-7732431710493342043?l=dba-eliel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7732431710493342043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9147480173142807278/posts/default/7732431710493342043'/><link rel='alternate' type='text/html' href='http://dba-eliel.blogspot.com/2010/07/informix-gratuito.html' title='INFORMIX - GRATUITO'/><author><name>.</name><uri>http://www.blogger.com/profile/02016401134878732882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
