前陣子 hive 接口機故障導致重裝了系統,原先所有的配置信息煥然一新,主機系統裝好后,發現和 數據庫的連接失敗了,也無法通過 sqluldr sqluldr2 和 Oracle 進行文件交互了,今天的任務就是 把這個環境整好,辛苦一天也算是完成任務,作為新手,記錄一下,方便以后使用;
1、安裝 Oracle 客戶端
首先:查詢 Oracle 版本:
SELECT * FROM V$VERSION;
得到數據庫版本后,去 Oracle 下載oracle 客戶端 安裝軟件:
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
需要下載對應的 版本
上傳壓縮文件到自定目錄:
/app/oracle;依次解壓
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
解壓文件會自動放在這個 instantclient_11_2 路徑下;
(也可下載指定的 rpm 包進行安裝)
在 /app/oracle/instantclient_11_2/network/admin 下創建 tnsnames.ora
並編寫配置信息
下面是重點:配置環境變量
如果不想將環境配置寫在/etc/profile中配置內,也可以寫在 .bash_profile中
export ORACLE_HOME=~/app/oracle/instantclient_11_2 export PATH=$ORACLE_HOME:$PATH export ORACLE_SID=oracl111 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export LD_LIBRARY_PATH=$ORACLE_HOME
ORACLE_HOME是你自己的安裝地址,NLS_LANG是顯示的字符編碼集格式。
至此 客戶端配置完成,執行sqlplus 時盡量給 sqlplus 賦權限;
2、安裝 sqlldr sqluldr2
sqlldr 安裝 客戶端安裝路徑下創建 路徑 rdbms\mesg
將 ulus.msb 上傳至 /app/oracle/instantclient_11_2/rdbms/mesg/ 下
執行 sqluldr 驗證安裝成功
(ulus.msb 可以從生產 Oracle 環境下拉取)
sqluldr2 安裝;
上傳 sqluldr2_linux64_10204.bin 到 客戶端安裝目錄,重命名 sqluldr2
執行 可執行程序 發現有問題:
發現當前環境有libclntsh.so.11.1,與sqluldr2 所需包差小版本號,嘗試建立軟連接文件
ln -s libclntsh.so.11.1 libclntsh.so.10.1
再次執行發現正常了;