使用Oracle的客戶端工具Net Configuration Assistant 配置資料庫的本地Net服務名
或者
直接編輯 tnsnames.ora文件,
然後再次打開plsqldev ,就可以看到 資料庫的 本地Net服務名 , 進行資料庫連接了。
2. oracle PL/SQL裡面, tnsnames.ora文件裡面配置了之後, 在下拉列表框裡面沒有顯示
有兩種辦法,第一種是在系統變數里添加path,第二種是在plsql里,看我的圖
3. PLSQL Developer連接的是遠程的資料庫,查詢時怎麼設置表名前面不加資料庫名
1.安裝PLSQL Developer。
2.安裝oracle instance client端。
3.啟動PLSQL Developer ,選擇cancle,no logged on。
4.選擇tools》》preferences》》connection,在oracle home中輸入安裝好的oracle instance client目錄,在OCI LIBRARY中輸入oracle instance client 的OCI.dll文件的具體路徑,如D:\data\database\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\oci.dll。
5.在oracle instance client根目錄,如D:\data\database\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\中建立tnsnames.ora名字解析文件,在其中輸入對應的oracle伺服器解析規則信息,可參考oracle伺服器端的tnsnames.ora文件內容,如:
連接名稱(自定義)=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 資料庫伺服器IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 資料庫實例名)
)
)
6.設置環境變數:
添加tns解釋文件環境變數,名為TNS_ADMIN,值為tnsnames.ora文件所在路徑(如:D:\data\database\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\,特別是重裝後或其它操作,忘了TNS_ADMIN變數,plsql登陸就會報無法解析指定的連接標識符),這是為了能夠找到上面說的tnsnames.ora。如果本機上安裝了ORACLE,並且設置了ORACLE_HOME環境變數,那麼會自動在%ORACLE_HOME%/network/admin/位置查找tnsnames.ora文件。
添加oracle語言環境變數,添加環境變數:
「NLS_LANG = SIMPLIFIED CHINESE_CHINA.AL32UTF8」,(CHINESE_CHINA.AL32UTF8 是ASCII編碼類型,其它類型可自己到伺服器看一下,在伺服器上輸入命令:select userenv('language') from al;)。
7.確定,重啟程序,如果正常則可看到CONNECT AS XXX 選項。然後輸入用戶名和密碼。
4. plsql連接資料庫怎麼配tns,注意看問題補充
telnet IP 埠,測試是否通
如果不通
1、資料庫是否允許遠程連接
2、檢查安全設置,防火牆之類
5. Oracle 11g 安裝後plsqltns途徑指向一個不存在的路徑 添加監聽和在路徑下建立監聽都試了還是不好使
你這台伺服器肯定是即安裝了oracle又安裝了oracle client,伺服器上既然安裝了資料庫,就沒必要再去安裝oracle客戶端了,會導致環境變數更改從而出現你這種情況,建議你從環境變數入手去排查
6. instantclient和plsql應該怎麼樣配置
使用Oracle Instant Client時的PLSQL Developer配置
1,先到Oracle網站下載Instant Client :
根據你的操作系統選擇不同的Instant Client版本
下載回是一個壓縮文件,解壓之後的文件夾叫:D:/instantclient_11_2.放在你喜歡的目錄即可.例如:D:/instantclient_11_2
2.在D:/instantclient_11_2目錄下新建目錄network,在network目錄下再新建admin目錄,在admin目錄下新建文件tnsnames.ora,使用文本編輯器打開寫入如下內容:
MWDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MWDB )
)
)
第一個黃色字塊:表示定義遠程伺服器的在本地主機名
第二個黃色字塊:遠程資料庫實例名
3、添加一個環境變數,名為TNS_ADMIN,值為tnsnames.ora文件所在路徑。比如我的本機為:D:/instantclient_11_2/network/admin
4、設置ORACLE的語言,添加環境變數NLS_LANG ,值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK
如果不清楚遠程資料庫的ORACLE 語言,可以ssh或者telnet到遠程機器,在命令界面輸入,用命令行連接到資料庫。
select * from nls_instance_parameters;
查看NLS_LANGUAGE 的值
NLS_LANGUAGE
NLS_TERRITORY
5、下載並安裝PL.SQL.Developer配置應用
配置tools->preferences->connection
Oracle Home
D:/instantclient_11_2
OCI library
D:/instantclient_11_2/oci.dll
中文的PL/SQL Developer就是
工具-->首選項-->連接
Oracle主目錄
D:/instantclient_11_2
OCI庫
D:/instantclient_11_2/oci.dll
6、關閉PL/SQL Developer,重起Developer.
主機名就會出現在PL/SQL Developer的列表裡,輸入用戶名密碼,就可以登錄遠程oracle 11g資料庫了。
補充Instant Client 說明
Oracle Instant client 是oracle提供的簡便客戶端, 支持多種平台. 可從oracle網站下載, 下載地址為
包括如下內容:
Instant client Package - Basic 運行OCI, OCCI, 和JDBC-OCI應用程序需要的所有文件.
Instant client Package - Basic Lite: 只包含英語錯誤信息, 只支持unicode, ascii, 西歐字元集.
Instant client Package - JDBC Supplement 為jdbc增加了xa, 國際化和RowSet操作.
Instant Client Package - SQL *Plus 包含sqlplus和需要的庫文件
Instant client Package - SDK 使用Instant Client開發Oracle 應用程序需要的頭文件及示例makefile
Instant client package - ODBC 使用odbc時需要的庫, 不是所有平台都有. linux平台包含.
Basic 和Basic Lite兩個中必須選一個, 其他包都是可選的. 我下載了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解壓後放在一個文件夾下, 在這個文件夾下建立文件 tnsnames.ora, 設置環境變數LD_LIBRARY_PATH和TNS_ADMIN指向解壓後的目錄, 就可以使用sqlplus了.
我下載的instant client版本為10.2.0.2.0, 測試了聯接到oracle 9.2.0.4和oracle 10.2.0.1.
Instant Client中不包含tnsping, exp/imp, rman, netca等工具. 如果需要這些工具則需要安裝oracle client
7. plsql 連接oracle tns配置的問題
這個你需要首先知道一個基本的東西,程序啟動時會去讀取windows的系統環境變數
你安裝oracle及客戶端後,需要修改path變數,你看看oracle伺服器端的目錄和客戶端的目錄哪個在前面,程序就用哪個的,如果你用客戶端的,就將他的目錄放到伺服器端目錄的前面,以後,就用客戶端的tns了,伺服器的不起作用。
8. 為什麼打開PLSQL Developer時會報TNS無法監聽程序
1、檢查listener.log日誌
發現下面錯誤:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 10:25:26
Copyright (c) 1991, 2005, Oracle. All rights reserved.
系統參數文件為D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
寫入D:/oracle/proct/10.2.0/db_1/network/log/listener.log的日誌信息
寫入D:/oracle/proct/10.2.0/db_1/network/trace/listener.trc的跟蹤信息
跟蹤級別當前為0
以 pid=1704 開始
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
監聽該對象時出錯: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12545: 因目標主機或對象不存在, 連接失敗
TNS-12560: TNS: 協議適配器錯誤
TNS-00515: 因目標主機或對象不存在, 連接失敗
32-bit Windows Error: 49: Unknown error
不再監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
2、查看Oracle的listener是否啟動
C:/Documents and Settings/mengzhaoliang>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 10:5
0:44
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS: 無監聽程序
TNS-12560: TNS: 協議適配器錯誤
TNS-00511: 無監聽程序
32-bit Windows Error: 2: No such file or directory
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12535: TNS: 操作超時
TNS-12560: TNS: 協議適配器錯誤
TNS-00505: 操作超時
32-bit Windows Error: 60: Unknown error
原來沒有啟動listener,用「lsnrctl start」命令也不能啟動。
C:/Documents and Settings/mengzhaoliang>lsnrctl start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 10:5
2:16
Copyright (c) 1991, 2005, Oracle. All rights reserved.
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Proction
系統參數文件為D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
寫入D:/oracle/proct/10.2.0/db_1/network/log/listener.log的日誌信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
監聽該對象時出錯: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521))
)
TNS-12545: 因目標主機或對象不存在, 連接失敗
TNS-12560: TNS: 協議適配器錯誤
TNS-00515: 因目標主機或對象不存在, 連接失敗
32-bit Windows Error: 49: Unknown error
監聽程序未能啟動。請參閱上面的錯誤消息...
3、查看listener.ora的內容:
# listener.ora Network Configuration File: D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:/oracle/proct/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521))
)
)
原來本機的ip發生改變後,就出現了上述問題,改變資料庫的監聽ip地址:
把(ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521))
改成
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
127.0.0.1:也就是目前資料庫正在用的ip地址。
4、再次啟動oracle的listener
C:/Documents and Settings/mengzhaoliang>lsnrctl start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 10:5
4:40
Copyright (c) 1991, 2005, Oracle. All rights reserved.
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Proction
系統參數文件為D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
寫入D:/oracle/proct/10.2.0/db_1/network/log/listener.log的日誌信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Pro
ction
啟動日期 20-9月 -2008 10:54:41
正常運行時間 0 天 0 小時 0 分 1 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程序參數文件 D:/oracle/proct/10.2.0/db_1/network/admin/listener.o
ra
監聽程序日誌文件 D:/oracle/proct/10.2.0/db_1/network/log/listener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服務摘要..
服務 "PLSExtProc" 包含 1 個常式。
常式 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
命令執行成功
啟動已經成功,
5.再tnsnames.ora上添加上
ORCL_127.0.0.1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
6、再次用PL/SQL Developer再次連接資料庫
出現下面錯誤:
TNS-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
再次檢查listener.log日誌
20-9月 -2008 11:01:54 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=
(PROGRAM=D:/plsql/plsqldev.exe)(HOST=RUIFEI-EF0ADC98)(USER=mengzhaoliang))) * (ADDRESS=
(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1267)) * establish * orcl * 12514
TNS-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
查看listener:
C:/Documents and Settings/mengzhaoliang>lsnrctl services
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 11:1
1:09
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
服務摘要..
服務 "PLSExtProc" 包含 1 個常式。
常式 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
處理程序:
"DEDICATED" 已建立:0 已被拒絕:0
LOCAL SERVER
命令執行成功
7、用sqlplus也出現同樣錯誤:
C:/Documents and Settings/mengzhaoliang>sqlplusscott/mzl@ORCL_127.0.0.1
SQL*Plus: Release 10.2.0.1.0 - Proction on 星期六 9月 20 11:15:09 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
8、查看listenser狀態:
C:/Documents and Settings/mengzhaoliang>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -2008 11:2
6:42
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Pro
ction
啟動日期 20-9月 -2008 11:24:33
正常運行時間 0 天 0 小時 2 分 8 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程序參數文件 D:/oracle/proct/10.2.0/db_1/network/admin/listener.o
ra
監聽程序日誌文件 D:/oracle/proct/10.2.0/db_1/network/log/listener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服務摘要..
服務 "PLSExtProc" 包含 1 個常式。
常式 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
命令執行成功
C:/Documents and Settings/mengzhaoliang>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Proction on 20-9月 -
2008 11:27:43
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的參數文件:
D:/oracle/proct/10.2.0/db_1/network/admin/sqlnet.ora
TNS-03505: 無法解析名稱
9、查看sqlnet.ora內容:
# sqlnet.ora Network Configuration File: D:/oracle/proct/10.2.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
10.把listener.ora的內容:
# listener.ora Network Configuration File: D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:/oracle/proct/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
改成下面的內容:
# listener.ora Network Configuration File: D:/oracle/proct/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = D:/oracle/proct/10.2.0/db_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
11、然後關閉、再啟動listener
在cmd中執行「lsnrctl stop」 和「lsnrctl stop」命令,再次登陸正常!
C:/Documents and Settings/mengzhaoliang>sqlplus scott/mzl@orcl
SQL*Plus: Release 10.2.0.1.0 - Proction on 星期六 9月 20 11:55:47 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options
SQL>
再次用PL/SQL Peveloper登陸就沒有問題了。
完畢!
通過以上步驟我的問題還沒解決,然後重啟了一下OracleOraDb10g_home1TNSListener服務就行了
9. 多個oracle安裝後plsql 如何尋找tns文件
tns文件就在oracle的安裝目錄下。
以oracle10g為例,路徑為:~oracleproct10.2.0db_1 etworkADMIN
配置方法如下:
1、找到oracle的安裝目錄。如:C:oracleproct10.2.0db_1 etworkADMIN