[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Instalação de Oracle 9i para Slackware



Favor desconsiderar...

Em 23/06/07, Tiago Dias <tux.tiago@gmail.com > escreveu:
Este artigo é direcionado às pessoas interessadas na instalação do servidor de banco de dados Oracle, versão 9i (release 9.2.0.4.0), disponível no site www.oracle.com, composta por três CDs de instalação. Instalar o Oracle em si não requer muito conhecimento; cabe ao DBA determinar o tamanho de cada arquivo no sistema do banco de dados, portanto este artigo cobre apenas a instalação do software. Pré-requisitos

Este artigo é direcionado às pessoas interessadas na instalação do servidor de banco de dados Oracle, versão 9i (release 9.2.0.4.0), disponível no site www.oracle.com, composta por três CDs de instalação. Instalar o Oracle em si não requer muito conhecimento; cabe ao DBA determinar o tamanho de cada arquivo no sistema do banco de dados, portanto este artigo cobre apenas a instalação do software. Pré-requisitos Qualquer Linux com glibc versão 2.2.8 ou mais recente (testado: Slackware 10.0). Pacotes de desenvolvimento instalados (gcc, binutils principalmente). Um diretório dedicado à instalação Oracle, que nesse momento será nomeado /oracle.

Um usuário dedicado para o programa; neste exemplo, o usuário será oracle.

Opcional: um grupo para todas as pessoas que puderem se conectar como superusuários do sistema de banco de dados. Primeiro passo: libcwait.so

Algumas versões da biblioteca C para Linux (glibc) não incluem o símbolo __libc_wait esperado pelo instalador, por motivos de incompatibilidade. Então, o procedimento mais simples a se fazer é colocar esta função na forma de uma biblioteca localizada em um diretório abaixo de /oracle. Para isso, crie o diretório /oracle/patch, e coloque o seguinte conteúdo no arquivo /oracle/patch/libcwait.c:
#include 
#include
#include
#include
pid_t
__libc_wait (int *status)
{
int res;
asm volatile ("pushl %%ebxnt"
"movl %2, %%ebxnt"
"movl %1, %%eaxnt"

"int $0x80nt"
"popl %%ebx"
: "=a" (res)
: "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0),
"S" (0));

return res;
}

E então compile o conteúdo como uma biblioteca:
oracle@hegel:~$ cd /oracle/patch/
oracle@hegel:~$ gcc -O2 -fpic -xc -shared -o libcwait.so libcwait.c

E não esquecer de, quando estiver com o usuário oracle, adicionar esta biblioteca para ser carregada antes de executar qualquer coisa como este usuário (LD_PRELOAD=/oracle/patch/libcwait.so - está no arquivo .profile sugerido no segundo passo).

Se você não utilizar esta biblioteca (inclusive citada no guia de instalação Oracle), receberá o seguinte erro:
oracle@hegel:~$ Disk1/runInstaller
oracle@hegel:~$ Initializing Java Virtual Machine from /tmp/(...). Please wait...
Error occurred during initialization of VM
Unable to load native library: /tmp/(...)/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0

not defined in file libc.so.6 with link time reference

Segundo passo: colocando variáveis do usuário oracle

As três variáveis mais importantes:
  • O banco de dados primário se chamará LINUX (mantenha as maiúsculas ou minúsculas, preferencialmente mantenha um padrão para suas instalações). Portanto, a variável ORACLE_SID terá o conteúdo LINUX (export ORACLE_SID=LINUX).
  • O diretório base do Oracle (ORACLE_BASE) será /oracle/base.
  • O diretório de instalação dos produtos Oracle (ORACLE_HOME) será /oracle/base/product/9.2.0. Todos os produtos internos ao banco de dados serão instalados a partir deste diretório.

    Importante: O Oracle Universal Installer (runInstaller), a priori, requer a variável $DISPLAY - ou seja, que o X Window System esteja rodando. Para uma instalação local e assumindo uma única tela, a variável $DISPLAY deverá ser configurada como :0.0 (creio que esse comportamento possa ser alterado com arquivos de resposta para instalações automatizadas).

    Se você não entrar como o usuário oracle no momento da instalação, deverá autorizar o uso do usuário oracle à tela do X Window System. Para fazê-lo de forma simples, use o comando (como o usuário atual logado no sistema):
    sartre@hegel:~$ xhost +

    (resposta esperada: access control disabled, clients can connect from any host)

    Para facilitar toda a tarefa coloque o seguinte conteúdo no arquivo .profile do usuário oracle:
    export ORACLE_SID=LINUXBR
    export ORACLE_BASE=/oracle/base
    export ORACLE_HOME=/oracle/base/product/9.2.0
    export ORACLE_TERM=vt100
    export NLS_LANG=AMERICAN
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
    export PATH=$PATH:$ORACLE_HOME/bin
    export LD_PRELOAD=/oracle/patch/libcwait.so
    export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

    export DISPLAY=:0.0
    export LD_ASSUME_KERNEL=2.4.1
    export THREADS_FLAG=native

    Faça logoff e entre novamente com o usuário oracle (o traço é importante para rodar o arquivo .profile):
    sartre@hegel:~$ su - oracle

    E cheque se todas as variáveis estão ativas:
    oracle@hegel:~$ set | grep ORACLE
    ORACLE_BASE=/oracle/base
    ORACLE_HOME=/oracle/base/product/9.2.0
    ORACLE_SID=LINUXBR
    ORACLE_TERM=vt100

    Terceiro passo: rodar o Oracle Universal Installer
    Supondo que o primeiro CD esteja montado no diretório /mnt/cdrom, digite:
    /mnt/cdrom/runInstaller

    Muitas variáveis já estão programadas pelo segundo passo. Adicionalmente, você provavelmente quer o conjunto comum do sistema de banco de dados, Oracle 9i Database 9.2.0.4.0, na versão enterprise (2.84GB).

    Para deixar a criação do banco de dados para depois (para um DBA), escolha a opção Software Only na seção Database Configuration. Após clicar em Install, após cerca de 5%, edite um arquivo chamado sysliblist. Seu conteúdo é:
    oracle@hegel:~$ cat /oracle/base/product/9.2.0/lib/sysliblist 
    -ldl -lm -lpthread -lnsl -lirc

    Edite o arquivo e insira, no final da linha, o parâmetro -Wl,-allow-shlib-undefined, ficando o arquivo (não insira linhas em branco extras!):
    oracle@hegel:~$ cat /oracle/base/product/9.2.0/lib/sysliblist
    -ldl -lm -lpthread -lnsl -lirc -Wl,-allow-shlib-undefined

    Não importa qual o conteúdo do arquivo anteriormente, coloque o parâmetro. O arquivo é criado no momento da instalação, detectando bibliotecas externas no sistema para compilar certos componentes Oracle. Se você alterar o arquivo a tempo, sua instalação não apresentará erros, embora o próprio guia de instalação os preveja. Apêndice: Instalando novamente

    Se você quiser instalar o Oracle novamente, todos os arquivos ficam abaixo do diretório da variável ORACLE_BASE, bastando apagar este diretório e os seguintes arquivos e refazer todos os passos (excetuando-se criar o arquivo .profile, que você poderá editar para encaixar-se em futuras necessidades):
  • /etc/oratab bancos de dados e se o utilitário dbstart iniciará ou não cada banco.
  • /etc/oraInst.loc diretório de inventário e do grupo unix que realiza a instalação.


    Fonte: linuxbr.com
    Autor: Cesar Suga - cesar(arrouba)fsndobrasil.com


  • --
    Administrador de Sistemas GNU/Linux

    HomePage: www.dias.eti.br
    Email: tiago@dias.eti.br
              
    "A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original"

    (Albert Einstein)



    --
    Administrador de Sistemas GNU/Linux

    HomePage: www.dias.eti.br
    Email: tiago@dias.eti.br
              
    "A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original"

    (Albert Einstein)
    Reply to: