tag:blogger.com,1999:blog-852084470588972282009-07-13T08:23:37.590-03:00Alexsandro Haag - Sharing knowledgeRelato de experiências com Bancos de dados, ERPs, BI, Linux, Software Livre e Informática em Geral.Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.comBlogger36125tag:blogger.com,1999:blog-85208447058897228.post-26040955761351849382009-07-10T14:49:00.007-03:002009-07-13T08:23:37.600-03:00Enviando artigos por e-mail para o Blogger.com com Mail2BloggerDando uma revisada nas configurações do meu Blog aqui no Blogger.com encontrei um recurso interessante que resolvi testar. Na verdade estou justamente agora realizando o teste com este post.<br /><div align="justify"> Trata-se do recurso de envio de publicações através de uma nova mensagem criada a partir do seu cliente de e-mail favorito. No meu caso o 'Mozilla Thunderbird". O legal desse recurso é que não é necessário realizar nenhum tipo de configuração no cliente de e-mail, mas somente habilitar o recurso nas configurações do Blog e escolher uma chave de segurança para evitar que qualquer um faça os envios.<br />Para habilitar o recurso fiz o seguinte:<ul> <li>Acessei as configurações do meu blog;</li> <li>Abri a guia "E-mail e celular";</li> <li>Em Opções de postagem escolhi uma chave complementar do e-mail, como na figura abaixo;</li> <li>Por segurança achei melhor gerar um rascunho de publicação para eu revisar antes de enviar, ao invés de publicar diretamente;</li> <li>E por fim estou criando este post para avaliação do recurso.</li></ul><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EA-T_uW4484/SleB1wjOWVI/AAAAAAAAAFk/tTtBWFZlF_o/s1600-h/mail2blogger_config.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 328px;" src="http://3.bp.blogspot.com/_EA-T_uW4484/SleB1wjOWVI/AAAAAAAAAFk/tTtBWFZlF_o/s400/mail2blogger_config.png" alt="" id="BLOGGER_PHOTO_ID_5356893042346187090" border="0" /></a>O e-mail ficou desse jeito...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EA-T_uW4484/SleCVoXQ84I/AAAAAAAAAFs/hbb2m0JpQRA/s1600-h/Captura_de_tela-Edi%C3%A7%C3%A3o:+Enviando+artigos+por+e-mail+para+o+Blogger.com+com+Mail2Blogger.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 298px;" src="http://4.bp.blogspot.com/_EA-T_uW4484/SleCVoXQ84I/AAAAAAAAAFs/hbb2m0JpQRA/s400/Captura_de_tela-Edi%C3%A7%C3%A3o:+Enviando+artigos+por+e-mail+para+o+Blogger.com+com+Mail2Blogger.png" alt="" id="BLOGGER_PHOTO_ID_5356893589904356226" border="0" /></a>Porém no momento de abrir o rascunho...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EA-T_uW4484/SleC1Se3-HI/AAAAAAAAAF0/2d79o6YuWqo/s1600-h/Captura_de_tela-Blogger:+Alexsandro+Haag+-+Sharing+knowledge+-+Gerenciar+postagens+-+Mozilla+Firefox.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 16px;" src="http://2.bp.blogspot.com/_EA-T_uW4484/SleC1Se3-HI/AAAAAAAAAF0/2d79o6YuWqo/s400/Captura_de_tela-Blogger:+Alexsandro+Haag+-+Sharing+knowledge+-+Gerenciar+postagens+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5356894133786507378" border="0" /></a>Uma surpresa, a imagem não apareceu...<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EA-T_uW4484/SleDVBLNizI/AAAAAAAAAF8/pUldZ33UGGY/s1600-h/Captura_de_tela-Blogger:+Alexsandro+Haag+-+Sharing+knowledge+-+Editar+postagem+"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_EA-T_uW4484/SleDVBLNizI/AAAAAAAAAF8/pUldZ33UGGY/s400/Captura_de_tela-Blogger:+Alexsandro+Haag+-+Sharing+knowledge+-+Editar+postagem+" alt="" id="BLOGGER_PHOTO_ID_5356894678896446258" border="0" /></a>Por fim precisei adicionar a imagem novamente, no mais ficou legal a formatação. Possivelmente funcionaria se tivesse antes feito upload da imagem em um serviço externo e apontasse apenas um link da imagem. Mas aí daria mais trabalho.<br />Além disso não foi possível via e-mail informar os marcadores da postagem, mas como marquei para chegar como rascunho ao invés de publicar diretamente deixo para colocar depois.<br />Mesmo com os problemas relatados considero útil o recurso, até para gerar um esboço inicial para posteriores ajustes.<br /><ul> </ul> </div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-2604095576135184938?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-31310931746169471072009-07-08T17:54:00.017-03:002009-07-09T11:27:30.032-03:00Atualizando o PDI, da versão 3.1 rc-1 para 3.2O procedimento para atualização de versão do Pentaho Data Integration é bastante simples.<br />Abaixo descrevo os procedimentos que utilizei...<br /><div style="text-align: justify;"><br />- Ao tentar conectar no repositório do PDI com a nova versão recém baixada recebo a mensagem abaixo, informando que a versão do repositório é 3.0 e precisa ser 3.2. Ainda na mensagem recebo a sugestão de exportar o repositório de projetos para XML, de modo a ter um backup e posteriormente seguir os passos para upgrade.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EA-T_uW4484/SlUIqSQADpI/AAAAAAAAAEs/LGJA92bqIpY/s1600-h/pdi_upgrade_1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 271px;" src="http://1.bp.blogspot.com/_EA-T_uW4484/SlUIqSQADpI/AAAAAAAAAEs/LGJA92bqIpY/s400/pdi_upgrade_1.png" alt="" id="BLOGGER_PHOTO_ID_5356196854373551762" border="0" /></a><br />- Como gero um backup diário automático do meu repositório, que descrevi <a href="http://alexsandrohaag.blogspot.com/2009/04/backup-do-repositorio-do-pdi-kettle.html">aqui no blog</a>, pulei esta parte e fui diretamente para o processo de upgrade.<br />- Este processo consiste basicamente em clicar no botão "Editar", ao lado do nome do Repositório, entre os botões "Novo" e "Apaga";<br />- Vai abrir uma nova janela onde é possível visualizar o botão "Create or Upgrade", basta clicar nele para iniciar o processo de upgrade.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EA-T_uW4484/SlX9HIzeIVI/AAAAAAAAAFc/vhJgPfX5xkY/s1600-h/PDI_upgrade_2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 277px;" src="http://2.bp.blogspot.com/_EA-T_uW4484/SlX9HIzeIVI/AAAAAAAAAFc/vhJgPfX5xkY/s400/PDI_upgrade_2.png" alt="" id="BLOGGER_PHOTO_ID_5356465630891352402" border="0" /></a>- Deve pedir para confirmar a senha do usuário Admin para conectar ao repositório;<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EA-T_uW4484/SlUJPbWMK4I/AAAAAAAAAE8/XE-Y2p5j2gE/s1600-h/PDI_upgrade_3.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 117px;" src="http://1.bp.blogspot.com/_EA-T_uW4484/SlUJPbWMK4I/AAAAAAAAAE8/XE-Y2p5j2gE/s400/PDI_upgrade_3.png" alt="" id="BLOGGER_PHOTO_ID_5356197492470590338" border="0" /></a>- Ainda, antes da efetiva execução, sou questionado se desejo avaliar o script de atualização. Aqui respondo que sim, mas não é obrigatório;<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EA-T_uW4484/SlUJZobzZ8I/AAAAAAAAAFE/BK97ILMJeYE/s1600-h/PDI_upgrade_4.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 128px;" src="http://1.bp.blogspot.com/_EA-T_uW4484/SlUJZobzZ8I/AAAAAAAAAFE/BK97ILMJeYE/s400/PDI_upgrade_4.png" alt="" id="BLOGGER_PHOTO_ID_5356197667782485954" border="0" /></a>- Como respondi sim à pergunta anterior a próxima janela aberta me exibe os procedimentos que serão executados no Repositório para atualização. Dou uma rápida olhada e confirmo no botão "Execute" no rodapé da janela;<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EA-T_uW4484/SlUJjCtgQ5I/AAAAAAAAAFM/4SagYhY_6wI/s1600-h/PDI_upgrade_5.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 288px;" src="http://4.bp.blogspot.com/_EA-T_uW4484/SlUJjCtgQ5I/AAAAAAAAAFM/4SagYhY_6wI/s400/PDI_upgrade_5.png" alt="" id="BLOGGER_PHOTO_ID_5356197829454873490" border="0" /></a>- Após a conclusão do processo de upgrade é exibida a tela abaixo informando sobre as alterações. Aqui basta confirmar no botão "OK".<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EA-T_uW4484/SlUJwSqNBfI/AAAAAAAAAFU/fNgr9PyI7mw/s1600-h/PDI_upgrade_6.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 289px;" src="http://2.bp.blogspot.com/_EA-T_uW4484/SlUJwSqNBfI/AAAAAAAAAFU/fNgr9PyI7mw/s400/PDI_upgrade_6.png" alt="" id="BLOGGER_PHOTO_ID_5356198057074296306" border="0" /></a><br />Com os passos detalhados acima estou agora com a versão 3.2 do PDI.<br />As novidades da versão estão <a href="http://wiki.pentaho.com/display/EAI/What%27s+new+in+PDI+version+3.2">aqui</a>. Não houveram grandes mudanças em relação a 3.1, mas como eu estava utilizando uma release candidate, compensa o upgrade, principalmente pela correção de possíveis bugs.</div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-3131093174616947107?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com1tag:blogger.com,1999:blog-85208447058897228.post-4963732468764122842009-07-08T09:29:00.009-03:002009-07-09T11:29:31.282-03:00Recuperando Datafile(s) Danificado(s)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EA-T_uW4484/SlSTeRescSI/AAAAAAAAAEc/_w2IT2BMm-Q/s1600-h/erro_datafile.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 156px;" src="http://4.bp.blogspot.com/_EA-T_uW4484/SlSTeRescSI/AAAAAAAAAEc/_w2IT2BMm-Q/s400/erro_datafile.png" alt="" id="BLOGGER_PHOTO_ID_5356068005147865378" border="0" /></a>Ao nos depararmos com o erro acima podemos seguir os procedimentos detalhados mais abaixo para recuperar o datafile danificado:<br /><br /><ul><li>Conectamos no Servidor onde o Oracle está instalado;</li><li>Acessamos o sqlplus como usuário sys;</li><li>Paramos o banco;</li><li>Subimos a instância do banco somente em modo “Mount” (não aberto);</li><li>Rodamos o comando de recuperação sobre o arquivo informado no erro;</li><li>Abrimos o banco (modo Open);</li><li>Alteramos o datafile para modo online;</li><li>Liberamos o Oracle para utilização.</li></ul>Exemplo prático dos passos acima:<br /><span style="font-size:85%;"><span style="font-family:courier new;"></span></span><blockquote><span style="font-size:85%;"><span style="font-family:courier new;">SQLPLUS SYS/ORACLE AS SYSDBA;<br /></span><span style="font-family:courier new;">SHUTDOWN IMMEDIATE;<br /></span><span style="font-family:courier new;">STARTUP MOUNT;<br /></span><span style="font-family:courier new;">RECOVER DATAFILE 'E:\ORACLE\ORADATA\ORCL\CIGAM_DATA01.DBF';<br /></span><span style="font-family:courier new;">ALTER DATABASE OPEN;<br /></span><span style="font-family:courier new;">ALTER DATABASE DATAFILE 'E:\ORACLE\ORADATA\ORCL\CIGAM_DATA01.DBF' ONLINE;</span></span></blockquote>Observações:<br /><ul><li>Funciona somente com ARCHIVE LOGs habilitados no banco;</li><li>Estes passos são para datafiles de dados (CIGAM_DATA, USERS), não para datafiles do sistema (SYSTEM.DBF, UNDO.DBF), nem para tempfiles (TEMP.DBF);</li><li>Caso o banco não esteja com ARCHIVE LOGs habilitado o único recurso possível é voltar backup.</li><li>Comando para verificar se Oracle está em modo ARCHIVE ou não:<span style="font-size:85%;"> </span><span style="font-size:85%;"><span style="font-family:courier new;">SELECT LOG_MODE FROM V$DATABASE;</span></span></li></ul><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-496373246876412284?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-40146833672951958462009-06-19T13:48:00.007-03:002009-06-19T16:36:12.266-03:00Ajustando Editor Padrão do sqlplus no Linux<div style="text-align: justify;">Ao utilizarmos o sqlplus no Linux muitas vezes nos deparamos com algumas dificuldades para a utilização do comando "ed" dentro do sqlplus, pois ele chama o editor "Gnu Ed", estranho e de difícil utilização (ao menos para leigos como eu :) ).<br /><br />Para facilitar estas tarefas de edição via sqlplus podemos trocar o editor padrão por algum mais amigável. Para isso existem dois caminhos. Um via configuração do arquivo glogin.sql do Oracle e outro com o uso de variáveis de ambiente. Vou mostrar abaixo como fazer das duas maneiras.<br /><br />Método 1. Ajustando o arquivo glogin.sql:<br />- Editamos o arquivo: <span style="font-family:courier new;">vi $ORACLE_HOME/sqlplus/admin/glogin.sql</span>;<br />- Acrescentamos no final do mesmo o seguinte: <span style="font-family:courier new;">DEFINE_EDITOR=nano</span>;<br />- Ao abrirmos o sqlplus já estaremos com o nano como editor padrão.<br /><br />Método 2. Criando a variável de ambiente EDITOR:<br />- Editamos ou criamos o arquivo:<span style="font-family:courier new;"> vi ~/.bash_profile</span>;<br />- Dentro dele colocamos o seguinte: <span style="font-family:courier new;">export EDITOR=nano</span>;<br />- Fechamos a sessão e abrimos nova para que a alteração passe a valer.<br /><br />Após qualquer um destes procedimentos acima passamos então a utilizarmos integrado ao sqlplus o editor de nossa preferência. No meu caso usei o "nano" como padrão, mas poderia ter sido o "vi" ou "joe" ou qualquer outro disponível.</div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-4014683367295195846?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-49121653237376498022009-06-08T22:35:00.005-03:002009-06-08T23:13:26.090-03:00Migrando Oracle 10g 32bits para outro Servidor com Oracle 10g 64bitsHoje estou trocando o nosso Servidor Oracle de plataforma (32bits -> 64bits) e migrando da versão 10.2.0.3 para 10.2.0.4. Inicialmente foi feita uma migração beta onde correu tudo bem seguindo estes passos:<br /><ol><li>Instalado o Oracle 10.2.0.4 64bits no Servidor srvOra64;</li><li>Criado database com o mesmo nome do original "orcl";<br /></li><li>Parado o serviço do Oracle 10g 32bits no Servidor srvOra32;</li><li>Parado o serviço do Oracle 10g 64bits no Servidor srvOra64;</li><li>Renomeado database orcl para orcl_ em srvOra64;</li><li>Copiada pasta "E:\oradata\orcl" de srvOra32 para o mesmo caminho no srvOra64;</li><li>Conectado no sqlplus como sys no Oracle 64bits: sqlplus / as sysdba ;</li><li>Iniciado o banco de dados com o parâmetro para migração: startup migrate;</li><li>Rodado script sql para invalidar todos módulos PL/SQL do banco para posterior compilação: @E:\oracle\product\10.2.0\db_1\rdbms\admin\utlirp.dmp;</li><li>Rodado script para fazer upgrade do catálogo do banco de dados para a nova release: @E:\oracle\product\10.2.0\db_1\rdbms\admin\catupgrd.sql;</li><li>Parado o banco: shutdown immediate;</li><li>Iniciado normalmente: startup;</li><li>Rodado script para revalidar módulos anteriormente invalidados: @E:\oracle\product\10.2.0\db_1\rdbms\admin\utlrp.sql;</li><li>Parado novamente o banco e reiniciado para permanecer agora em produção: shutdown immediate; startup;</li></ol>Obs.:<br /><ul><li>Este passo-a-passo acima considera que os caminhos de arquivo nas duas instalações (32bits e 64bits) são os mesmos. Neste caso E:\Oracle;</li><li>Não está sendo relatado aqui nenhuma configuração adicional para fins de tuning ou segurança, mas sim exclusivamente o processo de migração;</li><li>Os arquivos de script acima mencionados fazem parte da instalação do Oracle 10g.</li></ul>Espero que os passos acima possam ser úteis para quem mais necessitar realizar processo semelhante de migração.<br /><br />Abraço a todos!<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-4912165323737649802?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-68751380942310950262009-05-20T16:25:00.004-03:002009-05-20T16:39:04.037-03:00Unificando o Cadastro de Usuários do CIGAM entre duas bases OraclePara que não seja necessário administrar 2 ou mais cadastros de usuários no CIGAM podemos unificar estas bases através da criação de sinônimos dentro do Oracle.<br /><br />Uma das formas que podemos utilizar para isso é a seguinte:<br /><br /><span style="font-size:85%;"><span style="font-family:courier new;">/*</span><br /><span style="font-family:courier new;"> UNIFICAÇÃO DO CADASTRO DE USUÁRIOS BASE_UN1 x BASE_UN2</span><br /><span style="font-family:courier new;"> OS.: 999999/9 Criado em: 2009-05-20</span><br /><span style="font-family:courier new;"> Técnico: Alexsandro Haag</span><br /><span style="font-family:courier new;">*/</span><br /><br /><span style="font-family:courier new;">--Abrindo o sqlplus</span><br /><span style="font-family:courier new;">c:\>sqlplus /nolog</span><br /><br /><span style="font-family:courier new;">--Conectando na BASE_UN1</span><br /><span style="font-family:courier new;">CONNECT BASE_UN1/SENHA@ORCL;</span><br /><br /><span style="font-family:courier new;">--Concedendo permissões para a </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;"> nas tabelas de usuários da </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN1</span></span><span style="font-size:85%;"><span style="font-family:courier new;"></span><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON geusuari TO BASE_UN2;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON gedireit TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON geseusua TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON geultpas TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON geuxdir TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON gegxusu TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON gegrupos TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">GRANT SELECT,</span><br /><span style="font-family:courier new;"> INSERT,</span><br /><span style="font-family:courier new;"> UPDATE,</span><br /><span style="font-family:courier new;"> DELETE ON gegrpxdi TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">--Conectando como DBA para dar permissões adicionais ao usuário </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;"></span><br /><span style="font-family:courier new;">CONNECT sys@orcl AS sysdba;</span><br /><br /><span style="font-family:courier new;">--Permitindo ao usuário </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;"> criar sinônimos em seu próprio esquema somente</span><br /><span style="font-family:courier new;">GRANT CREATE SYNONYM TO </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">;</span><br /><br /><span style="font-family:courier new;">--Conectando como </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;"></span><br /><span style="font-family:courier new;">CONNECT </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">/SENHA@orcl;</span><br /><br /><span style="font-family:courier new;">--Fazendo backup das tabelas através do comando EXP</span><br /><span style="font-family:courier new;">host exp </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">/SENHA@orcl file=</span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN2</span></span><span style="font-size:85%;"><span style="font-family:courier new;">_usuarios.dmp tables=(geusuari,gedireit,geseusua,geultpas,geuxdir,gegxusu,gegrupos,gegrpxdi) direct=y buffer=40000</span><br /><br /><span style="font-family:courier new;">--Apagando tabelas que não serão mais usadas</span><br /><span style="font-family:courier new;">DROP TABLE geusuari;</span><br /><span style="font-family:courier new;">DROP TABLE gedireit;</span><br /><span style="font-family:courier new;">DROP TABLE geseusua;</span><br /><span style="font-family:courier new;">DROP TABLE geultpas;</span><br /><span style="font-family:courier new;">DROP TABLE geuxdir;</span><br /><span style="font-family:courier new;">DROP TABLE gegxusu;</span><br /><span style="font-family:courier new;">DROP TABLE gegrupos;</span><br /><span style="font-family:courier new;">DROP TABLE gegrpxdi;</span><br /><br /><span style="font-family:courier new;">--Criando os sinônimos</span><br /><span style="font-family:courier new;">CREATE SYNONYM geusuari FOR </span></span><span style="font-size:85%;"><span style="font-family:courier new;">BASE_UN1</span></span><span style="font-size:85%;"><span style="font-family:courier new;">.geusuari;</span><br /><span style="font-family:courier new;">CREATE SYNONYM gedireit FOR BASE_UN1.gedireit;</span><br /><span style="font-family:courier new;">CREATE SYNONYM geseusua FOR BASE_UN1.geseusua;</span><br /><span style="font-family:courier new;">CREATE SYNONYM geultpas FOR BASE_UN1.geultpas;</span><br /><span style="font-family:courier new;">CREATE SYNONYM geuxdir FOR BASE_UN1.geuxdir;</span><br /><span style="font-family:courier new;">CREATE SYNONYM gegxusu FOR BASE_UN1.gegxusu;</span><br /><span style="font-family:courier new;">CREATE SYNONYM gegrupos FOR BASE_UN1.gegrupos;</span><br /><span style="font-family:courier new;">CREATE SYNONYM gegrpxdi FOR BASE_UN1.gegrpxdi;</span><br /><br /><span style="font-family:courier new;">--Pronto!</span><br /><span style="font-family:courier new;">EXIT;</span><br /><br />Após este procedimento os objetos relacionados ao cadastro de usuários na BASE_UN2 serão sinônimos (apontamentos para tabelas da BASE_UN1) e não mais tabelas como eram até então.<br /><br />O CIGAM os enxergará como se fossem tabelas normais, podendo realizar neles quaisquer operações DML (insert,update,delete) e SELECTs diversos. Toda a organização lógica neste caso fica nas bases de dados.<br /><br /></span><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-6875138094231095026?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-64427953734453012542009-05-20T16:22:00.002-03:002009-05-20T16:24:43.814-03:00Desktop meme 3D versão 2009/2<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EA-T_uW4484/ShRYric2-GI/AAAAAAAAAEE/EL-S8UN7GCM/s1600-h/Captura_de_tela.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_EA-T_uW4484/ShRYric2-GI/AAAAAAAAAEE/EL-S8UN7GCM/s400/Captura_de_tela.png" alt="" id="BLOGGER_PHOTO_ID_5337988963346348130" border="0" /></a><br /><div style="text-align: center;">My Desktop 3D Now!<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-6442795373445301254?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-46619389738573392372009-04-14T15:38:00.009-03:002009-04-14T16:51:10.233-03:00Backup do Repósitório do PDI (kettle)Vou detalhar abaixo o projeto de backup que criei no <a href="http://kettle.pentaho.org/">Pentaho Data Integration (PDI)</a> para fazer backup do seu próprio repositório de projetos.<br /><div style="text-align: justify;"><br />Tenho um repositório de projetos hospedado em um banco de dados MSSQL 2000. Este tem seu backup realizado regularmente, mas resolvi criar uma rotina independente, pois não sou eu quem administra este backup hoje, além disso, achei muito prático utilizarmos os próprios recursos do PDI para fazer um auto-backup.<br /><br />Em resumo o que o projeto vai fazer é bem simples:<br /><ul><li> Exporta o repositório para um arquivo XML;</li><li> Compacta o arquivo XML;</li><li>Faz um Ping no Servidor FTP para ver se está respondendo;<br /></li><li>Faz upload deste arquivo compactado neste servidor de FTP;</li><li> Caso haja algum erro num destes processos envia um e-mail para minha caixa detalhando a falha.</li></ul><br />Abaixo segue uma imagem do Projeto:<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EA-T_uW4484/SeTc7c74juI/AAAAAAAAAD8/Eml10QHztuw/s1600-h/backup_PDI.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 184px;" src="http://4.bp.blogspot.com/_EA-T_uW4484/SeTc7c74juI/AAAAAAAAAD8/Eml10QHztuw/s400/backup_PDI.png" alt="" id="BLOGGER_PHOTO_ID_5324623573396524770" border="0" /></a><br />Ficou bastante simples de configurar e muito prático. Criei um agendamento para executar toda noite, salvando o arquivo com sufixo de Ano + Mês (AAAAMM), com isso vou ter backups de muito tempo, visto que o repositório não está grande e compactado nem chega ainda a 100Kb. Deve demorar até atingir 1Mb.<br /><br /><blockquote>Obs.: Um cuidado essencial na criação do Projeto de backup é que não pude deixá-lo no repositório de Projetos. Ao invés disso criei um Job em arquivo pois houveram alguns erros ao tentar exportar o próprio projeto em uso para XML.</blockquote><br /><br />O PDI (antigo Kettle, que foi incorporado ao projeto de <a href="http://www.pentaho.com/">BI Pentaho</a>) é uma solução OpenSource de Integração de Dados e Sistemas, conhecida conceitualmente como <a href="http://en.wikipedia.org/wiki/Enterprise_application_integration">EAI</a> (Enterprise Aplication Integration) . É uma ferramenta muito versátil e poderosa.<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-4661938973857339237?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-12142518175562258622009-03-27T08:16:00.003-03:002009-03-27T09:41:51.166-03:00Apoio ao Profissional Jornalista - Jornalista só com diploma<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.fenaj.org.br/apoiar_campanha.php"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 282px; height: 400px;" src="http://4.bp.blogspot.com/_EA-T_uW4484/Scy1uEgxWtI/AAAAAAAAADs/zQc5cz4NO7k/s400/FENAJ+Flyer+Eletr%C3%B4nico+Jornalista+s%C3%B3+com+Diploma+2009.jpg" alt="" id="BLOGGER_PHOTO_ID_5317825063107517138" border="0" /></a><br /><div style="text-align: center;"><div style="text-align: justify;"><blockquote></blockquote>Isso é um absurdo, que nem deveria entrar em pauta de votação.<br /></div><div style="text-align: justify;"><br /></div></div>Apesar da minha profissão ser de outra área deixo aqui meu apoio incondicional à causa!<br />Abraço a todos!<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-1214251817556225862?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-91861616273158703682009-01-09T10:03:00.005-02:002009-04-14T16:53:40.410-03:00Desktop meme 3D versão 2009<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EA-T_uW4484/SWc9VU78fvI/AAAAAAAAADQ/fDnAI67si_c/s1600-h/MyDesktop.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_EA-T_uW4484/SWc9VU78fvI/AAAAAAAAADQ/fDnAI67si_c/s400/MyDesktop.png" alt="" id="BLOGGER_PHOTO_ID_5289263723976621810" border="0" /></a><br /><div style="text-align: justify;"><div style="text-align: center;">Tire um screenshot do seu desktop 3D neste exato momento, sem alterar nada, e publique no seu blog.<br /></div><br /></div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-9186161627315870368?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com1tag:blogger.com,1999:blog-85208447058897228.post-47925009405997264562009-01-07T09:14:00.004-02:002009-01-07T10:27:10.334-02:00Cursos Online Gratuitos de Linguagens de Programação Web<div style="text-align: justify;">After a long, long time... ;)<br /><br />Aos interessados em Linguagens de Programação para Web, segue abaixo alguns links para cursos online gratuitos bem interessantes:<br /><br /><a href="http://www.ruby-lang.org/pt/"><span style="font-weight: bold;">Ruby</span></a> - <a href="http://rubylearning.org/class/">http://rubylearning.org/class/</a> - FORPC101 - Inicia em 24/01/09 em inglês. (Curso de Ruby, não de Rails que é o principal framework Web nesta linguagem);<br /><br /><a href="http://www.djangoproject.org/"><span style="font-weight: bold;">Django</span></a> - <a href="http://www.aprendendodjango.com/">http://www.aprendendodjango.com/</a> - Este Já está no capítulo 28 (hoje 07/01/09), mas foi muito bem elaborado (eu estou fazendo o curso), foi pensado, como o próprio autor comenta, para pessoas comuns. O Autor define "Pessoas Comuns" da seguinte maneira:<blockquote style="font-style: italic;"> "Pessoas comuns são pessoas que gostam de passear com a família, ouvir música, conhecer gente legal e ganhar dinheiro."</blockquote> Vale a pena conferir. Parabéns ao Marinho Brandão pela forma como pensou o curso.</div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-4792500940599726456?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com1tag:blogger.com,1999:blog-85208447058897228.post-52771839191961318472008-10-20T15:43:00.004-02:002008-10-20T16:12:09.371-02:00IIS - Remover "Cache" de DocumentosEu estava com problemas em uma instalação de uma aplicação WEB que gerava um relatório em formato ".doc" para exibição em tela.<br /><br />Ao gerar a primeira vez o documento aparecia corretamente, porém ao gerar novo relatório, para outro número de documento, insistia em aparecer o primeiro documento impresso.<br /><br />Verifiquei que fisicamente o arquivo havia sido atualizado e com isso só podia mesmo haver alguma configuração de "cache" do IIS que estava insistindo em exibir sempre o mesmo arquivo.<br />Procurei informações sobre cache nas guias da publicação do WebSite mas não achei nada.<br /><br />Foi quando encontrei esta dica <a href="http://webteam.waikato.ac.nz/reference/stop_IIS_cacheing.shtml">"Stopping Cacheing</a><a href="http://webteam.waikato.ac.nz/reference/stop_IIS_cacheing.shtml"> under IIS"</a> que sugeria, entre alguns parâmetros, a utilização do parâmetro "Pragma: No-cache" dentro da guia "HTTP headers" do website.<br /><br />Realizei este procedimento conforme sugerido, reiniciei o IIS e tudo funcionou perfeitamente.<br />Detalhes da configuração na imagem abaixo:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EA-T_uW4484/SPzGvLti-8I/AAAAAAAAADA/NqEATL-2MQc/s1600-h/IIS_pragma_nocache.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_EA-T_uW4484/SPzGvLti-8I/AAAAAAAAADA/NqEATL-2MQc/s320/IIS_pragma_nocache.jpg" alt="" id="BLOGGER_PHOTO_ID_5259296978761874370" border="0" /></a><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-5277183919196131847?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-34657673273490011932008-10-08T17:35:00.004-03:002008-10-08T17:45:44.031-03:00A criação do Mundo Segundo o "root"Uma estória muito interessante, engraçada e inteligente sobre a visão da criação do mundo aos olhos do usuário root.<br /><br />Uma breve introdução...<br /><blockquote><br /><span style="font-family: trebuchet ms;">A Criacao do Mundo Segundo o Root - Parte 1 - O surgimento do sistema</span><br /><blockquote style="font-family: trebuchet ms;"><br />Capitulo 1 - O Caos<br />no inicio havia apenas o caos. e nao havia superblocks, e todos os inodes estavam espalhados pelos setores, e tudo era devastacao. e havia apenas o root sobre a superficie do disco.<br /><br />e o root resolveu e disse: isso nao pode continuar assim. e o root fez fdisk e eis que surgiram grandes divisoes nos setores. e havia setores abaixo e acima dos dados. e aos abaixo dos dados, ele chamou de tabela de particoes, e aos acima dos dados ele chamou de freeblocks</blockquote></blockquote><blockquote><br /></blockquote><br />Vejam aqui no site do <a href="http://www.geocities.com/dmichellis/nearlyinsane/">Nearly Insane</a><br /><br />Muito Bom! Vale a pena ler.<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-3465767327349001193?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-62095547583567068242008-09-23T10:40:00.007-03:002009-01-07T10:26:27.806-02:00Desfragmentando os índices de todas as tabelas de determinado database no MSSQLAbaixo descrevo a rotina que utilizo para desfragmentar os índices das tabelas de determinada base.<br />Normalmente crio uma procedure com o código abaixo, ou coloco o script diretamente nos blocos de código do agendador do SQLServer Agent no MSSQL 2000 ou MSDE. Se for no SQLExpress 2005, que não possue o Agent, crio um arquivo com extensão .sql e outro arquivo .cmd contendo a chamada para o arquivo .sql e crio uma agendamento no Agendador de tarefas do Windows rodando este arquivo .cmd.<br /><br /><blockquote style="font-family: courier new;"><span style="font-size:85%;">-- TROCAR NOME DA BASE NA LINHA ABAIXO EM [database_name]<br />-- E NA LINHA DO COMANDO DBCC INDEXDEFRAG<br />-- EX1.: De </span><span style="font-weight: bold;font-size:85%;" >USE [database_name]</span><span style="font-size:85%;"> por </span><span style="font-weight: bold;font-size:85%;" >USE CIGAM</span><span style="font-size:85%;"> .<br />-- EX2.: De </span><span style="font-weight: bold;font-size:85%;" >DBCC INDEXDEFRAG ([database_name]</span><span style="font-size:85%;">, @TableName, @IndexName)<br />-- por </span><span style="font-weight: bold;font-size:85%;" >DBCC INDEXDEFRAG ('CIGAM'</span><span style="font-size:85%;">, @TableName, @IndexName)<br /><br />USE </span><span style="font-weight: bold;font-size:85%;" >[database_name]</span><span style="font-size:85%;"><br /><br />DECLARE @TableName sysname<br />DECLARE @IndexName varchar(20)<br /><br />DECLARE cur_fetch<br /> CURSOR FOR<br /> SELECT t.name TableName,<br /> i.name IndexName<br /> FROM sys.sysindexes i,<br /> sys.tables t<br /> WHERE i.id = t.object_id<br /> and i.keycnt > 0<br /> and t.type ='U'<br /> and i.rows > 0<br /> ORDER BY 1,2<br /><br />OPEN cur_fetch<br /><br />FETCH NEXT FROM cur_fetch INTO @TableName,@IndexName<br /><br />WHILE @@FETCH_STATUS = 0<br />BEGIN<br /><br /> SELECT 'Defragmenting index = '<br /> + rtrim(@IndexName)<br /> + ' of the '<br /> + rtrim(@TableName) + ' table'<br /><br /> --Trocar o [database_name] pelo nome da base, entre apóstrofes. Ex.: 'CIGAM'.<br /> DBCC INDEXDEFRAG (</span> <span style="font-weight: bold;font-size:85%;" >[database_name]</span><span style="font-size:85%;">, @TableName, @IndexName)<br /><br />FETCH NEXT FROM cur_fetch INTO @TableName, @IndexName<br /><br />END<br /><br />CLOSE cur_fetch<br />DEALLOCATE cur_fetch</span></blockquote><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-6209554758356706824?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-38050343436881442672008-09-18T11:58:00.003-03:002009-01-07T10:25:24.775-02:00Gnome-Blog - Considerações Finais<div style="text-align: justify;">Pelo que pude perceber a ferramenta tem algumas falhas que ainda precisam ser ajustadas, além das que mencionei na postagem anterior.<br /><br />São elas:<br /></div><ul style="text-align: justify;"><li>Título do Blog não aparece como título, mas sim incorporado ao corpo do texto;</li><li>Não permite informar tags/marcadores identificando as afinidades da postagem;</li><li>Não trabalha com proxy + autenticação;</li><li style="font-style: italic;">Não adiciona imagens*.</li></ul><div style="text-align: justify;"><blockquote><span style="font-weight: bold;">*Correção:</span> Para adicionar imagens basta arrastá-las para dentro da janela de conteúdo.<br /></blockquote>Como estou iniciando em Python vou ver o que consigo fazer para tentar contornar estes problemas e tornar a ferramenta mais útil para todos.<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-3805034343688144267?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-86262963113085589762008-09-18T11:49:00.001-03:002008-09-18T12:03:43.243-03:00Gnome-Blog - Applet do Painel do Gnome para postar notícias pelo DesktopPesquisando o repositório Universe do meu Ubuntu pelo Synaptic encontrei uma ferramenta que parece muito prática para postagem de blogs. Estou avaliando ela neste momento com este post.<br /><p>Ela dá suporte direto aos seguintes blogs:<br /></p><ul><li>Blogger.com;</li><li> Wordpress;</li><li>Advogato;</li><li> blogs.gnome.org;</li><li> livejournal;</li><li>outros não tão conhecidos.<br /></li></ul><p>Ele está na versão 0.9.1 e pelo que vi é escrito em python, o que particularmente me deixou feliz.</p><p><br />Dentre as coisas que senti falta foi a possibilidade de adicionar imagens diretamente. Ele possui um botão para adicionar um link, fazer formatação básica (negrito e itálico), e um último botão para postar a notícia. </p><p><br />Outra questão é a autenticação com proxy que também não funcionou.</p><p><br />A principal vantagem dele é a praticidade para postar e o fato de ser opensource, permitindo que o melhoremos e adequemos conforme nossas necessidades.</p><p><br />A conclusão que cheguei é que se trata de uma ótima ferramenta para posts rápidos, mas deficiente ainda para postagens mais elaboradas. Porém a conclusão final só vou ter quando visualizar o que estou escrevendo diretamente no blog através da Web e ver se ficou como esperado.</p><p><br />Vou finalizar logo, pois estou curioso.<br />Um abraço a todos!</p><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-8626296311308558976?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-13628690440035764102008-08-12T16:51:00.004-03:002008-08-12T17:04:12.860-03:00Minimizando uso de SWAP no Linux e WindowsPara priorizar o uso da memória RAM e utilizar SWAP somente quando necessário no Linux, basta colocarmos a seguinte linha no arquivo <span style="font-weight: bold;">"/etc/sysctl.conf"</span>:<br /><blockquote>vm.swappiness=1</blockquote><br /><br />O mesmo efeito pode ser obtido no Windows ao editarmos o arquivo <span style="font-weight: bold;">"system.ini"</span> dentro do grupo <span style="font-weight: bold;">"[386enh]"</span> colocando o seguinte:<br /><blockquote>ConservativeSwapFileUsage=1</blockquote><br /><br />O arquivo ficará semelhante ao mostrado abaixo:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EA-T_uW4484/SKHscXwxb_I/AAAAAAAAACs/uYmR8JFPPhc/s1600-h/swap_system_ini.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_EA-T_uW4484/SKHscXwxb_I/AAAAAAAAACs/uYmR8JFPPhc/s320/swap_system_ini.jpg" alt="" id="BLOGGER_PHOTO_ID_5233724214140301298" border="0" /></a><br />Desta forma otimizamos o uso da memória RAM fazendo com que a SWAP somente seja utilizada quando houver pouca RAM disponível.<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-1362869044003576410?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-29126029722199973212008-07-29T15:22:00.009-03:002008-07-29T16:49:29.521-03:00Gerenciando alert<'SID'>.log do Oracle através do Linux com LogrotatePara que o arquivo de alertas da instância do Oracle não fique grande demais e dificulte as pesquisas podemos fazer com que este seja rotacionado através do utilitário "logrotate" do Linux. O mesmo usado para os principais registros de log do Linux.<br /><br />Vou exemplificar com o Oracle-XE, mas pode ser realizado com qualquer versão do Oracle ou qualquer outro arquivo de log que queiramos gerenciar com o Logrotate.<br /><br />Basta para isso criarmos um arquivo chamado oracle-xe(sugestão) dentro da pasta /etc/logrotate.d.<br />Como utilizo ubuntu/gnome costumo chamar o editor da seguinte forma:<br /><blockquote>gksu gedit /etc/logrotate.d/oracle-xe</blockquote><br />Mas fique livre para utilizar o editor que quiser, porém lembrando sempre que deve criado o arquivo com direitos de administrador (usuário root).<br /><br />Dentro do arquivo /etc/logrotate.d/oracle-xe adicione a seguinte informação:<br /><br /><blockquote>/usr/lib/oracle/xe/app/oracle/admin/XE/bdump/*.log {<br /> weekly<br /> rotate 10<br /> copytruncate<br /> delaycompress<br /> compress<br /> notifempty<br /> missingok<br />}</blockquote><br /><br />Detalhamento item-a-item:<br /><blockquote> 1 - /..../admin/XE/bdump/*.log - caminho/nome do arquivo a ser rotacionado;<br /> 2 - weekly - informa que o log deve ser rotacionado semanalmente;<br /> 3 - rotate N - comando para rotacionar os logs até N vezes, após vai descartartando o mais antigo;<br /> 4 - copytruncate - copia o log e move o original para outro lugar;<br /> 5 - delaycompress - Atrasa a compressão do log para a próxima rotação;<br /> 6 - compress - comprime os logs rotacionados;<br /> 7 - notifempty - não rotaciona se o log estiver vazio;<br /> 8 - missingok - não envia mensagem de erro se o arquivo de log não existir;</blockquote><br /><br />A partir daí os logs serão rotacionados de acordo com as regras estabelecidadas no arquivo.<br /><br />Referências de apoio com o logrotate: <br /><a href="http://www.vivaolinux.com.br/addBookmark.php?tipo=artigo&codigo=1796">VivaoLinux</a><br /><a href="http://linux.die.net/man/8/logrotate">Linux Manual</a><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-2912602972219997321?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-26718397001053413852008-07-29T14:43:00.003-03:002008-12-08T21:19:41.142-02:00Agendamento de tarefas do Kettle para o usuário SYSTEM do WindowsDica rápida...<br /><br />Após a conclusão de um Projeto com o Kettle (Ferramenta EAI opensource do projeto de BI "PENTAHO") normalmente precisamos criar um agendamento no Servidor para sua execução. Para isso, seguindo o manual do próprio, podemos utilizar o comando "AT" do Windows de modo a agendar como tarefa.<br /><br />O detalhe é que, para rodar automaticamente sem um login e também para não falhar após qualquer mudança de senha, é interessante utilizarmos o usuário SYSTEM do Windows para rodar tais agendamentos.<br /><br />Para que o Kettle funcione corretamente, acessando seus repositórios também como usuário SYSTEM é importante que se faça a cópia da pasta ".kettle" que se encontra no perfil do usuário que criou o projeto para a pasta do perfil do usuário SYSTEM. <br /><br />Até aí tudo bem, a pasta de perfil dos usuários normalmente se encontra em C:\DOCUMENTS AND SETTINGS\%USER%, onde %USER% é o nome de login do usuário. Mas e onde se encontra o perfil do usuário SYSTEM?<br /><br /><br />A pasta de perfil do usuário SYSTEM, que sinceramente confesso não saber que existia, fica em <span style="font-weight:bold;">C:\WINDOWS\SYSTEM32\CONFIG\SYSTEMPROFILE</span>.<br /><br />Desta forma basta que copiemos a pasta .kettle do perfil original para dentro da SYSTEMPROFILE.<br /><br />Feito isso a tarefa deve executar corretamente de acordo com agendamento, independente de estar ou não logado no Windows.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EA-T_uW4484/SI9bd--rOVI/AAAAAAAAACA/CmSoU5VPCKc/s1600-h/kettle_profile_copy.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_EA-T_uW4484/SI9bd--rOVI/AAAAAAAAACA/CmSoU5VPCKc/s320/kettle_profile_copy.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5228498263080646994" /></a><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-2671839700105341385?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-5329166472960221892008-07-11T15:15:00.009-03:002008-10-10T13:52:21.342-03:00Vote contra o projeto de lei sobre crimes na InternetAjude a garantir nossa liberdade...<br /><br />Link para a petição: <a href="http://www.petitiononline.com/mod_perl/signed.cgi?veto2008">http://www.petitiononline.com/mod_perl/signed.cgi?veto2008</a><br /><br />Mais informações em: <a href="http://www.softwarelivre.org/news/11775">http://www.softwarelivre.org/news/11775</a><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-532916647296022189?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-86215133922181889542008-07-01T10:24:00.004-03:002008-07-02T13:35:26.245-03:00Publicar Direitos no CIGAM sem precisar que todos saiam do SistemaSegue abaixo uma dica rápida de como fazer a publicação de direitos no <a style="font-weight: bold;" href="http://www.cigam.com.br/">CIGAM</a> sem precisar que todos os usuários fechem o Sistema.<br /><br />A solução é bastante simples, basta criarmos um adendo para o magic.ini com o caminho do arquivo de usuários intermediário, conforme exemplificado abaixo:<br /><br /><span style="color: rgb(0, 102, 0); font-weight: bold;font-family:courier new;font-size:85%;" >/[MAGIC_ENV]RtUserCopyRight = *ERP CIGAM8i - AMBIENTE DE PUBLICAÇÃO DE DIREITOS<br />/[MAGIC_ENV]UsersPath = *CONFIG\USR_STD.PUB</span><blockquote></blockquote>Salvamos este arquivo com o nome sugerido de <span style="font-size:85%;"><span style="font-weight: bold;">AD_PUB.INI</span></span> dentro da pasta <span style="font-size:85%;"><span style="font-weight: bold;">ADENDOS</span></span> (crie se não existir) na estrutura de pastas do CIGAM.<br /><br />Criamos um novo atalho para o CIGAM, como sugestão de nome podemos deixar<span style="font-weight: bold;"> <span style="font-size:85%;">"ERP CIGAM8i - Publicação de Direitos"</span></span> e adicionamos na linha de comando a chamada para o novo adendo criado. Ex.:<br /><span style="color: rgb(0, 102, 0); font-weight: bold;font-size:85%;" ><span style="font-family:courier new;">G:\CIGAM\MAGIC\MGRNTW.EXE @ADENDOS/AD_PUB.INI</span></span><br /><br />Feito isso precisamos criar o arquivo <span style="font-size:85%;"><span style="font-weight: bold;">CONFIG\USR_STD.PUB</span></span> a partir do <span style="font-size:85%;"><span style="font-weight: bold;">CONFIG\USR_STD.ENG</span></span>. Para tanto podemos fazer isso pelo prompt de comando ou pelo Explorer. Vou exemplificar abaixo pelo prompt de comando:<br /><span style="color: rgb(0, 102, 0); font-weight: bold;font-size:85%;" ><span style="font-family:courier new;">G:\CIGAM\CONFIG> COPY USR_STD.ENG USR_STD.PUB</span></span><br /><br /><blockquote><span style="font-size:85%;">Obs.: Este procedimento acima só precisará ser realizado uma única vez, do contrário não conseguiríamos entrar no sistema.</span></blockquote><br /><br />Agora basta acessarmos o novo atalho, publicarmos os direitos e, após o término do processo, renomear o arquivo de usuário oficial para<span style="font-weight: bold;"> <span style="font-size:85%;">.BKP</span></span> por exemplo e copiar o arquivo <span style="font-size:85%;"><span style="font-weight: bold;">USR_STD.PUB</span></span> gerado para <span style="font-size:85%;"><span style="font-weight: bold;">USR_STD.ENG.</span></span><br /><br /><blockquote><span style="font-size:85%;">Obs.: Ao acessar o novo atalho observe se o título da janela do CIGAM mudou para <span style="font-weight: bold;">"ERP CIGAM8i - AMBIENTE DE PUBLICAÇÃO DE DIREITOS</span>". Se não houve mudança verifique novamente os passos acima, desde o princípio.</span></blockquote><br /><br />Espero com este post auxiliar aos colegas que trabalham com o CIGAM a ter mais agilidade nos processos de publicação de direitos.<br /><br />Abraço a todos.<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-8621513392218188954?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-31654879980427772192008-06-25T09:43:00.003-03:002008-06-25T11:18:54.372-03:00Ubuntu - Trabalhando com Diferentes versões do JavaRecentemente instalei no meu Ubuntu o Java 6 da Sun e estava trabalhando com ele faz algum tempo sem problemas.<br />Ontem resolvi testar o OpenJDK 6, que é o Java de código aberto que a Sun está liberando.<br />O detalhe foi que algumas das minhas aplicações deixaram de funcionar. Foi quando identifiquei que a máquina virtual que tinha ficado como padrão foi a última instalada, ou seja, o java de código aberto.<br />Percebi isso digitando no console o seguinte comando:<br /><span style="font-size:85%;"><span style="font-family: courier new; color: rgb(0, 153, 0);">$ java -version</span><br /><span style="font-family: courier new; color: rgb(0, 153, 0);">java version "1.6.0"</span><br /><span style="font-family: courier new; color: rgb(0, 153, 0);">OpenJDK Runtime Environment (build 1.6.0-b09)</span><br /><span style="font-family: courier new; color: rgb(0, 153, 0);">OpenJDK Server VM (build 1.6.0-b09, mixed mode)</span></span><br /><br />Reparem que retornou a informação do Java de código aberto.<br />Conferi o arquivo /usr/bin/java com ls -lh e percebi que estava linkado com o java da pasta /etc/alternatives:<br /><span style="color: rgb(0, 153, 0);font-size:85%;" ><span style="font-family: courier new;">$ ls -lh /usr/bin/java </span><br /><span style="font-family: courier new;">lrwxrwxrwx 1 root root 22 2008-06-06 11:16 /usr/bin/java -> /etc/alternatives/java</span></span><br /><br />Pesquisei no google, que me retornou este <a href="http://www.futuredesktop.com/set_default_java_vm.html">site</a> e vi que para trocar de padrão de máquina virtual precisava rodar o comando abaixo para listar as opções disponíveis:<br /><span style="color: rgb(255, 102, 0);"><span style="color: rgb(0, 153, 0);"><span style="color: rgb(0, 153, 0); font-family: courier new;font-size:85%;" >$ sudo update-alternatives --list java<br />/usr/lib/jvm/java-6-sun/jre/bin/java<br />/usr/lib/jvm/java-6-openjdk/jre/bin/java</span><br /></span></span><br />e para trocar:<span style="color: rgb(0, 153, 0);font-size:85%;" ><br /></span><span style="color: rgb(255, 102, 0);"><span style="color: rgb(0, 153, 0);"><span style="color: rgb(0, 153, 0);font-size:85%;" ><span style="font-family: courier new;">$ sudo update-alternatives --config java</span><br /><br /><span style="font-family: courier new;">Existem 2 alternativas que fornecem `java'.</span><br /><br /><span style="font-family: courier new;"> Seleção Alternativa</span><br /><span style="font-family: courier new;">-----------------------------------------------</span><br /><span style="font-family: courier new;"> 1 /usr/lib/jvm/java-6-sun/jre/bin/java</span><br /><span style="font-family: courier new;">*+ 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java</span><br /><br /><span style="font-family: courier new;">Pressione enter para manter o padrão[*] ou digite o número da seleção: 1</span><br /><span style="font-family: courier new;">Usando `/usr/lib/jvm/java-6-sun/jre/bin/java' para fornecer `java'.</span></span><br /><br /></span></span>selecionei a opção 1 e confirmei. Ao digitar java -version novamente recebi a informação de que o Java agora era o de código fechado da Sun:<br /><span style="font-family: courier new;font-size:85%;" ><span style="color: rgb(0, 153, 0);">$ java -version</span><br /><span style="color: rgb(0, 153, 0);">java version "1.6.0_06"</span><br /><span style="color: rgb(0, 153, 0);">Java(TM) SE Runtime Environment (build 1.6.0_06-b02)</span><br /><span style="color: rgb(0, 153, 0);">Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)</span></span><br /><br />Testei minha aplicação java novamente e esta voltou a funcionar.<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-3165487998042777219?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-57096557336341443152008-06-25T08:46:00.002-03:002008-06-25T11:43:16.284-03:00Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!…e também a pen drives, card drives, camisetas geeks, livros e mais! O <a href="http://br-linux.org/">BR-Linux</a> e o <a href="http://efetividade.net/">Efetividade</a> lançaram uma <a href="http://br-linux.org/2008/campanha-wikipedia/">campanha</a> para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e <a href="http://br-linux.org/2008/campanha-wikipedia/">participe</a> - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-5709655733634144315?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0tag:blogger.com,1999:blog-85208447058897228.post-73953376817444058292008-06-18T14:56:00.007-03:002009-04-14T16:52:50.192-03:00Falha na instalação do Oracle-XE no Fedora Core 5<span style="font-size:100%;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;">Na instalação do Oracle-xe, além da popular "libaio" sem a qual o Oracle não se instala, é preciso também garantir que o pacote "bc" também esteja instalado, do contrário podemos receber o erro abaixo no momento da instalação:</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /><br /></span></span></b><span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;" ># rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm<br />A preparar... ########################################### [100%]<br />1:oracle-xe ########################################### [100%]<br />Executing Post-install steps...<br /><br />/var/tmp/rpm-tmp.27974: line 37: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 38: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 39: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 40: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 41: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 42: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 43: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 44: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 45: test: !=: unary operator expected<br />/var/tmp/rpm-tmp.27974: line 50: bc: command not found<br />/var/tmp/rpm-tmp.27974: line 51: test: !=: unary operator expected<br />/var/tmp/rpm-tmp.27974: line 56: bc: command not found<br />You must run '/etc/init.d/oracle-xe configure' as the root user to<br />configure the database.</span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><span style="font-size:85%;"><br /></span></span></span></b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br />Podemos notar que, apesar dos avisos de erro a instalação é concluída, pois o pacote do Oracle não valida se a "bc" está instalada. Com isso não conseguiremos de forma alguma criar a nova base por mais que rodemos o comando "/etc/init.d/oracle-xe configure".<br /><br />Para resolver este problema basta que seja instalado o pacote "bc" com o yum ou através do download do rpm. No exemplo vou usar o "yum":</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /><br /></span></span></b><span style="color: rgb(0, 0, 0);font-size:85%;" ><span style="font-family:Verdana;"><span style="font-family:courier new;"># yum install bc</span><br /><span style="font-family:courier new;">Loading "installonlyn" plugin</span><br /><span style="font-family:courier new;">Setting up Install Process</span><br /><span style="font-family:courier new;">Setting up repositories</span><br /><span style="font-family:courier new;">core [1/3]</span><br /><span style="font-family:courier new;">extras [2/3]</span><br /><span style="font-family:courier new;">updates [3/3]</span><br /><span style="font-family:courier new;">Reading repository metadata in from local files</span><br /><span style="font-family:courier new;">Parsing package install arguments</span><br /><span style="font-family:courier new;">Resolving Dependencies</span><br /><span style="font-family:courier new;">--> Populating transaction set with selected packages. Please wait.</span><br /><span style="font-family:courier new;">---> Package bc.i386 0:1.06-19.2.1 set to be updated</span><br /><span style="font-family:courier new;">--> Running transaction check</span><br /><br /><span style="font-family:courier new;">Dependencies Resolved</span><br /><br /><span style="font-family:courier new;">=============================================================================</span><br /><span style="font-family:courier new;"> Package Arch Version Repository Size </span><br /><span style="font-family:courier new;">=============================================================================</span><br /><span style="font-family:courier new;">Installing:</span><br /><span style="font-family:courier new;"> bc i386 1.06-19.2.1 core 106 k</span><br /><br /><span style="font-family:courier new;">Transaction Summary</span><br /><span style="font-family:courier new;">=============================================================================</span><br /><span style="font-family:courier new;">Install 1 Package(s) </span><br /><span style="font-family:courier new;">Update 0 Package(s) </span><br /><span style="font-family:courier new;">Remove 0 Package(s) </span><br /><span style="font-family:courier new;">Total download size: 106 k</span><br /><span style="font-family:courier new;">Is this ok [y/N]: y</span><br /><span style="font-family:courier new;">Downloading Packages:</span><br /><span style="font-family:courier new;">Running Transaction Test</span><br /><span style="font-family:courier new;">Finished Transaction Test</span><br /><span style="font-family:courier new;">Transaction Test Succeeded</span><br /><span style="font-family:courier new;">Running Transaction</span><br /><span style="font-family:courier new;"> Installing: bc ######################### [1/1] </span><br /><br /><span style="font-family:courier new;">Installed: bc.i386 0:1.06-19.2.1</span><br /><span style="font-family:courier new;">Complete!</span><br /><br /></span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;">Após a instalação do pacote "bc" é preciso remover o "Oracle-xe":</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b><span style="color: rgb(0, 0, 0);font-size:85%;" ><span style="font-family:Verdana;"><span style="font-family:courier new;">#rpm -e oracle-xe</span></span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /><br /></span></span></b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;">Reinstalá-lo novamente:</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b><span style="color: rgb(0, 0, 0);font-size:85%;" ><span style="font-family:Verdana;"><span style="font-family:courier new;"># rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm </span><br /><span style="font-family:courier new;">A preparar... ########################################### [100%]</span><br /><span style="font-family:courier new;"> 1:oracle-xe ########################################### [100%]</span><br /><span style="font-family:courier new;">Executing Post-install steps...</span><br /><br /><span style="font-family:courier new;">You must run '/etc/init.d/oracle-xe configure' as the root user to </span><br /><span style="font-family:courier new;">configure the database.</span><br /><br /></span></span><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;">E seguir normalmente os procedimentos seguintes de instalação e configuração:</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><span style="font-size:85%;"><span style="font-family:courier new;"># /etc/init.d/oracle-xe configure</span></span></span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br />Com isso agora veremos que o comando "configure" vai criar os datafiles do Oracle-xe normalmente.</span></span><b><span style="color: rgb(0, 0, 0);"><span style="font-family:Verdana;"><br /></span></span></b></span><div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-7395337681744405829?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com1tag:blogger.com,1999:blog-85208447058897228.post-80842010353942411372008-05-20T12:00:00.005-03:002008-05-20T12:18:27.420-03:00Comparando estruturas de tabelas entre diferentes esquemasHoje precisei comparar a estrutura das tabelas criadas na base oficial e base de testes de um cliente para verificar se havia alguma diferença entre ambas e para isso montei o script abaixo:<br /><br /><span style="font-size:85%;"><span style="font-family:courier new;">select a.table_name tabela,a.column_name coluna,</span><br /><span style="font-family:courier new;"> a.data_type tipo_a,</span><br /><span style="font-family:courier new;"> a.data_length tamanho_a,</span><br /><span style="font-family:courier new;"> a.data_precision precisao_a,</span><br /><span style="font-family:courier new;"> b.data_type tipo_b,</span><br /><span style="font-family:courier new;"> b.data_length tamanho_b,</span><br /><span style="font-family:courier new;"> b.data_precision precisao_b</span><br /><span style="font-family:courier new;">from dba_tab_cols a inner join dba_tab_cols b</span><br /><span style="font-family:courier new;"> on a.table_name=b.table_name and a.column_name=b.column_name</span><br /><span style="font-family:courier new;">where (a.data_type <> b.data_type</span><br /><span style="font-family:courier new;"> or a.data_length <> b.data_length</span><br /><span style="font-family:courier new;"> or a.data_precision <> b.data_precision)</span><br /><span style="font-family:courier new;"> and a.owner = 'BASE_OFICIAL' --Informe aqui o nome da base oficial</span><br /><span style="font-family:courier new;"> and b.owner='BASE_TESTES' --informe aqui o nome da base de testes</span><br /><span style="font-family:courier new;">order by 1,2,3,4</span></span><br /><br /><br />Obs.:<br /><br /> * Tem que rodar com grant de DBA.<br /> * Dúvidas ou sugestões de melhoria postem nos comentários.<div class="blogger-post-footer"><script type="text/javascript"><!-- descrColor="000000";titleColor="0000FF";urlColor="008000";borderColor="336699";bgColor="EEF6FE";altColor="EEF6FE";category="1,8";coddisplaysupplier="0b08ce1abce74eb48716beac3e1b3b7c";formatId="21";has_search="0";numads="2";type="2";deslabel="shopping"; --></script><script src="http://adrequisitor-af.shopping.uol.com.br/uolaf.js" type="text/javascript"></script><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85208447058897228-8084201035394241137?l=alexsandrohaag.blogspot.com'/></div>Alexsandro Haaghttp://www.blogger.com/profile/08337663841076098696noreply@blogger.com0