Instalação do Oracle para Linux HOWTO
Stephen Darlington, stephen@zx81.org.uk
Traduzido por Fernando Boaglio
fernandoboaglio@yahoo.com.br
no dia 14 de agosto de 2001.v1.16, 11 de Junho de 2000
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 máquina remota. O foco principal desse guia é o
Red-Hat Linux 6.0, entretanto deverá funcionar mais ou menos em qualquer outra distribuição recente.
1.1 O que esse documento contém?
Linux é 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á acostumado.
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 dos problemas foram estupidez ou
presunção, mas eu documentei tudo.
1.2 Para quem é esse HOWTO?
Em primeiro lugar, esse documento é para pessoas que queiram instalar
o Oracle 8i versão 8.1.5 no Red-Hat 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 Red-Hat,
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
Linux Journals guide, 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
Oracle Database HOWTO.
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 é solidária, mas não espere uma resposta se você nem ao menos fez
esforço para resolver o problema por si próprio.
1.3 Novas versões desse documento
Depois de seis meses de freqüentes, 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
meu web site 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.
1.4 Garantia
Você terá o que pagou. Eu não ofereço garantia de nenhum tipo,
implícita ou explícita. Eu irei ajudá-lo onde eu puder, mas legalmente falando
não conte comigo.
1.5 Créditos e Agradecimentos
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 agradecê-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. Entretanto, 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
stephen@zx81.org.uk.
1.6 Licença
Este documento tem copyright 2000 Stephen Darlington.
Você poderá usá-lo e reproduzi-lo livremente, desde que:
- Não omita ou altere as informações de copyright.
- Não omita ou altere a versão e a data.
- Não omita ou altere o link para a atual versão na web.
- Marque claramente qualquer parte resumida ou alterada.
Estas restrições tem o intuito de proteger alguns leitores de
versões erradas e não originais. Se você acha que o seu caso
é uma exceção, pergunte-me.
(Essas informações de copyright notice foram inspiradas no HOWTO de Eric Raymond)
2.1 Visão Geral
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.
2.2 Pré-requisitos
Hardware
Eu acho que a parte mais importante dos pré-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 128Mb 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 quis acreditar na Oracle. Minha máquina 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.
2.3 Configuração do Linux
Escolha de distribuição
A Oracle parece ter baseado a maioria de seu desenvolvimento no
Red Hat 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 Red Hat deve funcionar.
Uma versão recente do Mandrake deve funcionar, assim como novas
versões do Red Hat. Já o SuSE suporta Oracle e tem uma
webpage
dedicada ao assunto.
Configuração da Distribuição
Agora que você já decidiu em qual distribuição semelhante ao Red Hat 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 podem
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á
ter 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á de 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!
Parâmetros do Kernel
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 Red Hat Linux funcionaram,
mas você deverá mudá-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
Linux Kernel HOWTO
para configurar o seu novo kernel.
Usuários e grupos
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.
Instalando o Java Virtual Machine correto
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
virtual, 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
/usr/local/jre/bin/jre. Enquanto existir esse inconveniente,
não significa que você deve instalar necessariamente lá.
Eu segui os seguintes passos para ter um JRE funcionando:
- Faça o download do Java Runtime Environment do site
Blackdown website
- Mova para o diretório a instalar o JRE:
cd /usr/local
- Descompacte o arquivo:
bzip2 -d -c jre-1.1.6-v5-glibc-x86.tar.bz2 | tar xvf -
- Crie um link simbólico entre o JRE e onde a Oracle exige:
ln -s jre116_v5 jre
2.4 Começando com as perguntas e respostas
Eu realmente preciso de 128Mb de RAM?
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 número deles começa a fazer
sentido. Eu tenho ouvido falar que o installer usa 150Mb de memória e eu
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
/$ORACLE_HOME/ . 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 $ORACLE_HOME/bin/oracle.
Vai funcionar com Red Hat 6.1 ou superior?
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 Red Hat 6.0 e "Certificação para outras distribuições em
desenvolvimento" (FAQ do Oracle 8i Patch).
Funciona com Debian/SuSE/Mandrake/alguma outra distribuição?
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 Red Hat 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 a
principal delas.
Funciona com distribuições baseadas em GLIBC 2.2?
Até o presente momento, Red Hat 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
um bug reportado no
site da Red Hat falando sobre um problema em particular. Resumindo, a
Red Hat recomenda o Red Hat 6.2 para Oracle ou força a usar a versão antiga
da GLIBC enviada para criação do kernel.
Meu site tem informações mais
atuais sobre o assunto.
Funciona com Kernels em desenvolvimento?
Não existe motivo para que não funcione -- eu usei a 2.3.19 por
certo tempo porque 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.
Funciona com o Linux 2.4?
(Quando esse documento foi concluído, o Linux 2.4 tinha acabado de ser
lançado. As principais distribuições estão apenas 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.
Onde eu consigo o Oracle?
Em primeiro lugar, você deve ser corajoso, ter uma conexão de Internet
rápida ou uma infindável paciência (e acesso ilimitado), você pode
baixar do site
Oracle Technet.
Atenção: tem quase 200Mb e o 8.1.6 é ainda maior.
Uma opção mais adequada é conseguir o CD. A Oracle às 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 US$40.
Ele inclui vários outros softwares e vêm em 15 CDs.
3.1 Como?
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 estragando 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.
3.2 O que eu informo no programa de instalação?
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ê.
- 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
runInstaller porque quase sempre
falha. Ao invés disso, vá ao diretório install/linux
no CD e execute runIns.sh logado como 'oracle'.
- Quando aparecer a tela do installer clique em 'Next'.
- Deve te pedir para entrar no 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
/u01, mas eu ignorei isso e
coloquei em /home/oracle. Geralmente as sugestões da
Oracle, nesse caso, valem a pena.
Clique 'Next' quando você tiver especificado todos os detalhes.
- 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'.
- Agora você deve se logar como 'root' e execute o arquivo
/tmp/OraInstall/orainstRoot.sh. Faça como pedido (você
deve rodar pdksh ou bash em 'Bourne compatibility mode'
para funcionar perfeitamente). Quando estiver pronto, clique em 'Retry'.
- 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'.
- 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
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.
- 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.
- Agora vai instalar tudo que você pediu. Provavelmente vai demorar
um pouco e irá usar mais memória do que precisa.
- Agora deverá perguntar se você quer criar o banco de dados. Selecione
'no'. Existem duas 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 duas máquinas virtuais, não fica bom com 128Mb de memória).
- O installer deve perguntar sobre 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.
- Todo o trabalho duro está feito. Todos os produtos que você queria
devem estar instalados e prontos para usar. Parabéns!
3.3 Instalando o patch
Infelizmente o CD que a Oracle te enviou 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
site da Oracle
e é relativamente fácil de instalar.
- Este provavelmente é o primeiro de vários patches, então crie um
diretório chamado "patches" em algum lugar conveniente (o meu está em
$ORACLE_HOME).
- Baixe o arquivo nele.
- Crie um lugar para colocar os arquivos:
mkdir /tmp/orapatch
cd /tmp/orapatch
- Descompacte o arquivo:
tar zvxf $ORACLE_HOME/patches/linux815patches.tgz
- Rode o script que está agora no diretório corrente:
./linux_815patches.sh
Note que é importante não descompactar o arquivo no diretório corrente.
O installer do patch verifica o número de arquivos presentes e
não roda se não for o correto. É claro que se ele achar o próprio
arquivo do patch compactado ele vai encontrar arquivos demais!
3.4 Configurando o seu ambiente
Adicione as seguintes linhas ao seu ".profile" (ou equivalente no seu shell):
. oraenv
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Porque o installer da Oracle não faz isso eu não faço a menor idéia.
Se você ver "[: 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
à ULIMIT algum valor finito.
3.5 Perguntas e respostas de instalação
O installer sai com a mensagem 'CreateOUIProcess()'
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 runInstaller
da raiz do CD, você pode ir para install/linux e rodar o
script runInst.sh .
Este problema é bem mais comum no Red Hat 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.
O installer aparece na tela como um flash e logo em seguida desaparece
Isto não é tão incomum. Geralmente significa que você está rodando
uma versão antiga do Enlightenment. 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 máquina, qualquer
coisa além de 200Mb deve ser suficiente.
Acontecem estranhos erros de Java quando eu inicio o installer
Qual versão do JVM você está usando? Muita gente diz que funciona
com outras versões, mas quando eu baixei pro JRE 1.1.6 (que a
documentação da Oracle recomenda) a maioria dos problemas acabaram.
Duas outras coisas 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.
O installer mostra 'segmentation fault'
Você tem GLIBC 2.1, não é mesmo?
Problemas no carregamento de bibliotecas compartilhadas
A mensagem de erro que eu estou falando parece um pouco com essa:
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):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Ou use a seguinte linha se você está usando uma CSH shell:
setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH
$ORACLE_HOME/lib"
Eu não uso a C-Shell, portanto a verificação desse comando
fica a seu critério.
O Pro*C não funciona
A resposta para essa pergunta deu um bom trabalho, apesar de
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 $ORACLE_HOME/precomp/admin/pcscfg.cfg
está vazio, mas precisa conter o seguinte:
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
(As primeiras quatro linhas acima, do sys_include ao 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 $ORACLE_HOME/precomp/lib/env_precomp.mk. Na linha
que define o CCPSYSINCLUDE, coloque o seguinte:
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)'
Isso funcionou para o Red Hat 6.0, mas precisa arrumar mais para
outras distribuições ou versões mais recentes do Red Hat.
Eu instalei o patch mas agora piorou!
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.
O Oracle acha que eu não tenho espaço livre suficiente no disco
Existe algo errado com o programa de instalação. Assumindo que você
tenha espaço livre suficiente, vai instalar sem problemas.
4.1 Visão Geral
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 fiz, mas eu diria melhor o
que proponho 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 $ORACLE_HOME é
/home/oracle. Todos os arquivos e softwares estão lá, todos
em uma única partição.
4.2 Guia passo a passo
- Chame o prompt e digite:
dbassist
- 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.
- Selecione a opção "Create a database" e clique em "Next"
- 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".
- 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.
- Provavelmente é mais seguro selecionar 'Hybrid' quando perguntar
em qual ambiente o banco de dados irá operar.
- Agora vai perguntar para quantos usuários o seu banco de dados
será usado. Eu coloquei cinco.
- 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!
- 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).
- Agora você quer criar o banco já ('now') ou salva as
configurações em um script? Com 128Mb de RAM eu achei a primeira opção
dolorosa.
Eu criei o script, saí do X e de qualquer coisa que usasse muita memória,
então eu rodei o script. Muito mais adequado.
- 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:
cd $ORACLE_HOME/dbs
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:
# rollback_segments = (r01, r02, r03, r04)
Descomente essa linha (remova o #), grave o arquivo e está terminado.
- Agora alguns passos extras. Você tem um banco de dados e deve
ser capaz de colocá-lo no ar, mas provavelmente 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 é '
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
password no prompt do SQL*Plus. Para os que estavam esperando o comando
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 é 'CHANGE_ON_INSTALL' e você deve fazer exatamente o que
ele diz: mude_ao_instalar !
- Último passo. Nesse 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' (
sqlplus
system/<password>). Depois digite:
@?/sqlplus/admin/pupbld.sql
A interrogação é a mesma coisa que o diretório $ORACLE_HOME .
- Este passo é opcional e é usado para definir o seu editor
de textos default do SQL*Plus (ao digitar
ed). Abra o arquivo
$ORACLE_HOME/sqlplus/admin/glogin.sql no seu editor favorito
e adicione a linha define_editor=<editor name> no final.
É isso. Você deve ter agora um banco de dados que você consegue se logar
usando o SQL*Plus.
4.3 Perguntas e respostas
É realmente fácil assim?
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
rápidamente 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 crescessem automaticamente
(eu odeio quando o software tenta ser tão esperto).
É realmente necessário colocar todos os arquivos em diferentes discos?
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.
Eu não consigo rodar o dbassist
Isso é causado por alguns arquivos vazios na instalação inicial.
Aplicando o patch deve resolver o problema.
Eu recebo a mensagem "ORA-01034: ORACLE not available"
Para encurtar a história o seu $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 é, export ORACLE_SID em qualquer Bourne shell.
Eu recebo a mensagem "ORA-01012: Not logged in"
Este é um erro bem comum e existem diferentes fatores que podem
causá-lo.
Em primeiro lugar certifique-se que você não está usando a configuração
"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 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 (éles)!
Os data-files podem ter até 1Gb de tamanho?
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 até 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.
Posso usar arquivos raw?
Versões recentes do kernel do Linux permitem que as aplicações
acessem os discos diretamente. O Oracle é capaz de usar esta
facilidade e pode (às vezes) aumentar a performance.
Técnicamente 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.
5.1 Visão Geral
Parabéns, você tem o Oracle rodando no seu Linux. Você criou um
banco de dados e consegue conectá-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 serve essa seção desse documento.
5.2 Conectando como outro usuário
Alguns 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:
-
. oraenv
se você está numa Bourne shell(como Bash
ou pdksh)
-
source coraenv
se você prefere C-Shell
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 realmente
te preocupar.
5.3 Conectar de uma outra máquina
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:
- Logar no Linux como usuário 'oracle'
- Certifique-se que o "oraenv" foi executado, isto é, o seu
$ORACLE_HOME configurado corretamente
- Digite:
lsnrctl start
Na sua máquina cliente tudo o que você precisa é 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.
5.4 Conectar a uma outra máquina
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:
- Chame o "Net8 Easy Config" digitando
netec no
prompt estando logado como 'oracle'.
- Depois de um curto intervalo enquanto o Java trabalha, a tela de "Bem-vindo"
aparece. Ele deve perguntar o que você quer fazer. Deixe os radio buttons da esquerda
sem nada (o default é 'create') e entre com o nome do banco de dados no
text box. Clique em 'Next' quando terminar.
- Selecione um dos protocolos oferecidos. Ao menos que o seu caso seja diferente,
o default deverá ser 'TCP/IP' . Pressione 'Next'.
- 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'.
- Selecione o tipo de banco (8i ou outro qualquer) usando os radio
buttons e digite o nome dele no text box apropriado. Pressione 'Next'.
- 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.
- Se você está satisfeito com toda a informação digitada, você pode pressionar
'Finish' e acabou!
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 netasst.
5.5 Perguntas e respostas
Eu não consigo iniciar o 'netasst'
O problema é com alguns arquivos vazios. Instalando o patch deve resolver o problema.
6.1 Software Útil
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:
- 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.
- Oracle WebDB. pode ser complicado de instalar, mas permite o desenvolvimento de
web-sites impressionantes sem saber nada de HTML.
Mas a maioria dos melhores softwares vem de outros lugares...
- Tool for Oracle Application Development (T.O.A.D.). Este é usado por
ser gratuito, mas agora pertence à
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 utilizo. Não é tão limpo como
alguns, mas tem tudo que você precisa.
- SQLNavigator. Também da
Quest Software. Eu não usei muito mas tem sido muito bem recomendado
por quem utiliza.
-
OraSoft. Esses rapazes desenvolveram
aplicações Oracle que só rodam em Linux. Eu também não os usei muito, mas parecem bons.
-
Orac. Outro que eu não usei muito,
mas tem sido descrito como uma boa e configurável ferramenta para os DBAs.
6.2 Livros Úteis
Obtive a maioria das informações de amigos e livros.
Eu não posso liberar meus amigos, mas posso recomendar esses
livros:
- "Oracle Essentials," Rick Greenwald, R. Stackowiak, Jonathan
Stern, O'Reilly and Associates, ISBN 1-56592-708-7.
- "Oracle 8i: The Complete Reference," Kevin Loney and George
Koch, Oracle Press, ISBN 007212368.
- "Oracle Performance Tuning," Mark Gurry and Peter Corrigan,
O'Reilly and Associates, ISBN 1-56592-237-9.
- "Oracle Design," Dave Ensor and Ian Stevenson, O'Reilly and
Associates, ISBN 1-56592-268-9.
- "PL/SQL Programming," Steven Feuerstein, O'Reilly and
Associates, ISBN 1-56592-335-9.
- "PL/SQL Built-in Packages," Steven Feuerstein, O'Reilly and
Associates, ISBN 1-56592-375-8.
Você achará mais recomendações e revisões no meu
website.
6.3 Sites Úteis
Existe muita coisa útil na web
-
Oracle Technet. Este é o site de suporte da Oracle (público e gratuito).
-
Oracle Metalink. Este é o site de suporte privado da Oracle (você precisa
ter um contrato). Somente um pouco melhor que o da Technet!
-
Oracle Fans. Editoriais e fóruns. Sem relação oficial com a Oracle
(logo, as informações são menos confiáveis!).
-
OraFaq. Um site cheio de perguntas e respostas
para Oracle em todas as plataformas.
- Oracle Linux mailing list (Mande um e-mail para
ListGuru@fatcity.com com
'SUBSCRIBE ORACLE-LINUX-L' no corpo da mensagem.
|