問題描述:
使用win7(32位)上pl/sql developer 9.0.6遠端連線Linux(64位)的oracle 10.2.0資料庫。window上使用的oracle用戶端是instantclient-basic-win32-10.2.0.3-20061115及instantclient-sqlplus-win32-10.2.0.3-20061115,把以上兩個檔案解壓到一起,並建立與oracle伺服器上內容相同的tnsnames.ora(IP、連接埠及資料庫執行個體都一致)。我在CMD中使用sqlplus "sys/password@orcl as sysdba"能正常串連,但直接sqlplus後再輸入使用者名稱密碼,提示
而直接使用plsql developer來串連的話就提示如下問題
解決方案:
問題的根本原因是由於oracle用戶端版本與oracle資料庫不相容導致的!!!
基本步驟:
伺服器端(Linux)
1、配置IP地址
vim ORACLE_HOME/network/admin/listener.org 查看其中IP地址,由網域名稱改為IP,如”localhost.localdomain”à”10.1.10.121”
vim ORACLE_HOME/network/admin/listener.org同上操作
su – 切換到root使用者
vim /etc/hosts
添加類似如下一行(如果在安裝時已經配置就不需要了):
10.1.10.121 orcl(資料庫執行個體) orcl
儲存關閉後測試
ping orcl
2、用戶端配置
下載oracle提供的遠端連線需要的最小驅動包:instantclient-basic-win32-10.2.0.4.zip及instantclient-sqlplus-win32-10.2.0.4.zip(如果不需要sqlplus也可不下載)
:http://www.oracle.com/technetwork/topics/winsoft-085727.html
下載完成後,將以上兩個檔案解壓到同一個目錄下,如:C:\instantclient_10_2(該目錄在配置環境變數是有用的)
將在伺服器端的%ORACLE_HOME\network\admin\tnsnames.ora拷貝一份放到C:\instantclient_10_2\network\admin中(network\admin檔案夾需要自己建立,該檔案也可在客戶直接建立,並填入以下內容(注意IP及資料庫執行個體):
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL(資料庫執行個體名) = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.50.135)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl(資料庫執行個體名)) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) ) |
這就保證了用戶端使用的串連配置與伺服器是一致的。
修改環境變數:
在用戶端windows中建立以下幾個環境變數(使用者或系統變數都可以)
(1) ORACLE_HOME= C:\instantclient_10_2
(2) LD_LIBRARY_PATH= C:\instantclient_10_2
(3) TNS_ADMIN= C:\instantclient_10_2
(4) NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改path變數,在最後加入”;ORACLE_HOME”
儲存後關閉,此時用戶端基本就配置完成了
sqlplus串連:
終端輸入:sqlplus “sys /password@orcl as sysdba”或sqlplus “scott /password”都可以測試
plsql developer串連
基於以上配置,可以配置plsql develpoer來圖形化管理oracle資料庫。
下載並安裝plsql developer,開啟後直接取消,然後進入plsql develper介面,選擇:工具->喜好設定->Oracle串連(預設開啟就是這一項)中的oracle主目錄名設定為:C:\instantclient_10_2及OCI庫為:C:\instantclient_10_2\oci.dll
配置完成後儲存關閉退出,然後再開啟plsql developer串連資料庫介面,輸入使用者名稱,如sys;密碼,資料庫執行個體名,如orcl,選擇串連身份(sys使用sysdba)後串連就能正常的操作資料庫了!!!