BOMBOLOM.COM

(oracle) Instant Client e SQL*Plus com o Debian

Por Helder Guerreiro

Neste artigo vou mostrar como instalar o instant client e o SQL*Plus no Debian 5.0. O instant client, ao contrário do cliente normal de oracle é um download relativamente rápido e ficamos com uma instalação apenas com o mínimo necessário. Num artigo posterior mostrarei como instalar o módulo de Python cx_Oracle, sendo que o presente artigo é pré-requisito para instalar esse módulo de Python (ou de qualquer outra linguagem, de facto).

Obter o software necessário

Vamos fazer o download do Instant Client do Oracle e do SQL*Plus a partir de:

Notar que este site exige que nos registemos para pudermos fazer o download. Isso é claramente uma tolice, por isso podemos sempre recorrer a http://www.bugmenot.com/ ...

Devemos fazer o download dos seguintes pacotes (neste caso escolhi os pacotes para linux 32bits em x86, deve naturalmente, escolher a arquitectura apropriada ao seu sistema):

No total este download fica mais ou menos em 45MB o que é umas 10 vezes mais pequeno que CD de instalação do cliente completo. A diferença deste cliente em relação à versão completa é que apenas são incluídas as bibliotecas dinâmicas necessárias para aceder a uma base de dados Oracle. Por outro lado, no CD de instalação são incluídas uma miríade de ferramentas (algumas delas úteis outras não), um instalador gráfico e mais uma carrada de marketing. Eu prefiro passar sem estas tretas.

Instalar dependências no Debian

Deve instalar os seguintes pacotes:

No Debian basta fazer:

# apt-get install libaio1 rlwrap

Instalar o cliente Oracle

O Instant Client não tem scripts de instalação. Na realidade não é mais do que uma colecção de bibliotecas dinâmicas. Assim apenas temos de extrair o conteúdo do ficheiros e depois indicar ao sistema que temos estas bibliotecas disponíveis

Deve copiar os pacotes zip para uma directoria apropriada (que pode criar para o efeito) e descomprimir os ficheiros. Vamos assumir que estamos a fazer isto na directoria /tmp :

$ cd /tmp
$ unzip instantclient-basic-linux32-11.1.0.7.zip
Archive:  instantclient-basic-linux32-11.1.0.7.zip
  inflating: instantclient_11_1/BASIC_README
  inflating: instantclient_11_1/adrci
  [ ...etc... ]
$ unzip instantclient-sqlplus-linux32-11.1.0.7.zip
Archive:  instantclient-sqlplus-linux32-11.1.0.7.zip
  inflating: instantclient_11_1/SQLPLUS_README
  inflating: instantclient_11_1/glogin.sql
  [ ...etc... ]

Ao descomprimir os ficheiros vai ser criada uma directoria 'instantclient_11_1', com subdirectorias por baixo. De uma forma geral esta nomenclatura é uma solução muito pobre, por isso sugiro o seguinte:

  1. Criar a seguinte arvore de directorias:
    # mkdir -p /opt/oracle/{bin,etc,lib}
  2. Copiar todas as bibliotecas dinâmicas para /opt/oracle/lib:
    # cd /tmp/instantclient_11_1
    # mv *jar *.so* /opt/oracle/lib
  3. Copiar os executáveis para /opt/oracle/bin:
    # cd /tmp/instantclient_11_1
    # mv sqlplus genezi adrci /opt/oracle/bin
  4. Criar um link simbólico em /usr/local/bin para o sqlplus:
    # cd /usr/local/bin
    # ln -s /opt/oracle/bin/sqlplus

A seguir temos de indicar ao sistema onde estão as bibliotecas utilizadas pelo SQL*Plus. Isto pode-se fazer de várias formas. Por exemplo podemos criar o ficheiro /etc/ld.so.conf.d/oracle.conf, com o seguinte conteúdo:

/opt/oracle/lib

E depois correr:

# ldconfig

Finalmente devemos criar o tnsnames.ora, este ficheiro é utilizado para resolver a localização de cada base de dados. Por exemplo, se tivermos uma base de dados chamada ORBD, no host 192.168.100.140, porta 1521, o ficheiro tnsnames.ora pode ficar qualquer coisa como:

LIGACAO_ORBD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.140)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orbd)
    )
  )

Como se trata de um ficheiro de configuração este poderá ficar em /opt/oracle/etc.

Configurar e utilizar o SQL*Plus

Para utilizar o SQL*Plus devemos indicar onde está gravado o ficheiro tnsnames.ora e indicar qual é a instância a utilizar por omissão. Isto pode-se fazer incluindo no .bashrc o seguinte:

ORACLE_SID=orbd
TNS_ADMIN=/opt/oracle/etc
export ORACLE_SID TNS_ADMIN
alias sqlplus='rlwrap sqlplus'

Fazendo o logout e depois o logout, resulta que já podemos utilizar o sqlplus:

$ sqlplus user/password@orbd

SQL*Plus: Release 11.1.0.7.0 - Production on Tue Jun 16 12:35:57 2009

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

Notas finais:

16.06.2009 | Ler mais | Comentários | Tags

Voltar à Página principal | Made with PyBlosxom