有關oracle SERVICE_NAME的設定在 Oracle 8i 以後對於 SERVICE_NAMES 的用法不同於前面的版本,因而造成一些混淆,在連接資料庫的時侯常會發生二種雷同的錯誤情況:"ORA-12514 :TNS:listener could not resolve SERVICE_NAME given in connect descriptor" is similar to the the error: "ORA-12154 :TNS: Could not resolve service name" 在前版的 ORACLE 中 Oracle 8 使用Net8 Configuration或 Net8 Assistant tools 來設定Oracle網路服務時是用SID= 來指定網路服務所使用的名稱,但是Oracle 8i 卻加了 SERVICE_NAMES參數在 TNSNAME.ORA 的 CONNECT_DATA 取代了 SID= 。注意下列事項讓使用可順利連線。1.在 LISTENER.ORA 中用 GLOBAL_DBNAME 參數來指定不同 的SID,把服務區分開來,所指定的服務名稱也就是參數 SERVICE_NAMES 所使用的名稱,不過更動了 LISTENER.ORA就要重新啟動 LISTENER服務。2.要清楚在TNSNAMES.ORA 中要用到的名稱是什麼,使用<SERVICE_NAMES>.<DB_DOMAIN>的方法來表示,在INIT.ORA中指定的DB_DOMAIN的名稱也要指定出來,例如SERVICE_NAMES=BIKES DB_DOMAIN=COM那麼就要指定SERVICE_NAME=BIKE.COM3.也可以簡化設定直接在INIT.ORA 中指定SERVICE_NAMES讓 TNSNAMES.ORA 使用,而不必設定 INIT.ORA的 DB_DOMAIN 或 LISTERNER.ORA 中的 GLOBAL_DBNAME 如:INIT.ORA 中使用 serive_names=”TEST817” db_domain 不設。 TNSNAMES.ORA中指定 (CONNECT_DATA =SERVICE_NAME= "TEST817")4.如果在 INIT.ORA 的SERVICE_NAMES中有多重設定,則使用其中之一。如果沒設SERVICE_NAME 那麼就可以用 B_NAMED.DB_DOMAIN 的INIT.ORA 的參數了。5.如果INIT.ORA的 SERVICE_NAMES, DB_DOMAIN 和 LISTENER.ORA 中的 GLOBAL_DBNAME 都沒有設定,那在 TNSNAMES.ORA 中的 SERVICE_NAME 就用 DB_NAME.6.在資料庫INIT.ORA設定中一個 INSTANCE 只能有一個 INSTANCE NAME 但是可以給它多個不同的 SERVICE_NAMES.E.g.: instance_name = v815 service_names = ( marketing, support, education ) 7.用 SID無法達成單一資料庫做多重名稱連線服務的功能,透過使用設定不同的 SERVICE_NAMES 可以讓不同的服務名稱來區別資料庫使用的狀況。 .msgcontent .wsharing ul li { text-indent: 0; } 分享 Facebook Plurk YAHOO! .
- Jan 14 Sat 2012 17:41
有關oracle SERVICE_NAME的設定
close
全站熱搜
留言列表
禁止留言