ORACLE中各類NAME的簡介
ORACLE有很多NAME,初學者是比較容易搞起來。這裡我簡單介紹下,有興趣的同學可以深入下。(當初我也搞了很長時間才弄明白,時間一長感念又有點糊了)
DATBASE GLOBAL NAME
DATBASE GLOBAL NAME 可以簡單的理解為 db_name+domain_name(如果沒有domain_name則database global name等同於db_name) DB NAME 資料庫名 DOMAIN NAME 域名。(這裡的域是ORACLE自定義的域可以與NETWORK上的域相同也可以不同。)
為什麼要有database global name? 主要是為了在分散式環境中更好的管理具有相同DB_NAME的資料庫,以方便維護,減少差錯。(名字可以自定義,系統不會硬性約束的) 比如9C 上海有個PASS9 DB 北京也有個PASS9 DB DB的NAME都叫 MEMDB。為了能夠區分這兩個DB就引進了GLOBAL DB 如果上海的domain_name=sh.the9.com ,db_name=memdb 北京的domain_name=bj.the9.com , db_name=memdb
那
上海的database global name 就是 memdb. sh.the9.com 北京的database global name 就是 memdb. bj.the9.com
database global name 只是個名字定義,預設的情況是等於db_name+點+domain_name。但你也可以定義,在相同Q的domain中也可以定義相同的幾個database global name。。 database global name的定義會影響到 db_link的命名(在global_names引數為'true'的情況下)
db_unique_name
DATBASE UNIQUE NAME
昨天我說的是db_unique_name 即在一定的服務叢集中定義DB的唯一名字。 如在dataguard環境中可能一臺主機有5臺備機。這6臺伺服器具有相同的DB_NAME,DOMAIN_NAME,GLOBAL_NAME。為了管理方便,需要設定一個能夠唯一區別他們的名字。於是db_unique_name就誕生了。
下面簡單介紹下ORACLE其他幾個NAME
INSTANCE NAME
INSTANCE NAME
INSTANCE NAME 例項名稱 預設情況等於SID
SERVICE NAME
SERVICE NAME
SERVICE NAME 面向CLIENT的服務名稱 預設情況等於DATABASE GLOBAL NAME
在8i以後(含8i),client連線server是通過service name。
下面是client的TNSNAME.ORA中的一段(與SQL SERVER的網路配置一樣, 只不過SQL SERVER的配置是寫在登錄檔中,而ORACLE是寫在TNSNAME.ORA檔案中)
TESDB=
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.198.131)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = TESDB) ) )
可以看出從客戶端連線DB SERVER需要 3個要素 主機地址,埠號,服務號 (連線的方法是 SQLPLUS 使用者名稱@TESDB) 大多數DB都是這樣的。 當然 SERVICE_NAME可以自定義。比如 你可以把SERVICE_NAME改成 TEST .但在SERVER改完後,需要在CLIENT中的TNSNAME.ORA做相應的修改。否則可能造成客戶端無法連線。
再貼一段TNSNAME.ORA,與上面不同的是,客戶端連線的是RAC環境。 大家都知道RAC是多個INSTANCE 作用於同一個DB.也就是說INSTANCE_NAME有多個,而DB_NAME,DATABAS GLOBAL NAME SERVICE_NAME是一個。
DSRAC1 =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dsrac1-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dsrac) (INSTANCE_NAME = dsrac1) ) )
這裡可以看出 當連線 DSRAC1 時(sqlplus sys@ DSRAC1)我連線的INSTANCE 是dsrac1. 這就是 INSTANCE_NAME 的主要作用之一。
ORACLE SID
SID DB的 SYSTEM ID. 這個 SYSTEM ID 主要是和OS相關的。當你定義好SID後 會在主機上建立很多以SID命名的程式 如 ora_psp0_tesdb ora_mman_tesdb ora_dbw0_tesdb ora_lgwr_tesdb ora_ckpt_tesdb ora_smon_tesdb ora_reco_tesdb
因此SID在一臺主機上只能是唯一的。 很多時候我們處理的DB是相對比較簡單的環境,主要是單機(非RAC,非DG,非分散式),在這種情況下預設的名字都是同一的即DB_NAME=INSTANCE_NAME=SERVICE_NAME=GLOBAL_NAME=SID
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25618347/viewspace-713840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介紹Oracle
- ORACL中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介紹Oracle
- oracle中眾多的nameOracle
- C#各類集合介紹C#
- oracle中instance name 和database name的一點體會OracleDatabase
- [轉]ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAMEOracle
- oracle中*_name你知道多少?Oracle
- Oracle中CAST函式使用簡介OracleAST函式
- Qt QApplication 類簡介--Qt 類簡介專題(四)QTAPP
- UML 之 各種檢視簡介 & UML類圖幾種關係的總結
- spring中各個類的作用Spring
- javascript中各類的prototype屬性JavaScript
- 完整的FTP類 功能簡介FTP
- Oracle中的外連線簡單介紹(轉)Oracle
- 關於各類防火牆的介紹(2)(轉)防火牆
- 關於各類防火牆的介紹(1)(轉)防火牆
- 股票種類簡介
- Oracle的service功能簡介Oracle
- ORACLE temp表的簡介Oracle
- Android提供的LruCache類簡介Android
- SQL語句的分類簡介SQL
- TS類,介面,泛型的簡介泛型
- Oracle Text簡介Oracle
- Oracle:srvctl 簡介Oracle
- Oracle:PGA 簡介Oracle
- Oracle程式簡介Oracle
- Oracle MTS簡介Oracle
- Vector3 類簡介
- oracle資料庫中讓人容易混淆的“name”Oracle資料庫
- python中的__name__=='__main__'如何簡單理解PythonAI
- [前臺]---js獲取input標籤中name相同的各個value值JS
- Java中各Set實現類的效能分析Java
- ORACLE SEQUENCE的簡單介紹Oracle
- 實現Oracle對ldap資料的各類操作OracleLDA
- JSP簡介以及各種內建物件的用法JS物件
- MySQL各種日誌的簡介和設定方法MySql
- oracle中service_name區別總結Oracle
- Oracle PSU 簡介Oracle