CentOS7服務器上部署Oracle客戶端


環境

  操作系統:

  CentOS7.2.1511 x86_64

准備安裝包

  在這個網站:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下載如下安裝包

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm   //這個是sdk 的,文件名上沒有說明,特此說明 

  可以使用wget命令直接下載,也可以在windows上下載好了再通過WinSCP工具上傳到服務器上。我的Oracle server端是10g,所以我找了個低版本的Client,在windows上試過11g的客戶端是能連接10gserver的,所以我下載的是11.2。

  上面安裝的幾個包的說明:

  basic是基礎包,使用其的目的是運行OCI、OCCI、JDBC-OCI這幾個應用程序;

  sqlplus是補充包/文件,目的是運行sql*plus的即時客戶端;

  devel等同於oracle-sdk,包含頭文件和示例文件,目的是開發Oracle應用程序;

  如果要遠程連接數據庫,這三個rpm包是必不可少的,一定要安裝。

  其余可選的包還有:

oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm  --補充包/文件,為運行ODBC環境附加庫;
oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm  --補充JDBC下的XA、國際標准、行集操作;

  這些rpm包在官網上都能下載到,rpm是安裝版的包,還有一種是zip包,zip包相當於是解壓后免安裝版。安裝時要選擇和你的Oracle server匹配的客戶端來安裝,例如我要連接的server版本信息是:

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

  所以我在選擇客戶端時也會選擇對應版本的客戶端11.2.0.4.0。

安裝

  我把下載好的rpm包放在了OracleClient這個目錄下。

[root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
准備中...                          ################################# [100%]
正在升級/安裝...
   1:oracle-instantclient11.2-basic-11################################# [100%]
[root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 
准備中...                          ################################# [100%]
正在升級/安裝...
   1:oracle-instantclient11.2-devel-11################################# [100%]
[root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm 
准備中...                          ################################# [100%]
正在升級/安裝...
   1:oracle-instantclient11.2-sqlplus-################################# [100%]

  本次安裝的時候沒有指定安裝路徑,所以它會安裝到默認路徑下。使用如下命令可以查看這個rpm包的默認安裝路徑:

[root@localhost OracleClient]# rpm -qpl oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
/usr/lib/oracle/11.2/client64/bin/adrci
/usr/lib/oracle/11.2/client64/bin/genezi
/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
/usr/lib/oracle/11.2/client64/lib/libnnz11.so
/usr/lib/oracle/11.2/client64/lib/libocci.so.11.1
/usr/lib/oracle/11.2/client64/lib/libociei.so
/usr/lib/oracle/11.2/client64/lib/libocijdbc11.so
/usr/lib/oracle/11.2/client64/lib/ojdbc5.jar
/usr/lib/oracle/11.2/client64/lib/ojdbc6.jar
/usr/lib/oracle/11.2/client64/lib/xstreams.jar

  在client64下創建目錄 network/admin,然后把server端的tnsnames.ora上傳到這個目錄下 

配置環境變量

  在當前用戶的家目錄下打開文件:vim .bash_profile,添加如下幾行:

#enviroment variable of oracle client
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH=$PATH:$ORACLE_HOME/bin

  然后保存並退出。接下來使用source ~/.bash_profile,強制刷新配置文件。如果source執行后提示找不到命令,那么可能是你要source的文件內容有問題。

  在bash窗口輸入sqlplus,如果提示:

[root@localhost ~]# sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 14:27:47 2019

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

Enter user-name:

  這樣就意味着客戶端已經安裝成功了。

  如果出現:

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory 

  這說明你的環境變量配的不正確。

連接數據庫

 

  接下來在終端中輸入如下指令:

[root@localhost ~]# sqlplus bsits2/bsits2@ORCL_201

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 16:58:23 2019

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


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

SQL> 

  這表示已經連接連到了數據庫。在這個示例中,bsits2/bsits2@ORCL_201這個字符串中的bsits2/bsits2分別是目標數據庫的用戶名和密碼,ORCL_201這個是你在TNS中配置的網絡服務名。如果要退出sqlplus的話,只要在sqlplus的窗口中輸入exit即可。

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

讓查詢結果格式化輸出

  在使用sqlplus的時候會遇到一條記錄不能顯示在同一行的情況。

  可以通過下面幾個參數,根據實際情況進行調整:

show linesize : 查看當前設置的sqlplus輸出的最大行寬
set linesize : 設置sqlplus輸出的最大行寬
column : 修改顯示字段的長度或名稱
column col_name format a15       --將列col_name(字符型)顯示最大寬度調整為15個字符
column col_num format 999999     --將列col_num(num型)顯示最大寬度調整為6個字符
column col_num heading col_num2  --將col_num的列名顯示為col_num2

  歡迎指正,感激不盡。

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM