[Linuxtrent] HowTo: installazione del driver odbc di Oracle su RedHat Enterprise 5.2 (i386)

  • From: Nicola Zanella <nicola.zanella@xxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Tue, 02 Sep 2008 11:02:28 +0200

Buongiorno a tutti,
di seguito trovate una miniguida che riassume la mia esperienza delle ultime settimane nell'installazione del driver odbc per Oracle 11g su una macchina RedHat Enterprise 5.2 (i386)

Le indicazioni permetto di utilizzare il driver a 32 bit fornito gratuitamente da Oracle anziché il più noto driver commerciale di EasySoft. Spero possa essere utile a qualcun'altro considerato che la documentazione è abbastanza scarsa e lacunosa e le librerie disponibili non sono spesso affidabili (ad esempio la stessa procedura su installazione x86_64 non funziona perché il driver disponibile sul sito Oracle è bacato).

Pubblicherò successivamente un'altra mail con le indicazioni su come gestire l'autenticazione degli utenti ftp di ProFTPd direttamente su dbms Oracle.

Saluti.

##########################################################################################################################


NOTE INTRODUTTIVE
-----------------
Data: 02.09.2008
Autore: Nicola Zanella (nicola.zanella[§]mac.com)
Sistema Operativo: RedHat Enterprise Linux 5.2 i386 (virtualizzato in XEN su RedHat Enterprise 5.2 i86_64) Database: Oracle Database 11g Release 11.1.0.6.0 - 64bit Production su RedHat Enterprise Linux 5.2 i86_64
Indirizzo database: oracle.lan.tn  (192.168.1.1)
Utente/Password database: utente/password
Service Name database: servizio


HOWTO
-----
a) Installazione del software odbc standard via RedHat network:
   # yum install unixODBC*
b) Se la versione di unixODBC presente sulla RedHat network è inferiore alla 2.2.12 scaricare la versione più aggiornata da una distribuzione CentOS (clone di RedHat) ad esempio dal sito
   
ftp://mirror.switch.ch/pool/3/mirror/centos/4.6/centosplus/i386/RPMS/unixODBC-2.2.12-6.el4s1.1.i386.rpm
c) Dal momento che unixODBC-2.2.12 richiede le libreadline(4), creare i link simbolici
   # ln -s /usr/lib/libreadline.so.5.1 /usr/lib/libreadline.so.4
d) Installare il pacchetto ignorando le dipendenza
   # rpm -U --nodeps unixODBC-2.2.12-6.el4s1.1.i386.rpm
e) Andare sul sito 
http://www.oracle.com/technology/tech/oci/instantclient/index.html
e scaricare Basic and ODBC Instant Client Packages versione rpm e poi installarli
   # rpm -Uvh oracle-instantclient-basic-11.1.0.1-1.i386.rpm
   # rpm -Uvh oracle-instantclient-odbc-11.1.0.1-1.i386.rpm
   # rpm -Uvh oracle-instantclient-sqlplus-11.1.0.1-1.i386.rpm
f) Aggiungere le librerie al dynamic linker
   # echo /usr/lib/oracle/11.1.0.1/client/lib >> /etc/ld.so.conf
   # ldconfig
g) Testare la connessione con l'instantclient (client di Oracle non odbc) # /usr/lib/oracle/11.1.0.1/client/bin/sqlplus utente/password@// oracle.lan.tn:1521/servizio h) Creare un link simbolico per gestire eventuali versioni successive del software Orcle
   # cd /usr/lib/oracle/
   # ln -s 11.1.0.1 default
i) Definire le variabili di sistema
   # export SQLPATH=/usr/lib/oracle/default/client/lib
   # export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SQLPATH"
   # export TNS_ADMIN=/usr/lib/oracle/network/admin
   # cd /usr/lib/oracle/default/client/lib/
   # ln -s libsqora.so.11.1 libsqora.so
j) Configurare la connessione ad Oracle
   # cd /usr/lib/oracle
   # mkdir -p network/admin
   # cd network/admin
   Creare i file
   tnsnames.ora
        # tnsnames.ora Network Configuration File:
        servizio =
          (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = servizio)
            )
          )
   squlnet.ora
# sqlnet.ora Network Configuration File: /data/oracle/product/ 11.1.0/db_1/network/admin/sqlnet.ora
        # Generated by Oracle configuration tools.
        NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
k) testare la connessione
   # sqlplus utente/password@servizio
l) Impostare i driver ODBC
   Utilizzo lo script di oracle per impostarli
   # cd /usr/share/oracle/11.1.0.1/client/
   # ./odbc_update_ini.sh /
Dovrebbero essere stati creati i file (e se non sono stati creati, crearli o modificarli manualmente)
   /etc/odbcinst.ini
      [Oracle11g ODBC driver]
      Description     = Oracle ODBC driver for Oracle 11g
Driver = /usr/lib/oracle/default/client/lib/ libsqora.so.11.1
      Setup           =
      FileUsage       =
      CPTimeout       =
      CPReuse         =
   /etc/odbc.ini oppure /root/.odbc.ini
      [servizio]
      Application Attributes = T
      Attributes = W
      BatchAutocommitMode = IfAllSuccessful
      BindAsFLOAT = F
      CloseCursor = F
      DisableDPM = F
      DisableMTS = T
      Driver = Oracle11g ODBC driver
      DSN = servizio
      EXECSchemaOpt =
      EXECSyntax = T
      Failover = T
      FailoverDelay = 10
      FailoverRetryCount = 10
      FetchBufferSize = 64000
      ForceWCHAR = F
      Lobs = T
      Longs = T
      MetadataIdDefault = F
      QueryTimeout = T
      ResultSets = T
      SQLGetData extensions = F
      ServerName = servizio
      Translation DLL =
      Translation Option = 0
      DisableRULEHint = T
      StatementCache=F
      CacheBufferSize=20
m) Testare la connessione via ODBC
   # isql -v servizio utente password


BIBLIOGRAFIA
------------
http://ggorjan.blogspot.com/2007/04/oracle-instantclient-odbc-on-debian.html
http://www.oracle.com/technology/tech/oci/instantclient/index.html



--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: