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.rpmc) 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.htmle 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 # ldconfigg) 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 11gDriver = /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