Instalação do Oracle para Linux HOWTO <author>Stephen Darlington, <tt>stephen@zx81.org.uk</tt> Traduzido por Fernando Boaglio <tt> <htmlurl url="mailto:fernandoboaglio@netscape.net" name="fernandoboaglio@netscape.net"></tt> no dia 14 de agosto de 2001. <date>v1.16, 11 de Junho de 2000 <abstract> Com esse HOWTO, e um pouco de sorte, você poderá ter o "Oracle 8i Enterprise Edition for Linux" instalado, criando um banco de dados e conectando-o a uma maquina remota.O foco principal desse guia eh o Red-Hat Linux 6.0, entretando deverá funcionar mais ou menos em qualquer outra distribuição recente. </abstract> <toc> <sect>Introdução <sect1>O que esse documento contém ? <p> Linux eh bem conhecido como sendo difícil de usar e, geralmente, não muito amigável. Sendo um pouco fã de UNIX , eu não tenho certeza se eu concordo ou não com isso. O Oracle é parecido, eu acho. No início é difícil manipulá-lo, mas é difícil trabalhar com qualquer outro RDBMS (Sistema Gerenciador de Banco de Dados Relacional) quando já se está costumado. Combinando os dois, lembre-se que 8i é somente uma segunda versão, e você perceberá que isto não será tão simples mesmo se você está familiarizado com ambos. Eu estou, mas tive problemas. Muitos problemas foram estupidez ou presunção, mas eu documentei tudo. <sect1>Para quem é esse HOWTO ? <p> Em primeiro lugar, esse documento eh para pessoas que queiram instalar o Oracle 8i versão 8.1.5 no RedHat Linux 6.0.e qualquer outra configuração reduzir as chances de uma instalação bem sucedida (eu tentei a princípio escrever esse guia para todos os tipos de Linux e as versões recentes de Oracle, mas a sua estrutura não era clara e não foi tão útil para todos) . Para diferentes distribuições as chances de uma instalação bem sucedida são boas, especialmente se você usar distribuições baseadas no RedHat, como por exemplo o Mandrake. Novamente, acesse o meu site se tiver problemas com outras distribuições. Se você quer instalar a 8.0, eu recomendo tentar <url name="Linux Journals guide" url="http://www2.linuxjournal.com/lj-issues/issue67/3572.html">, e se você quiser instalar qualquer versão anterior, você terá que usar a versão para SCO e seguir as instruções de Paul Haigh's <url name="Oracle Database HOWTO" url="http://www.linuxdoc.org/HOWTO/Oracle-7-HOWTO.html">. Se você está tentando instalar a versão 'correta', qual a experiência necessária que você precisará ? Talvez a maneira mais fácil seja eu escrever sobre minha experiência, se a sua for semelhante nós estaremos indo pelo mesmo caminho. Eu tenho usado vários tipos de Unix com Oracle nos últimos anos. Em casa eu tenho usado Linux desde 1994 e eu venho usando Solaris e HP-UX desde 1992. A primeira vez que mexi com Oracle foi em 1996 e tenho trabalhado com ambas versões 7 e 8. Eu sou basicamente um desenvolvedor, mas já fiz trabalhos de DBA (Administrador de Banco de Dados) e de Sysadmin (Administrador de Systemas). Resumindo, eu me viro muito bem com Unix e eu sei bastante sobre a terminologia Oracle. Você precisará das duas coisas para encarar o resto desse documento. Mas não se preocupe se você não for experiente, siga as instruções com cuidado e continue fazendo perguntas. A comunidade Linux é solidaria, mas não espere uma resposta se você nem ao menos fez esforço para resolver o problema por si próprio. <sect1>Novas versões desse documento <p> Depois de seis meses de frequentes, raramente grandes, atualizações esse documento agora parece estar estável ao ponto onde somente novas atualizações da Oracle pedem uma nova versão. Como eu já disse, vale a pena olhar no <url name="meu web site" url="http://www.zx81.org.uk/"> para quaisquer atualizações, principalmente se essa versão não responde às suas dúvidas. Você irá achar mais material de Oracle e Linux também. <sect1>Garantia <p> Você terá o que você pagou. Eu não ofereço garantia nenhuma de nenhum tipo, implícita ou explícita. Eu irei ajudá-lo onde eu puder, mas legalmente falando não conte comigo. <sect1>Créditos e Agradecimentos <p> Este HOWTO foi escrito por Stephen Darlington. Não poderia ser criado sem as constantes sucessivas perguntas e respostas da Oracle Technet e da Usernet news-groups. Portanto, obrigado ao pessoal que continua colocando mensagens e desculpas a todos porque eu não posso agradece-los individualmente! Agradecimentos às seguintes pessoas, sem ordem de preferência, pela contribuição para esse documento: Ton Haver, Guy Cole, Iain Frerichs, Albert Braun, Steve Morando, Krill Kokoshka, Brain Slesinsky, Galen G Burk e Bill Gathen. Eu aprecio qualquer retorno construtivo para esse HOWTO e qualquer assunto importante voltado a Oracle ou Linux. Entretando, se você tiver alguma dúvida é melhor perguntar em um newsgroup onde outros poderão se beneficiar das respostas. Mande um e-mail pra mim no endereço <url url="mailto:stephen@zx81.org.uk" name="stephen@zx81.org.uk">. <sect1>Licença <p> Este documento tem copyright 2000 Stephen Darlington. Você poderá usá-lo e reproduzi-lo livremente, desde que: <itemize> <item>Não omita ou altere as informações de copyright. <item>Não omita ou altere a versão e a data. <item>Não omita ou altere o link para a atual versão na web. <item>Marque claramente qualquer parte resumida ou alterada. </itemize> Estas restrições tem o intuito de proteger alguns leitores de versões erradas e não originais. Se voc6e acha que o seu caso é uma exceção, pergunte-me. (Essas informações de copyright notice foram inspiradas no HOWTO de Eric Raymond.) <sect>Largada <sect1>Visão Geral <p> Nessa seção nós iremos configurar o Linux de tal maneira que você possa instalar no seu hard-disk o Oracle 8i do CD que eles te mandaram. O processo de instalação do Oracle começa quando você tem o seu PC com Linux instalado, configurado e conectado a sua rede. <sect1>Pre-requisitos <sect2>Hardware <p> Eu acho que a parte mais importante dos pre-requisitos é não subestimá-los. O Oracle é uma enorme e complexa aplicação e você não terá o melhor dele se você analisar o hardware superficialmente. Meu grande erro foi assumir que a Oracle estava brincando quando eles disseram que você precisa de 128Mn de RAM. Eu tenho instalado Oracle algumas vezes em servidores Sun com esse tanto de memória, porque eu precisaria mais numa máquina CISC ? Não quiz acreditar na Oracle.Minha maquina com 32Mb de RAM trabalhou duro por quase meia hora antes de eu perceber que não tinha jeito. Eu estava tentado usar o mínimo necessário de hardware que geralmente é uma má idéia. Se você não pode bancar o hardware com certeza você não poderá bancar as licenças! Por outro lado, qualquer máquina que pode rodar Linux e tenha memória suficiente terá uma chance. Minha outra máquina, a que eu usei para o resto desse documento, é adequada para uma máquina de desenvolvimento. É um Celeron de 466Mhz com 128Mb de RAM, um hard-disk de 8Gb, uma placa de video da Intel e uma placa de rede DM9102. <sect1>Configuração do Linux <sect2>Escolha de distribuição <p> A Oracle parece ter baseado a maioria de seu desenvolvimento no RedHat Linux 6.0 . Para uma instalação sem problemas, faça o mesmo. Eu tenho ouvido histórias horríveis sobre tentativas de instalação em outras distribuições. Entretanto, qualquer coisa parecida com o RedHat deve funcionar. Uma versão recente do Mandrake deve funcionar, assim como novas versões do RedHat. Já o SuSE suporta Oracle e tem uma <url url="http://www.suse.com/us/solutions/partners/oracle/" name="webpage"> dedicada ao assunto. <sect2>Configuração da Distribuição <p> Agora que você já decidiu em qual distribuição semelhante ao RedHat você irá utilizar, você precisará saber quais opções selecionar dentro do grande número de pacotes necessários para fazer o Oracle funcionar. Em primeiro lugar você vai precisar ter uma partição de swap de duas a três vezes o tamanho da memória (você precisará em torno de 200Mb de memória , real ou virtual, somente para rodar o installer!). Note que ao contrário da opinião pública, as partições de swap do Linux poder ser maiores que 128Mb. Os ajustes de suas outras partições também podem ser importantes. Tenha certeza que o software Oracle fique numa partição diferente do seu sistema operacional, e certifique-se que os datafiles do Oracle já estejam na outra partição. A idéia aqui é ter certeza de não ter datafiles fragmentados (em um ambiente real, você poderá alguns discos com o Oracle distribuído neles. Existem bom livros que você pode consultar com mais informação sobre o assunto). Em relação ao software, eu escolhi a opção easy e instalei tudo. Você certamente necessitará todos os pacotes básicos, os pacotes X Windows (a rotina de instalação é uma interface gráfica JAVA) e as ferramentas de desenvolvimento, independente que você pretenda programar ou não. Comparado o tamanho do Oracle e de seus bancos de dados, a distribuição Linux é pequena, provavelmente menor que um gigabyte. Vale a pena instalar tudo para ficar tranquilo! <sect2>Parâmetros do Kernel <p> A documentação sugere que você faça mudanças no kernel do Linux de maneira que você possa ter mais memória compartilhada. Desde que isso é tão difícil no Linux (ao contrário da maioria dos UNIX's comercializados você deve recompilar o kernel), na fórmula que eu adotei eu instalei assim mesmo. As configurações default do RedHat Linux funcionaram, mas você deverá muda-las para um ambiente de desenvolvimento grande ou um ambiente de produção. Note que alguém vai precisar recompilar o kernel para ter o Oracle funcionando 100%. Eu acho que deve depender do outro software que você vai rodar na mesma máquina. Siga as instruções da documentação da Oracle (no CD de instalação em formato HTML) e o <url name="Linux Kernel HOWTO" url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html"> para configurar o seu novo kernel. <sect2>Usuários e grupos <p> Usando linuxconf (ou qualquer outro método que você esteja acostumado), adicione um novo grupo chamado "dba" e um novo usuário "oracle" que pertença a esse grupo "dba". Você poderá fazer qualquer outro usuário ser um DBA colocando-o no grupo DBA. Se você tem vários DBA's, isso é uma boa idéia para auditoria. <sect2>Instalando o Java Virtual Machine correto <p> A Oracle obviamente aterrorizou com o Java na sua primeira versão. Todas as versões 8i desde a 8.1.5 tem inclusa a sua própria máquina virutal, logo você não precisa ter o seu. De fato, certifique-se de que removeu qualquer referência (você não precisa apagar, somente remova do PATH e certifique-se de que as variáveis JAVA_HOME e CLASSPATH estão configuradas). O instalador é já é bem temperamental sem essas variáveis. Se você está usando a 8.1.5 , leia isso: Se você checar a documentação oficial, você descobrirá que a Oracle recomenda o Java Runtime versao 1.1.6v5 da Blackdown. Isto é exatamente o que você precisa. Não pense que 'novas versões terão menos bugs' que o installer não funciona. E não pense que 'eu vou desenvolver software, então eu vou baixar o JDK' que não vai funcionar também. Tem um porém ao usar essa versão do JRE: a Oracle espera que o executável java esteja no diretório <tt>/usr/local/jre/bin/jre</tt>. Enquanto existir esse inconveniente, não significa que você deve instalar necessariamente lá. Eu segui os seguintes passar para ter um JRE funcionando: <enum> <item>Faça o download do Java Runtime Environment do site <url name="Blackdown website" url="http://www.blackdown.org"> <item>Mova para o diretório a instalar o JRE: <verb>cd /usr/local</verb> <item>Descompacte o arquivo: <verb>bzip2 -d -c jre-1.1.6-v5-glibc-x86.tar.bz2 | tar xvf -</verb> <item>Crie um link simbólico entre o JRE e onde a Oracle exige: <verb>ln -s jre116_v5 jre</verb> </enum> <sect1>Começando com as perguntas e respostas <sect2>Eu realmente preciso de 128Mb de RAM? <p> Eu recomendo que você use 128Mb de RAm ou mais. Eu acho que seria difícil ter um trabalho sério com menos que isso. Entretanto, se você desabilitar a opção Java e configurar toda a memória compartilhada relativamente pequena, não existe razão por que não funcionar. Eu tenho escutado histórias de sucesso com 64Mb. Você provavelmente não conseguir o mesmo com 32Mb. Existe um porém. Você deve ter ao menos metade do que a Oracle recomenda para conseguir rodar, mas para instalar esse numero deles começa a fazer sentido. Eu tenho ouvido falar que o instaler usa 150Mb de memória eeu mesmo cheguei a usar 120Mb. Se você tem 64Mb ou menos de memória, tenha certeza que você tenha muito espaço de swap e muita paciência. Uma outra alternativa é se você não pode adicionar memória: instale o Oracle em outra máquina melhor, depois copie o diretório <tt>/$ORACLE_HOME/</tt> . Você deverá certificar de ter todos os mesmos usuários e grupos (de preferência de mesmo número) e ter um cuidado especial com os executáveis SUID como <tt>$ORACLE_HOME/bin/oracle</tt>. <sect2>Vai funcionar com RedHat 6.1 ou superior? <p> Eu ainda estou rodando o 6.0, logo tudo que eu posso dizer é que algumas pessoas tem tido sucesso nessa configuração. Quando esse documento foi escrito, o Oracle 8i estava certificado para RedHat 6.0 e "Certificação para outras distribuições em desenvolvimento" (FAQ do Oracle 8i Patch). <sect2>Funciona com Debian/SuSE/Mandrake/alguma outra distribuição? <p> Oracle especificou que deve ser um Linux com Kernel 2.2 e GLIBC 2.1 com qualquer window manager. Em teoria, qualquer distribuição que tenha essas características deve funcionar. Na prática, a Oracle não deve suportar e você deve ter mais problemas tentando instalar tudo. A menos que você tenha um bom motivo eu sugiro usar o RedHat 6.0 com todos os patches que você puder pegar. Só para constar, eu tenho escutado histórias de sucesso com todas as outras distribuições ( eu mesmo testei o Mandrake 7.1). Algumas, entretanto, tem causado constantes problemas, sendo Slackware o principal deles. <sect2>Funciona com distribuições baseadas em GLIBC 2.2 ? <p> Até o presente momeneto, RedHat 7.x e outras distribuições baseadas em GLIBC 2.2 tem sido um tanto problemáticas (entretanto /é/ possível fazer funcionar). De fato existe <url name="um bug reportado" url="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=18391"> no site da RedHat falando sobre um problema em particular. Resumindo, a RedHat recomenda o RedHat 6.2 para Oracle ou força a usar a versão antiga da C/glibc enviada para criação do kernel. <url url="http://www.zx81.org.uk/" name="Meu site"> tem informações mais atuais sobre o assunto. <sect2>Funciona com Kernels em desenvolvimento? <p> Não existe motivo para que não funcione -- eu usei a 2.3.19 por certo tempo porque eu suportava a minha placa de rede e a versão estável do kernel naquela época ainda não tinha suporte -- ao menos que tenha necessidade a maneira mais segura é não usar kernels em desenvolvimento. Eu mudei para o kernel estável assim que o driver da minha placa foi incluído. <sect2>Funciona com o Linux 2.4? <p> (Quando esse documento foi concluído, o Linux 2.4 tinha acabado de ser lançado. As principais distribuições estão apénas começando a enviar as novas versões atualizadas e eu não estou ciente de nenhuma versão de Oracle para tal ambiente. Entretanto, o novo kernel tem uma série de novas características e melhorias de performance que o Oracle poderia se beneficiar, mas será que você pode usar sem o risco de um desastre? A resposta é um cauteloso "sim". Geralmente o kernel é compatível com os 2.2.x e eu não tenho notado problemas nem com o 2.3 e os mais recentes 2.4-test betas. <sect2>Onde eu consigo o Oracle? <p> Em primeiro lugar, você deve ser corajoso, tem uma conexão de Internet rápida ou uma infindável paciência (e acesso ilimitado) você pode baixar do site <url name="Oracle Technet" url="http://technet.oracle.com/">. Atenção: tem quase 200Mb e o 8.1.6 é ainda maior. Uma opção mais adequada é conseguir o CD. A Oracle as vezes se oferece para te mandar um CD de desenvolvimento gratuitamente quando você participa da Technet. Vale a pena gastar algum tempo no site procurando algo do tipo. Outra alternativa é comprar o CD da Oracle Store por $40. Ele inclui vários outros softwares e vêm em 15 CDs. <sect>O installer <sect1>Como? <p> Geralmente seguir a documentação é uma boa idéia. Não é assim tão ruim e você terá maior suporte da Oracle (se você tiver contrato). (eu acabei estrangando um ambiente -- e sabendo que iria estragar -- seguindo a documentação para Oracle Applications. Foi a única maneira de ter um suporte descente.) Este documento te dará uma visão geral, mas você ainda deve consultar a documentação da Oracle. <sect1>O que eu informo no programa de instalação? <p> Durante a instalação , o Oracle irá fazer algumas perguntas. Geralmente elas não são tão difíceis mas vamos ver o que responder e porquê. <enum> <item>Muitas pessoas cometem o erro de seguir as instruções da documentação da Oracle e, portanto, falhar no primeiro obstáculo. Não tente executar o <tt>runInstaller</tt> porque quase sempre falha. Ao invés disso, vá ao diretório <tt>install/linux</tt> no CD e execute <tt>runIns.sh</tt> logado como 'oracle'. <item>Quando aparecer a tela do installer clique em 'Next.' <item>Deve te pedir para entrar o diretório fonte dos arquivos de instalação (o arquivo 'jar') e o diretório de instalação do Oracle. Não mexa no primeiro. O diretório do Oracle será onde você quiser instalar o software. De acordo com a documentação de instalação deve ser em algo do tipo <tt>/u01</tt>, mas eu ignorei isso e coloquei em <tt>/home/oracle</tt>. Geralmente as sugestões da Oracle, nesse caso, valem a pena. Clique 'Next' quando você tiver especificados todos os detalhes. <item>Agora irá perguntar sobre o grupo DBA. Este o grupo do Unix que você criou na seção anterior, e provavelmente é 'dba'. Entre com os detalhes e clique 'Next.' <item>Agora você deve se logar como 'root' e execute o arquivo <tt>/tmp/OraInstall/orainstRoot.sh</tt>. Faça como pedido (você deve rodar <tt>pdksh</tt> ou <tt>bash</tt> em 'Bourne compatibility mode' para funcionar perfeitamente). Quando estiver pronto, clique em 'Retry.' <item>Agora você terá a opção de escolher o que instalar. A melhor escolha é 'Oracle Enterprise Edition', pois inclui tudo (na documentação da Oracle a tabela 3.1 diz exatamente o que é instalado). Tenha certeza que o radio button da direita esteja selecionado e clique 'Next.' <item> Agora deve permitir que você escolha as opções de instalação bem detalhadas. Ao menos que você não tenha espaço suficiente ou saiba exatamente o que precisa, eu recomendo deixar exatamente como veio e clicar 'Next'. O Universal Installer não deixará você fazer escolhas erradas, portanto não fique muito preocupado se você excluir alguma opção. Você poderá adicionar algo depois sempre. <item>Para quaisquer produtos que você pediu para instalar, o installer permitirá que você mude o local de instalação. Novamente, mude o local somente se você tiver um bom motivo. Clique em 'Next' quando terminar. <item>Agora vai instalar tudo que você pediu. Provavelmente vai demorar um pouco e irá usar mais memória do que precisa. <item>Agora deverá perguntar se você quer criar o banco de dados. Selecione 'no'. Existem doas razões para isso: geralmente não funciona e, mesmo quando isso acontece, é muito lento (parece iniciar outro JVM,deixando o X, o back-end do Oracle e <it/duas/ maquinas virtuais, não fica bom com 128Mb de memória). <item> O installer deve perguntar sibre os protocolos de rede que você deseja que o Oracle suporte. Sempre aparece tudo em branco para mim. Eu não sei o que deveria aparecer ali, mas eu cliquei 'Next' e parece que tudo funcionou bem. <item>Todo o trabalho duro está feito. Todos os produtos que você queria devem estar instalados e prontos para usar. Parabéns. </enum> <sect1>Instalando o patch <p> Infelizmente o CD que a Oracle te enviu foi provavelmente a versão 8.1.5.0.0. Assim como a maioria das primeiras versões , essa versão tem problemas ( que incluem arquivos vazios, portanto são problemas sérios)e tem patch para a versão 8.1.5.0.2, que é fundamental. Você certamente vai precisar consultar a seção "Configuração" desse HOWTO. O patch descrito aqui é um patch acumulativo, isto é, ele inclui todos os arquivos para mudar da versão 8.1.5.0.0 para a 8.1.5.0.2. O arquivo que você precisa está no site <url name="site da Oracle" url="http://technet.oracle.com/software/products/oracle8i/software_index.htm"> e é relativamente fácil de instalar. <enum> <item>Este provavelmente é o primeiro de vários patches, então crie um diretório chamado "patches" em algum lugar conveniente (o meu está em <tt/$ORACLE_HOME/). <item>Baixe o arquivo nele. <item>Crie um lugar para colocar os arquivos: <verb>mkdir /tmp/orapatch cd /tmp/orapatch</verb> <item>Descompacte o arquivo: <verb>tar zvxf $ORACLE_HOME/patches/linux815patches.tgz</verb> <item>Rode o script que está agora no diretório corrente: <verb>./linux_815patches.sh</verb> </enum> Note que é importante não descompactar o arquivo que no diretório corrente. O installer do patch verifica que o numero correto de arquivos presentes e não roda se não for o número correto. É claro que se ele achar o próprio arquivo do patch compactado ele vai encontrar arquivos demais! <sect1>Configurando o seu ambiente <p> Adicione as seguintes linhas ao seu ".profile" (ou equivalente no seu shell): <verb> . oraenv export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib </verb> Porque o installer da Oracle não faz isso eu não faço a menor idéia. Se você ver "<tt/[: integer expression expected before -lt/" da próxima vez que você se logar, é porque o 'oraenv' está esperando a sua variável ULIMIT ser um valor inteiro ao invés do valor default 'unlimited'. Eu não tenho visto problema algum em ignorar esse erro, mas você pode arrumá-lo simplesmente atribuindo a ULIMIT algum valor finito. <sect1>Perguntas e respostas de instalação <sect2>O installer sai com a mensagem 'CreateOUIProcess()' <p> Em primeiro lugar, certifique-se que você está rodando a versão correta do JVM. Eu não sei o que a Oracle faz com o software dela, mas é depende muito da versão que você usa. Em segundo lugar, pode ser útil se, ao invés de rodar <tt/runInstaller/ da raiz do CD, você pode ir para <tt>install/linux</tt> e rodar o script <tt/runInst.sh/ . Este porblema é bem mais comum no RedHat 6.1 que no 6.0, e pode ser algo relacionado com alguma biblioteca C nova. Eu tenho ouvido falar que se você tem a versão errada do window manager mais comum do GNOME, o Enlightenment, pode ocorrer esse problema. Atualize ou mude para outro ambiente como o KDE ou o Fvwm2. <sect2>O installer aparece na tela como um flash e logo em seguida desaparece <p> Isto não é tão incomum. Geralmente significa que você está rodando uma versão antiga do Enlightment. Atualizando ou trocando para outro ambiente deve resolver o problema. Um problema semelhante é o installer sumir em certo ponto do processo, geralmente entre os 80%. Acredita-se que isso ocorra por falta de memória. Você deve aumentar o tamanho do swap da sua maquina, qualquer coisa além de 200Mb deve ser suficiente. <sect2>Acontecem estranhos erros de Java quando eu inicio o installer <p> Qual versão do JVM você está usando? Muita gente diz que funciona com outras versões, mas eu quando eu baixei pro JRE 1.1.6 (que a documentação da Oracle recomenda) a maioria dos problemas acabaram. Duas outras coisasa que valem a pena mencionar: certifique-se que você está usando o JRE e não o JDK.Em segundo lugar, você deve estar usando "green" threads. Ao menos que você configure a variável THREADS_FLAG igual a 'native' você certamente tem a configuração correta. <sect2>O installer mostra 'segmentation fault' <p> Você tem GLIBC 2.1, não é mesmo? <sect2>Problemas no carregamento de bibliotecas compartilhadas <p> A mensagem de erro que eu estou falando parece um pouco com essa: <verb/error in loading shared libraries: libclntsh.so.8.0: cannot open shared object file: No such file or directory/ É a mesma coisa que o NT reclamando que não acha uma DLL. É bem fácil de arrumar. Simplesmente adicione a seguinte linha ao final do seu arquivo ".profile" se você estiver usando uma Bourne shell (pergunte ao seu guru local se você não sabe): <verb>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib</verb> Ou use o seguinte linha se você está usando uma CSH shell: <verb>setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH $ORACLE_HOME/lib"</verb> Eu não uso a C-Shell, portanto a verificação desse comando fica a seu critério. <sect2>O Pro*C não funciona <p> A resposta para essa pergunta deu um bom trabalho, pesar da resposta <it/estar/ no website da Oracle se você procurar o bastante. A configuração default do Pro*C não sabe onde encontrar todas as suas bibliotecas, logo você precisa dizer onde elas estão. Depois da instalação, o arquivo <tt>$ORACLE_HOME/precomp/admin/pcscfg.cfg</tt> está vazio, mas precisa conter o seguinte: <verb>sys_include=(/home/oracle/precomp/public, /usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/, /usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include, /usr/include) include=(/home/oracle/precomp/public) include=(/home/oracle/rdbms/demo) include=(/home/oracle/network/public) include=(/home/oracle/plsql/public) ltype=short</verb> (As primeiras quatro linhas acima , do <tt/sys_include/ ao <tt/include)/ devem ser todas na mesma linha dentro do arquivo.) A documentação da Oracle não menciona isso, mas você também precisa editar o arquivo <tt>$ORACLE_HOME/precomp/lib/env_precomp.mk</tt>. Na linha que define o <tt/CCPSYSINCLUDE/, coloque o seguinte: <verb>CCPSYSINCLUDE=sys_include='($(ORACLE_HOME)/precomp/public, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include, /usr/include/g++-2, /usr/include)'</verb> Isso funcionou para o RedHat 6.0, mas precisa arrumar mais para outras distribuições ou versões mais recentes do RH. <sect2>Eu instalei o patch mas agora piorou! <p> Isto é complicado e quase não documentado pela Oracle e é bem comum em todos os seus produtos e installers.Já é hora deles fazerem algo a respeito! Geralmente o que acontece: você instala o Oracle Enterprise Edition e, como a Oracle te falou, você baixa e instala todos os patches existentes. Então você decide usar os pré-compiladores e instalar o Oracle Programmer do mesmo CD. Antes de instalar o Pro*C o seu banco funcionava e agora não funciona mais. O problema é que as versões dos pré-compiladores que você instalou não está com patch aplicado e alguns programas do Oracle estão ligados às correções; o installer da Oracle é tão burro que sobrepõe novas versões do mesmo código. A solução não é simples. Uma vez que você não pode extrair um único arquivo do CD, você precisa instalar tudo novamente, dessa vez instale o Oracle Programmer antes de instalar o patch. <sect2>O Oracle acha que eu não tenho espaço livre suficiente no disco <p> Existe algo errado com o programa de instalação.Assumindo que você <it/tenha/ espaço livre suficiente, vai instalar sem problemas. <sect>Criando um banco de dados <sect1>Visão Geral <p> Provavelmente se você seguiu o conselho da seção anterior, você não criou o banco de dados. Para muitas pessoas, eu posso esquematizar o processo em poucas palavras: "rode o 'dbassist'". Ao menos que seja a primeira vez que você estiver rodando Oracle, nenhuma das questões deve ser novidade. Para completar, eu vou documentar o que eu fiz mas eu diria melhor o que eu propondo em primeiro lugar. Observação: este não é um sistema de produção nem algo 'sério' (ou seja, de grupo ou full time) de desenvolvimento. Eu instalei o 8i para testar e ver se era novo ou diferente do 8 e das versões anteriores. Isto significa que o 'dbassist' oferece uma opção fácil e eu a escolhi. E quando eu sugeri um outro disco, ou ao menos uma partição diferente, foi recusado. Meu <tt/$ORACLE_HOME/ é <tt>/home/oracle</tt>. Todos os arquivos e softwares estão lá, todos em uma única partição. <sect1>Guia passo a passo <p> <enum> <item>Chame o prompt e digite: <verb>dbassist</verb> <item>Na minha máquina mostra "JNLS Exception:oracle.ntpg.jnls.JNLSException. Unable to find any National Character Sets". De acordo com o FAQ do Oracle 8i Patch , este problema já é conhecido (884001) e pode ser ignorado. <item>Selecione a opção "Create a database" e clique em "Next" <item>Existem duas opções: Typical e Custom. Se você sabe exatamente o que está fazendo então provavelmente você não estaria lendo isso e poderia selecionar a opção "Custom" sem problemas. Eu não vou explicar essa parte. Ao invés disso, eu vou assumir que você selecionou "Typical" e clicou em "Next". <item> Depois será perguntado se você quer copiar o banco de dados do seu CD ou quer criar o banco de dados. Sempre que eu tentava a primeira opção, o Oracle não conseguia achar meu CD player (você simplesmente acabou de instalar dele!). Então eu recomendo usar a segunda opção. Não é difícil, apenas mais demorado. <item>Provavelmente é mais seguro selecionar 'Hybrid' quando perguntar em qual ambiente o banco de dados irá operar. <item>Agora vai perguntar para quantos usuários o seu banco de dados será usado. Eu coloquei cinco. <item>Depois vai perguntar quais os produtos que você quer instalar no seu novo banco de dados. Mais uma vez, você sabe melhor que eu o que você quer ! <item>O Oracle precisa agora de um "Global Database Name" e um "SID". O nome do banco de dados é como se fosse um nome de domínio, mas diferente. Se você for um guru de Oracle já sabe o que colocar, caso contrário sua empresa deve ter algum padrão de nomes.Eu chamei o meu de 'dev1' (ambos SID e nome do banco). <item>Agora você quer criar o banco agora ('now') ou salva as configurações em um script? Com 128Mb de RAM eu achei a primeira opção dolorosa. Eu criei o script, sai do X e de qualquer coisa que usasse muita memória, então eu rodei o script. Muito mais adequado. <item>Eu não tinha notado nada disso na documentação, mas seu banco de dados não irá funcionar direito sem isso! O banco de dados que o 'dbassist' cria não tem problemas, mas por default os segmentos de rollback de usuário são deixados off-line (traduzindo: usuários não administradores não podem fazer qualquer operação que envolva transação). Digite: <verb>cd $ORACLE_HOME/dbs</verb> Você precisa editar o arquivo chamado "init<SID>.ora" ("initdev1.ora" no meu caso). Mais ou menos no meio tem uma linha comentada parecida com isso: <verb># rollback_segments = (r01, r02, r03, r04)</verb> Descomente essa linha (remova o #), grave o arquivo e está terminado. <item> Agora alguns passos extras. Você tem um banco de dados e deve ser capaz de coloca-lo no ar, mas provavalmente não sabe quais são as senhas dos administradores! Aqui são duas que você precisa saber. A primeira é a senha do usuário SYSTEM. O seu valor default é '<tt/MANAGER/'.Parece ser convenção que a Oracle coloca as senhas em maiúsculas. Na realidade as senhas não são case sensitive. Eu recomendo que você mude assim que puder digitando <tt/password/ no prompt do SQL*Plus.Para os que estavam esperando o comando <tt/ALTER USER/ , essa é a nova versão do SQL*Plus que vem no 8i. A outra senha que você precisa saber é a do usuário SYS. O seu valor default é '<tt/CHANGE_ON_INSTALL/' e você deve fazer exatamente o que ele diz: mude_ao_instalar ! <item>Último passo. Esse passo você se livra da irritante mensagem 'no profile' toda vez que você se loga no SQL*Plus. Logue-se no SQL*Plus como usuário 'system' (<tt>sqlplus system/<password></tt>). Depois digite: <verb>@?/sqlplus/admin/pupbld.sql</verb> A interrogação é a mesma coisa que o diretório <tt/$ORACLE_HOME/ . <item>Este passo é opcional e é usado para definir o seu editor de textos default do SQL*Plus (ao digitar <tt/ed/). Abra o arquivo <tt>$ORACLE_HOME/sqlplus/admin/glogin.sql</tt> no seu editor favorito e adicione a linha <tt>define_editor=<editor name></tt> no final. </enum> É isso. Você deve ter agora um banco de dados que você consegue se logar usando o SQL*Plus. <sect1>Perguntas e respostas <sect2>É realmente fácil assim ? <p> Sim e não. Se você está brincando, construir um banco de dados pra aprender as novas características do 8i, então a resposta é 'sim'. O banco de dados que você vai construir seguindo as instruções acima é completo e vai funcionar sem problemas. Entretanto, se você conhece alguma coisa sobre Oracle, você vai perceber rapidamente que a configuração default é extremamente ruim. Se você está fazendo um sistema de produção sério, eu recomendo o uso da opção "Custom". Mesmo para o meu sisteminha eu fiz alguns ajustes. Eu aumentei o tamanho da maioria das tablespaces e mudei para que elas não crescerem automaticamente (eu odeio quando o software tenta ser tão esperto). <sect2>É realmente necessário colocar todos os arquivos em diferentes discos? <p> Não e funciona bem se você não colocar, mas eu não recomendo colocar todos os arquivos no mesmo disco apesar de tudo. Espalhando os arquivos em alguns discos, mesmo que seja os arquivos de dados em um e os arquivos de rollback em outro,terá um considerável aumento de performance. Leia o livro Oracle DBA para maiores detalhes. <sect2>Eu não consigo rodar o dbassist <p> Isso é causado por alguns arquivos vazios na instalação inicial. Aplicando o patch deve resolver o problema. <sect2>Eu recebo a mensagem "ORA-01034: ORACLE not available" <p> Para encurtar a história o seu <tt/$ORACLE_SID/ provavelmente está configurado incorretamente ou não existe. Certifique-se que você configurou-o com o mesmo valor que você deu no 'dbassist' e que esse valor seja atribuído, isto é, <tt/export ORACLE_SID/ em qualquer Bourne shell. <sect2>Eu recebo a mensagem "ORA-01012: Not logged in" <p> Este é um erro bem comum e existem diferentes fatores que podem causa-lo. Em primeiro lugar certifique-se que você não está usando a configuraçã0 "Shared Server" (também conhecida como MTS). Crie um banco usando "Dedicated Server" e depois o converta. Se não for isso, verifique a variável de ambiente <tt/NLS_LANG/. A opção mais fácil é não atribuir nada. Se você realmente quer usar, certifique-se que tem o valor correto. Não confunda os '1's(uns) com os 'l's (eles)! <sect2>Os data-files podem ter até 1Gb de tamanho? <p> O 'dbassist' não vai deixar você criar um data-file maior que 1Gb. Eu acredito que seja um bug pois o Linux pode ter arquivos de ateh 2Gb. Note que isso não limita o tamanho do seu banco de dados para 1Gb ou menos. Um banco de dados é composto de várias tablespaces que podem ser compostas de vários data-files. Converse com seu amigo DBA para maiores informações. <sect2>Posso usar arquivos raw ? <p> Versões recentes do kernel do Linux permitem que as aplicações acessem os discos diretamente. O Oracle é caáz de usar esta facilidade e pode (às vezes) aumentar a performance. Tecnicamente a resposta é 'sim,' , você pode usar arquivos raw, mas na realidade a resposta é 'não'. A melhoria de performace não compensará a sobrecarga de administração. <sect>Configuração <sect1>Visão Geral <p> Parabéns, você tem o Oracle rodando no seu Linux. Você criou um banco de dados e consegue conecta-lo através do SQL*Plus. É claro que não é só isso. Para ser ideal, você deve ser capaz de conectar como outro usuário Unix e de uma máquina diferente. É pra isso que server essa seção desse documento. <sect1>Conectando como outro usuário <p> Algums detalhes nessa seção são meio vagos mas não é a configuração que eu pessoalmente uso. Entretanto, fazendo um dos seguintes passos deve funcionar: <itemize> <item><verb>. oraenv</verb> se você está numa Bourne shell(como Bash ou pdksh) <item><verb>source coraenv</verb> se você prefere C-Shell </itemize> Quando você roda "oraenv" você recebe a mensagem de erro se usar 'bash', a shell default do Linux. Parece que isso não causa problemas, portanto não se preocupe. Você sempre pode usar 'pdksh' se isso <it/realmente/ te preocupar. <sect1>Conectar de uma outra máquina <p> Eu lembro disto sendo bem complicado com versões anteriores do Oracle, mas parece que agora funciona. Eu tenho certeza que deve significar que eu fiz algo de errado, esqueci alguma coisa ou existe uma imensa brecha de segurança. Isto é o que eu lembro de ter feito: <enum> <item>Logar no Linux como usuário 'oracle' <item>Certifique-se que o "oraenv" foi executado, isto é, o seu <tt/$ORACLE_HOME/ configurado corretamente <item>Digite: <verb>lsnrctl start</verb> </enum> Na sua máquina cliente tudo o que você precisa não é apontar para a máquina correta e instance de banco correta. Se você quiser maior controle sobre os processos, o "Net8 Configuration Assistant" ('netec') deve te ajudar. <sect1>Conectar a uma outra máquina <p> Isto costumava ser complicado em versões antigas da Oracle envolvendo a edição de vários arquivos texto, com muitos deles usando uma complexa sintaxe. Entretanto no 8i, se você colocar o seu JVM pra funcionar, somente precisará do programa "Net8 Easy Config". Siga esses passos para permitir que sua máquina conecte ao banco de dados de outra máquina: <enum> <item>Chame o "Net8 Easy Config" digitando <tt/netec/ no prompt estando logado como 'oracle.' <item>Depois de um curto intervalo enquanto o Java trabalha, a tela de "Bem-vindo" aparece Ele deve perguntar o você quer fazer. Deixe os radio buttons da esquerda sem nada (o default é 'create') e entre com o nome do banco de dado no text box. Clique em 'Next' quando terminar. <item>Selecione um dos protocolos oferecidos. Ao menos que o seu caso seja diferente, o default deverá ser 'TCP/IP' . Pressione 'Next.' <item>Entre com o hostname (ou endereço IP) da máquina remota. O número da porta provavelmente não precisa ser alterado. Pressione 'Next.' <item>Selecione o tipo de banco (8i ou outro qualquer) usando os radio buttons e digite o nome dele no text box apropriado. Pressione 'Next.' <item>Você pode testar que a informação que você acabou de digitar faz sentido para o Oracle. Eu acho que 'netec' tem uma tendência para abortar se algum detalhe está errado. Pressione 'Next' quando tiver certeza que está tudo OK. Você pode ficar pressionando 'Back' para voltar e corrigir alguma coisa. <item>Se você está satisfeito com toda a informação digitada, você pode pressionar 'Finish' e acabou! </enum> Se você quiser mais controle sobre os processos, você precisará usar o "Net8 Assistant" -- uma grande janela com muitas opções confusas -- que podem ser iniciadas com o comando <tt/netasst/. <sect1>Perguntas e respostas <sect2>Eu não consigo iniciar o 'netasst' <p> O problema é com alguns arquivos vazios. Instalando o patch deve resolver o problema. <sect>Palavras Finais <sect1>Software Útil <p> Agora que você tem o Oracle instalado, você poderá tentar usá-lo. Entretanto, é possível fazer tudo do seu servidor, sendo melhor usar as facilidades de acessar via cliente-servidor. Naturalmente o Oracle tem uma vasta coleção de softwares clientes bons, mesmo que não exista muito disso para Linux. Dos softwares da Oracle, eu recomendo os seguintes: <itemize> <item>Oracle Enterprise Manager. é bem mais fácil não ter que lembrar a sintaxe de todos os comandos esquisitos, como ALTER USER ou ALTER SYSTEM. <item>Oracle WebDB. pode ser complicado de instalar, mas permite o desenvolvimento de web-sites impressionantes sem saber nada de HTML. </itemize> Mas a maioria dos melhores softwares vem de outros lugares... <itemize> <item>Tool for Oracle Application Development (T.O.A.D.). Este é usado para ser gratuito, mas agora pertence à <url url="http://www.quest.com" name="Quest Software">. Você pode baixar a versão gratuita (se você está preparado pra fazer isso a cada bimestre) ou comprar um. Quando eu uso Oracle diariamente, este é o programa que eu uso. Não é tão limpo como alguns, mas tem tudo que você precisa. <item>SQLNavigator. Também da <url url="http://www.quest.com" name="Quest Software">. Eu não usei muito mas tem sido muito bem recomendado por quem usa. <item><url url="http://www.orasoft.org" name="OraSoft">. Esses rapazes desenvolveram aplicações Oracle que só rodam em Linux. Eu também não os usei muito, mas parecem bons. <item><url url="http://www.kkitts.com/orac-dba/" name="Orac">. Outro que eu não usei muito, mas tem sido descrito como uma boa e configurável ferramenta para os DBAs. </itemize> <sect1>Livros Úteis <p> I obtive a maioria a maioria das informações de amigos e livros. Eu não posso liberar meus amigos, mas eu posso recomendar esses livros: <itemize> <item>"Oracle Essentials," Rick Greenwald, R. Stackowiak, Jonathan Stern, O'Reilly and Associates, ISBN 1-56592-708-7. <item>"Oracle 8i: The Complete Reference," Kevin Loney and George Koch, Oracle Press, ISBN 007212368. <item>"Oracle Performance Tuning," Mark Gurry and Peter Corrigan, O'Reilly and Associates, ISBN 1-56592-237-9. <item>"Oracle Design," Dave Ensor and Ian Stevenson, O'Reilly and Associates, ISBN 1-56592-268-9. <item>"PL/SQL Programming," Steven Feuerstein, O'Reilly and Associates, ISBN 1-56592-335-9. <item>"PL/SQL Built-in Packages," Steven Feuerstein, O'Reilly and Associates, ISBN 1-56592-375-8. </itemize> Você achará mais recomendações e revisões no meu <url url="http://www.zx81.org.uk/computing/opinion/" name="website">. <sect1>Sites Úteis <p> Existe muita coisa útil na web <itemize> <item><url name="Oracle Technet" url="http://technet.oracle.com">. Este é o site de suporte da Oracle público e gratuito. <item><url name="Oracle Metalink" url="http://support.oracle.com">. Este é o site de suporte privado da Oracle (você precisa ter um contrato). Somente um pouco melhor que o da Technet! <item><url name="Oracle Fans" url="http://www.orafans.com">. Editoriais e forums. Sem relação oficial com a Oracle (logo as informações são menos confiáveis!). <item><url name="OraFaq" url="http://www.orafaq.org">. Um site cheio de perguntas e respostas para Oracle em todas as plataformas. <item>Oracle Linux mailing list (Mande um e-mail para <url url="mailto:ListGuru@fatcity.com" name="ListGuru@fatcity.com"> com 'SUBSCRIBE ORACLE-LINUX-L' no corpo da mensagem. </itemize> </article>