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).
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.
Deve instalar os seguintes pacotes:
No Debian basta fazer:
# apt-get install libaio1 rlwrap
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:
# mkdir -p /opt/oracle/{bin,etc,lib}
# cd /tmp/instantclient_11_1 # mv *jar *.so* /opt/oracle/lib
# cd /tmp/instantclient_11_1 # mv sqlplus genezi adrci /opt/oracle/bin
# 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.
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: