徹底理解初始化引數SERVICE_NAMES和客戶端TNS中SERVICE_NAME(2)
SERVICE_NAMES與客戶端的TNS配置
本文可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本宣告
http://blog.itpub.net/post/11/3115
2. SERVICE_NAMES與客戶端的TNS配置
在客戶端配置tnsnames.ora:
test1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SIMIS)
)
)
test2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hyk)
)
)
test3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hyb)
)
)
下面分佈嘗試用這三個tns來連線:
SQL> conn system/manager@test1
已連線。
SQL> /
INSTANCE_NAME HOST_NAME
---------------- ------------------------------
simis SB-HYK
SQL> conn system/manager@test2
已連線。
SQL> /
INSTANCE_NAME HOST_NAME
---------------- ------------------------------
simis SB-HYK
SQL> conn system/manager@test3
已連線。
SQL> /
INSTANCE_NAME HOST_NAME
---------------- ------------------------------
simis SB-HYK
SQL>
我們看到配置的SERVICE_NAME不管是simis、hyk、hyb均可以成功連線到伺服器上。
下面看看如果SERVICE_NAMES中如果不包含INSTANCE_NAME的時候能不能透過INSTANCE_NAME進行連線,事實證明連線不成功:
SQL> alter system set service_names='hyb,hyk' scope=both;
系統已更改。
SQL> shutdown abort;
ORACLE 例程已經關閉。
SQL> startup
ORA-03113: 通訊通道的檔案結束
SQL> conn / as sysdba
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 114061244 bytes
Fixed Size 282556 bytes
Variable Size 79691776 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
SQL> conn system/manager@test1
ERROR:
ORA-12514: TNS: 監聽程式不能解析在連線描述符中給出的 SERVICE_NAME
3. 結論
從oracle9i開始,後臺程式PMON自動在監聽器中註冊初始化引數SERVICE_NAMES中定義的服務名,SERVICE_NAMES預設為DB_NAME+DOMAIN_NAME。客戶端tns配置中SERVICE_NAME的名稱必須是SERVICE_NAMES或其中的一個NAME。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 徹底理解初始化引數SERVICE_NAMES和客戶端TNS中SERVICE_NAME(1)客戶端
- 徹底理解JavaScript中的thisJavaScript
- 【Oracle】service_name和service_names的關係Oracle
- 徹底理解Hive中的鎖Hive
- 徹底理解 JS 中 this 的指向JS
- 徹底理解js中this的指向JS
- 徹底理解synchronizedsynchronized
- JavaScript之例題中徹底理解thisJavaScript
- 徹底理解js中的閉包JS
- 帶你徹底理解 Android 中的 Window 和 WindowManagerAndroid
- 以太坊客戶端Geth命令用法-引數詳解客戶端
- MySQL 5.5客戶端字符集相關引數MySql客戶端
- 中斷客戶端客戶端
- 客戶端tns裡host配置主機名的方法客戶端
- 徹底理解Node.js中的BufferNode.js
- JavaScript中this指標指向的徹底理解JavaScript指標
- 徹底理解Golang MapGolang
- 徹底理解正則
- 徹底理解ReentrantLockReentrantLock
- 徹底理解volatile
- 【譯】徹底理解 Android 中的陰影Android
- SVG座標系統和transformation徹底理解SVGORM
- 徹底理解Linux的DISPLAY變數的作用Linux變數
- 徹底理解cookie,session,tokenCookieSession
- 遠端客戶端連線資料庫時提示TNS-12541: TNS: 無監聽程式客戶端資料庫
- Oauth2(2)客戶端註冊OAuth客戶端
- 《samba搭建win客戶端和linux客戶端的區別》Samba客戶端Linux
- 一題帶你徹底理解sleep()和wait()AI
- 第六課 以太坊客戶端Geth命令用法-引數詳解客戶端
- db2 客戶端安裝DB2客戶端
- Docker v2ray 客戶端Docker客戶端
- webService 客戶端呼叫 axis2Web客戶端
- Asp.Net 連線Oracle資料庫 出現"找到 Oracle 客戶端和網路元件" 徹底解決方法! (轉)ASP.NETOracle資料庫客戶端元件
- 服務端渲染和客戶端渲染服務端客戶端
- 徹底理解 Dart mixin 機制Dart
- 徹底理解kubernetes CNI
- 徹底理解連結器:四
- 小白(新手)如何徹底理解索引?索引