1. 程式人生 > >linux下oracle客戶端安裝

linux下oracle客戶端安裝

原文地址:http://hanqunfeng.iteye.com/blog/1955277

檢視oracle伺服器端的版本:

 select * from V$version 

結果中有:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

所以oracle客戶端也選擇11.2.0.3.0版本。

下載如下三個檔案:

instantclient-basic-linux.x64-11.2.0.3.0.zip

instantclient-sqlplus-linux.x64-11.2.0.3.0.zip

instantclient-sdk-linux.x64-11.2.0.3.0.zip

二。解壓

mkdir -p /opt/oracle/lib 
mkdir -p /opt/oracle/network/admin

解壓三個下載檔案

unzip instantclient-basic-linux.x64-11.2.0.3.0.zip

unzip instantclient-sqlplus-linux.x64-11.2.0.3.0.zip

unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip

解壓後內容將在當前目錄下的instantclient_11_2下

cd instantclient_11_2

mv sdk  /opt/oracle/sdk

mv *  /opt/oracle/lib

三。配置環境變數

vi /etc/profile 

Java程式碼  收藏程式碼
  1. ORACLE_HOME=/opt/oracle  
  2. DYLD_LIBRARY_PATH=$ORACLE_HOME/lib  
  3. PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$ORACLE_HOME/lib:$PATH    
  4. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar    
  5. export JAVA_HOME ANT_HOME PATH CLASSPATH DYLD_LIBRARY_PATH ORACLE_HOME   

 儲存後使其生效 source /etc/profile 或者 .  /etc/profile

四。配置監聽器和網路環境

cd  /opt/oracle/network/admin

新建三個檔案sqlnet.ora,tnsnames.ora,listener.ora

在sqlnet.ora中加入如下內容:

Java程式碼  收藏程式碼
  1. SQLNET.AUTHENTICATION_SERVICES= (NTS)  
  2. NAMES.DIRECTORY_PATH= (TNSNAMES)  

 在tnsnames.ora中加入如下內容:

Java程式碼  收藏程式碼
  1. orcl_db =  
  2.   (DESCRIPTION =  
  3.     (ADDRESS_LIST =  
  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521))  
  5.     )  
  6.     (CONNECT_DATA =  
  7.       (SERVICE_NAME = orcl)  
  8.     )  
  9.   )  
  10. EXTPROC_CONNECTION_DATA =  
  11.   (DESCRIPTION =  
  12.     (ADDRESS_LIST =  
  13.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))  
  14.     )  
  15.     (CONNECT_DATA =  
  16.       (SID = PLSExtProc)  
  17.       (PRESENTATION = RO)  
  18.     )  
  19.   )  

在listener.ora中加入如下內容:

Java程式碼  收藏程式碼
  1. SID_LIST_LISTENER =  
  2.   (SID_LIST =  
  3.     (SID_DESC =  
  4.       (SID_NAME = PLSExtProc)  
  5.       (ORACLE_HOME = /opt/oracle)  
  6.       (PROGRAM = extproc)  
  7.     )  
  8.   )  
  9. LISTENER =  
  10.   (DESCRIPTION_LIST =  
  11.     (DESCRIPTION =  
  12.       (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))  
  13.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))  
  14.     )  
  15.   )  

五。測試

# sqlplus [email protected]_db

SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 11 10:59:17 2013

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

Enter password: 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ok,說明連結伺服器成功。

六。安裝sqlldr

windows版本的client會有sqlldr命令,但是linux版本的client就沒有這個命令了,不過可以從伺服器端copy這個命令。

先按照上面的方式安裝linux客戶端,然後將伺服器端的如下兩個檔案拷貝到客戶端:

從伺服器端將$ORACLE_HOME/bin/sqlldr拷貝到/opt/oracle/lib下,並授予執行許可權,

從伺服器端將$ORACLE_HOME/rdbms/mesg/ulus.msb 拷貝到/opt/oracle/rdbms/mesg下。

檢視sqlldr的依賴是否都存在

$> cd /opt/oracle/lib/

$> ldd -r sqlldr

測試:

$> sqlldr 

列印幫助資訊

注意:執行sqlplus時可能會遇到如下錯誤:

oracle instant client 安裝 libaio.so.1: cannot open shared object file

原因是sqlplus命令引用到的這個包沒有找到,先使用ldd看一下還有其它包沒有找到否:

cd /opt/oracle/lib/

ldd sqlplus 

        linux-vdso.so.1 =>  (0x00007fff4ccce000)

        libsqlplus.so => /opt/oracle/lib/libsqlplus.so (0x00007faa788d4000)

        libclntsh.so.11.1 => /opt/oracle/lib/libclntsh.so.11.1 (0x00007faa76042000)

        libnnz11.so => /opt/oracle/lib/libnnz11.so (0x00007faa75c76000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007faa75a6a000)

        libm.so.6 => /lib64/libm.so.6 (0x00007faa757e5000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faa755c8000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007faa753af000)

        libc.so.6 => /lib64/libc.so.6 (0x00007faa7501b000)

        /lib64/ld-linux-x86-64.so.2 (0x00007faa78abd000)

        libaio.so.1 => not found

只有libaio.so.1沒有找到,ok,安裝即可:

查詢:yum search libaio

安裝:yum install libaio.x86_64