tnsnames.ora配置小結
listener.ora,sqlnet.ora,tnsnames.ora,都是放在$ORACLE_HOME/network/admin目錄下。
重點:三個檔案的作用和使用
#-----------------------
sqlnet.ora-----作用類似於linux或者其他unix的nsswitch.conf檔案,通過這個檔案來決定怎麼樣找一個連線中出現的連線字串,
例如我們客戶端輸入
sqlplus sys/[email protected]
假如我的sqlnet.ora是下面這個樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那麼,客戶端就會首先在tnsnames.ora檔案中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名,通過網路的途徑去解析它的ip地址然後去連線這個ip上GLOBAL_DBNAME=orcl這個例項,當然我這裡orcl並不是一個主機名
如果我是這個樣子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那麼客戶端就只會從tnsnames.ora查詢orcl的記錄
括號中還有其他選項,如LDAP等並不常用。
#------------------------
Tnsnames.ora------這個檔案類似於unix 的hosts檔案,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似
NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連線字串的順序中有TNSNAMES時,才會嘗試使用這個檔案。
例子中有兩個,ORCL 對應的本機,SALES對應的另外一個IP地址,裡邊還定義了使用主用伺服器還是共享伺服器模式進行連線,一句一句說
#你所要連線的時候輸入得TNSNAME
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
#下面是這個TNSNAME對應的主機,埠,協議
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#使用專用伺服器模式去連線需要跟伺服器的模式匹配,如果沒有就根據伺服器的模式
#自動調節
(SERVER = DEDICATED)
#對應service_name,SQLPLUS>show parameter service_name;
#進行檢視
(SERVICE_NAME = orcl)
)
)
#下面這個類似
SALES =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sales)
)
)
#----------------------
客戶端完了我們來看伺服器端
listener.ora------listener監聽器程序的配置檔案
關於listener程序就不多說了,接受遠端對資料庫的接入申請並轉交給oracle的伺服器程序。所以如果不是使用的遠端的連線,listener程序就不是必需的,同樣的如果關閉listener程序並不會影響已經存在的資料庫連線。
Listener.ora檔案的例子
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora
# Generated by Oracle configuration tools.
#下面定義LISTENER程序為哪個例項提供服務
#這裡是ORCL,並且它對應的ORACLE_HOME和GLOBAL_DBNAME
#其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做資料庫連線
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)
(SID_NAME = ORCL)
)
)
#監聽器的名字,一臺資料庫可以有不止一個監聽器
#再向下面是監聽器監聽的協議,ip,埠等,這裡使用的tcp1521埠,並且使#用的是主機名
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
)
上面的例子是一個最簡單的例子,但也是最普遍的。一個listener程序為一個instance(SID)提供服務。
監聽器的操作命令
$ORACLE_HOME/bin/lsnrctl start,其他諸如stop,status等。具體敲完一個lsnrctl後看幫助。
上面說到的三個檔案都可以通過圖形的配置工具來完成配置
$ORACLE_HOME/netca 嚮導形式的
$ORACLE_HOME/netmgr
本人比較習慣netmgr,
profile 配置的是sqlnet.ora也就是名稱解析的方式
service name 配置的是tnsnames.ora檔案
listeners配置的是listener.ora檔案,即監聽器程序
具體的配置可以嘗試一下然後來看一下配置檔案。
這樣一來總體結構就有了,是當你輸入sqlplus
1. 查詢sqlnet.ora看看名稱的解析方式,發現是TNSNAME
2. 則查詢tnsnames.ora檔案,從裡邊找orcl的記錄,並且找到主機名,埠和service_name
3. 如果listener程序沒有問題的話,建立與listener程序的連線。
4. 根據不同的伺服器模式如專用伺服器模式或者共享伺服器模式,listener採取接下去的動作。預設是專用伺服器模式,沒有問題的話客戶端就連線上了資料庫的server process。
5. 這時候網路連線已經建立,listener程序的歷史使命也就完成了。
#---------------
幾種連線用到的命令形式
1.sqlplus / as sysdba 這是典型的作業系統認證,不需要listener程序
2.sqlplus sys/oracle 這種連線方式只能連線本機資料庫,同樣不需要listener程序
3.sqlplus sys/[email protected] 這種方式需要listener程序處於可用狀態。最普遍的通過網路連線。
以上連線方式使用sys使用者或者其他通過密碼檔案驗證的使用者都不需要資料庫處於可用狀態,作業系統認證也不需要資料庫可用,普通使用者因為是資料庫認證,所以資料庫必需處於open狀態。
然後就是
#-------------
平時排錯可能會用到的
1.lsnrctl status檢視伺服器端listener程序的狀態
LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status
services version reload
save_config trace change_password
quit exit set*
show*
LSNRCTL> status
2.tnsping 檢視客戶端sqlnet.ora和tnsname.ora檔案的配置正確與否,及對應的伺服器的listener程序的狀態。
C:/>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 16-8月 -
2005 09:36:08
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
E:/oracle/product/10.1.0/Db_2/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_
NAME = orcl)))
OK (20 msec)
3.
SQL>show sga 檢視instance是否已經啟動
SQL> select open_mode from v$database; 檢視資料庫是開啟還是mount狀態。
OPEN_MODE
----------
READ WRITE
#-----------------
使用hostname訪問資料庫而不是tnsname的例子
使用tnsname訪問資料庫是預設的方式,但是也帶來點問題,那就是客戶端都是需要配置tnsnames.ora檔案的。如果你的資料庫伺服器地址發生改變,就需要重新編輯客戶端這個檔案。通過hostname訪問資料庫就沒有了這個麻煩。
需要修改
伺服器端listener.ora
#監聽器的配置檔案listener.ora
#使用host naming則不再需要tnsname.ora檔案做本地解析
# listener.ora Network Configuration File: d:/oracle/product/10.1.0/db_1/NETWORK/ADMIN/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
# (SID_NAME = PLSExtProc)
(SID_NAME = orcl)
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = d:/oracle/product/10.1.0/db_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
)
)
客戶端sqlnet.ora 如果確認不會使用TNSNAME訪問的話,可以去掉TNSNAMES
# sqlnet.ora Network Configuration File: d:/oracle/product/10.1.0/db_1/NETWORK/ADMIN/sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (HOSTNAME)
Tnsnames.ora檔案不需要配置,刪除也無所謂。
下面就是網路和作業系統的配置問題了,怎麼樣能夠解析我的主機名的問題了
可以通過下面的方式連線
sqlplus
這樣的話,會連線boway這臺伺服器,並且listener來確定你所要連線的service_name。
相關推薦
tnsnames.ora配置小結
listener.ora,sqlnet.ora,tnsnames.ora,都是放在$ORACLE_HOME/network/admin目錄下。重點:三個檔案的作用和使用 #----------------------- sqlnet.ora-----作用類似於li
Oracel數據庫 listener.ora和tnsnames.ora配置
cat too ini rac edi 參考 image tns 登錄 oracel服務經常會出現各種監聽問題,很多情況是 listener.ora和tnsnames.ora 的配置有問題 D:\app\Administrator\product\11.2.0\dbhom
Oracle的tnsnames.ora配置(PLSQL Developer)
好文章 pro base script 必須 第一步 單機 sys RoCE 首先打開tnsnames.ora的存放目錄,一般為D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安裝具體位置了。
Linux下如何查詢sqlnet.ora 和listener.ora 和tnsnames.ora 配置檔案的目錄
1.首先切換到oracle 使用者下 使用env 檢視資料庫配置檔案資訊 2.然後找到LD_LIBRARY_PATH=/home/opt/oracle/product/11.2.0.4/db_1 (配置檔案後面的 路徑) 3.切換到 目錄下 cd /home/opt/oracle/p
PLSQL Developer安裝、tnsnames.ora配置 解答
rticle/details/51055850 前提是您已經安裝好了PLSQL-Developer工具,安裝PLSQL程式相信大家都會 正常的登入視窗: 當你的圖為: 沒有這個選項無法連線資料庫.沒有安裝Oracle的話
【 PLSQL Developer安裝、tnsnames.ora配置 解答】
使用plsql遠端連線資料庫需要安裝plsql工具+ oracle的遠端客戶端 在不登入的狀態開啟plsql: 點選工具---首選項:指定oracle客戶端的安裝路徑: C:\javaSoft\PLSQL\instantclient_11_2 C:\javaSoft\PLSQL\ins
多種TNS報錯總結--監聽器及tnsnames.ora配置檔案多種出錯總結
注意:本文內容基本無sqlnet.ora的情況。關於sqlnet.ora,詳見:監聽中sqlnet.ora的作用 本地命名的配置:.本地名可以用簡單的名稱訪問到所需的資料庫或伺服器所需的資訊,而這些資訊儲存到了tnsnames.ora中. LOCALNAME: 本地名稱 A
tnsnames.ora配置遠端oracle後,plsql無法連線
下午在公司內部伺服器上安裝了oracle11g,安裝好之後想在本地用plsql遠端連線看看,在tnsnames.ora配置檔案裡配置好後,plsql死活連不上,一直報ora-12154:TNS:無法解析指定的連線識別符號,如下圖: 最後檢查下來,發現tns
pl/sql的tnsnames.ora檔案配置
位置:D:\app\product\11.2.0\dbhome_1\network\admin\tnsnames.ora(根據安裝位置具體情況而定) zx_U= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
沒有安裝oracle,配置plsql的tnsnames.ora
在 https://download.csdn.net/download/sinat_29983215/10336939 下載 PL/SQL Developer。 1. 解壓,在instantclient_11_2目錄下新建NETWORK資料夾,
客戶機安裝Oracle 11g client後的配置(用Net Configuration Assistant配置tnsnames.ora)
一、配置 1.安裝好Oracle Client後,點選開始選單,找到Net Configuration Assistant工具--開啟 2.歡迎頁面,選中“本地網路服務名配置”,點選“下一步” 3.“新增”,點選“下一步” 4.輸入你要連線的目標資料庫的“服務名”,例
plsql配置tnsnames.ora
我存在的問題是,使用plsql連線一個公司的資料庫,連線不成,我再網上搜的資料說需要修改tnsnames.ora檔案,接下來我具體說下如何進行配置首先我在oracle客戶端裡找到這個檔案,我看網上教程說需要新建立network,ADMIN和trsnames.ora檔案,但是我
在WIN7下安裝ORACLE並配置listener.ora和tnsnames.ora檔案,以此使用PLSQL
問題: 去年安裝的ORACLE當時執行的沒出問題,也就沒有寫總結。後來到公司,自己電腦的連不上公司的ORACLE資料庫了,自己一頓操作猛如虎,然後自己的資料庫也連不上了。這篇文章就是用來記錄這次資料庫從正常到被我作壞,然後由恢復正常的過程中遇到的問題以及解決辦
listener.ora--sqlnet.ora--tnsnames.ora的關係以及手工配置舉例
最近看到好多人說到tns或者資料庫不能登入等問題,就索性總結了下面的文件。 首先來說Oracle的網路結構,往復雜處說能加上加密、LDAP等等。。這裡不做討論,重點放在基本的網路結構也就是我們最常用的這種情況 三個配置檔案 listener.ora、sqln
[整理記錄]oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子
1.解決問題:TNS或者資料庫不能登入。 最簡單有效方法:使用oracle系統提供的工具 netca 配置(把原來的刪除掉重新配置) $netca 2.然而,仍有疑問:如何指定'listener.ora'存放的目錄?不要預設目錄($ORACLE_HOM
關於PLSQL配置了正確的Oracle客戶端但是不能識別tnsnames.ora問題
場景描述: 在通過安裝Oracle客戶端使用PLSQL的時候發現PLSQL在已經正常配置了Oracle Home和Ocdi library的情況下不能識別tnsnames.ora中的有效配置。 正常安裝Oracle客戶端效果: PLSQL中關於Oracle Ho
三種不配置tnsnames.ora的另類sqlplus連線資料庫方式
1、腳本里在當前目錄下自動生成tnsnames.ora:ora =(description=(address=(protocol=tcp)(host=172.19.96.4)(port=1521))(connect_data=(server=dedicated)(service_name=orcl)))然後
eclipse3.7+resin4.0集成配置小結
選擇 replace works tomcat sta evel ava help pen 1、插件不要用improve公司的了,那個太老了。直接用resin官方的,用eclipse的help->install new software功能,地址用:http://ww
Zabbix3 ——Server端的安裝配置小結
Zabbix簡介 zabbix([`zæbiks])是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。zabbix由2部分構成,zabbix server與
Nginx 配置小結
前兩天去聽了一堂Nginx的課,然後翻了一下自己之前的Nginx的筆記,做了一個簡單的小結。 全域性變數 $args : 這個變數等於請求行中的引數,同$query_string $content_length : 請求頭中的Content-length欄位 $conte