最近在裝Oracle Instant Client就遇到很多問題,在Win上可以裝x32與x64的版本,在試Toad for Oracle時,又看到只支援x32版client的訊息,新版的好像可以支援x64,裝來裝去兩個都裝就出問題了,Linux反而比較單純
裝完Client後,最基本連Oracle的工具就是SQL*Plus,我嘗試在Ubuntu上安裝也是花好多時間,原因就是網路上很多文章都誤導了我,連Oracle Database Online Documentation的說明也是不清不楚,像是SQL*Plus在Linux有分x32與x64版本,實際用起來有什差別嗎?你去網路上查看看差在哪裡,幾乎99%命令列都是打sqlplus,問題x64的實際上要打sqlplus64耶,這差很多的,害我明明裝好x64了,卻一直試著執行sqlplus,卻一直出錯說找不到命令,百思不解為何?以為是environment variable出錯,還是權限不足,怎麼try都不行,其實打sqlplus64就OK了,真是浪費我一堆時間(其實真正原因是我不熟啦...還怪人)
在Ubuntu上的裝法如下,以下是我剛裝完Ubuntu後,只花十分鐘就裝好SQLPlus用的命令了,供各位參考
# 安裝 alien
apt-get install alien
# 去Instant Client Downloads下載,注意版本,我是在Win下載後,用WinSCP傳過去的
- Instant Client Package - Basic
- Instant Client Package - SQL*Plus
- Instant Client Package - SDK
alien -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
alien -i oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
alien -i oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
# 測試看看,注意我是裝x64的喔,x32用sqlplus就好
sqlplus64
# 因為出現遺失libsqlplus.so的錯誤,建立oracle.conf可解決
vi /etc/ld.so.conf.d/oracle.conf
# oracle.conf內容加入下面這行,注意自己安裝的版本作對應的修改,請確認路徑正確
/usr/lib/oracle/11.2/client64/lib/
# 重整
sudo ldconfig
# 再測試
sqlplus64
# 出現遺失libaio.so.1,安裝libaio1可解
sudo apt-get install libaio1
# 成功
sqlplus64
# 以下提供sqlplus連結遠端的命令,Client端不須Sqlnet.ora與Tnsnames.ora的,任選一個即可
# 假設IP:192.168.0.1
# Port:1521
# SID:ORCL
# SERVICE_NAME:ORCLSRV
# 帳/密 test/pwd
# sysdba 帳/密 sys/pwd
- sqlplus64 test/pwd@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=ORCL)))'
- sqlplus64 test/pwd@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLSRV)))'
- sqlplus64 sys/pwd@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLSRV)))' as sysdba
- sqlplus64 test/pwd@//192.168.0.1:1521/ORCLSRV
感謝詳細的安裝教學,這篇7年前的文章拯救了我的一天!
回覆刪除