轉Oracle安裝臨時客戶端使用總結

zhyp29發表於2016-05-23
Oracle安裝臨時客戶端總結
由於把oracle 11g全部裝在機器上,導致機器太卡,於是解除安裝oracle裝上客戶端,果然效果明顯。

首先要去官網上下載oracle 11客戶端,(我用的是64位系統)地址:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

下載:instantclient-basic-win-x86-64-***;核心包
instantclient-sqlplus-windows.x64- **;sqlplus包

instantclient-jdbc-win32-11.1.0.7.0.zip  包含JDBC Driver的包

將其全部解壓到 D:\Program Files\instantclient_11_2目錄下。
在D:\Program Files\instantclient_11_2中新建 NETWORK\ADMIN\資料夾。
在ADMIN下面建 tnsnames.ora檔案。

自定義DatabaseName=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL
= TCP)(HOST = 伺服器IP地址)(PORT
= 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = 伺服器SID)

)

)

開啟pl /SQL-->Toos-->Preferences-->Oracle-->Connection中有ORACLE_HOME和OCI兩個選項框,如下:

在ORACLE_HOME中寫入連線驅動;

OCI中寫入oci.dll檔案。

這一步我做了下嘗試,好像不配也是沒有問題的。關鍵是環境變數的配置,
屬性值一定要對,千萬不要用分號結尾。

新增環境變數:

TNS_ADMIN: D:\ProgramFiles\instantclient_11_2\NETWORK\ADMIN;(nsnames.ora檔案所在位置)

NLS_LANG : SIMPLIFIEDCHINESE_CHINA.ZHS16GBK;

LANG : zh_CN.GBK (解決中文亂碼)

ORACLE_HOME : D:\ProgramFiles\instantclient_11_2;(戶端資料夾所有位置)

在環境變數PATH中加入 D:\ProgramFiles\instantclient_11_2; (sqlplus所在位置)
測試:開始+R-->cmd-->sqlplus "user/passwd@TNS_NAME"OK!!

PS:如果出現ORA-12705:無法訪問NLS資料檔案,或者指定的環境無效錯誤,把環境變數中NLS_LANG的變數刪除掉!

如果直接去掉很可能會導致中文亂碼的問題。

TNS_NAME是在tnsnames.ora檔案配置的TNS名稱,如ORCL_188。而不是資料庫的例項名稱或監聽名稱。


注意:這裡sqlplus後面的資訊一定要用雙引號包起來,不然會出現如下異常:


安裝過程中問題彙總:

一、出現ORA-12705:無法訪問NLS資料檔案,或者指定的環境無效錯誤

產生原因:

1.可能是由於以前安裝過Oracle,沒有解除安裝完全,登錄檔中還有殘留檔案。

Windows平臺下,一般的輸入cmd執行regedit進入登錄檔,進入HKEY_LOCAL_MACHINE
--> SOFTWARE --> Wow6432Node --> Oracle --> HEY_DevSuiteHome1,在右邊列表中找到NLS_LANG,如果要設定為英文語言,即設定為:AMERICAN_AMERICA.ZHS16GBK ,也可以設定成中文字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

如果沒有安裝其他Oracle程式,可以直接將整個Oracle登錄檔檔案刪除。

2.在環境變數中設定NLS_LANG出錯。由於這裡的NLS_LANG的值是一個單一屬性值,而不是多個路徑,
所以一定
不能再末尾加上分號,不然會一直報錯。

二、在PL/SQL developer的登入介面上配置的TNS一直不能顯示出來

1.首先檢查在環境變數中是否配置了TNS_ADMIN。在對應路徑下是否正確建立了tnsnames.ora檔案。

例項:

ORCL_188=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))(CONNECT_DATA
= (SID = orcl)))

ORCL_100=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)))

這裡的CONNECT_DATA中配置SID
和SERVICE_NAME 都可以。

2.檢查是否在環境變數的Path中指定了sqlplus的路徑

在環境變數PATH中加入 D:\Program Files\instantclient_11_2 (sqlplus所在位置)

注意:環境變數中,配置在最後的屬性值不要在屬性值最後加“;”分號結尾。
如:

TNS_ADMIN的屬性值末尾以分號結尾,開啟PL/SQL發現,讀取不到對應的TNS配置檔案資訊。

三、登入的時候一直出現TNS:無監聽程式。

1.檢查TNS配置的埠是否正確。

我出錯的原因就是埠的末位數錯了。

四、監聽程式無法識別對應的請求服務

這個就提示的比較明顯了,TNS中配置的服務例項SERVICE_NAME不存在。

一般對應的是資料庫的例項名稱,例如orcl

相關文章