Oracle體系結構之-Oracle中各種名稱

pingyuan發表於2008-08-07
Oracle體系結構之-Oracle中各種名稱[@more@]
一、資料庫名

資料庫名是資料庫的“身份證號碼”,用於標示一個資料庫。在引數檔案中用DB_NAME表示。

資料庫名是在安裝資料庫、建立新的資料庫、建立資料庫控制檔案、修改資料庫結構、備份與恢復資料庫時都需要使用到的。

如何檢視資料庫名呢?方式有三:

·使用SQL語句:select name from v$database;·使用show命令:show parameter db_name;
·檢視引數檔案:檢視init.ora檔案

二、資料庫例項名
資料庫例項名是用於和作業系統進行聯絡的標識,也就是說資料庫和作業系統之間的互動使用的是資料庫例項名。

例項名也被寫入引數檔案中,該引數為instance_name,在winnt平臺中,例項名同時也被寫入登錄檔。

資料庫名和例項名可以相同也可以不同。
在一般情況下,資料庫名和例項名是一對一的關係,但如果在oracle並行伺服器架構(即oracle實時應用叢集)中,資料庫名和例項名是一對多的關係。
如何檢視當前資料庫例項名呢?方式有三:

·使用SQL語句:select instance_name from v$instance;·使用show命令:show parameter instance
·檢視引數檔案:檢視init.ora檔案
資料庫例項名與ORACLE_SID兩者都表示oracle例項,但是有區別的。

instance_name是oracle資料庫引數。而ORACLE_SID是作業系統的環境變數。ORACLD_SID用於與作業系統互動,也就是說,從作業系統的角度訪問例項名,必須透過ORACLE_SID。


ORACLE_SID必須與instance_name的值一致。否則,你將會收到一個錯誤。在unix平臺,是“ORACLE not available”,在winnt平臺,是“TNS:協議介面卡錯誤”。

三、資料庫域名與全域性資料庫名
隨著由多個資料庫構成的分散式資料庫的普及,這種命令資料庫的方法給資料庫的管理造成一定的負擔,因為各個資料庫的名字可能一樣,造成管理上的混亂。

為了解決這種情況,引入了Db_domain引數,這樣在資料庫的標識是由Db_name(資料庫名)和 Db_domain(資料庫域名)兩個引數共同決定的,避免了因為資料庫重名而造成管理上的混亂。這類似於互連網上的機器名的管理。

我們將Db_name和 Db_domain兩個引數用‘.’連線起來,表示一個資料庫,並將該資料庫的名稱稱為Global_name(全域性資料庫名),即它擴充套件了Db_name。Db_name引數只能由字母、數字、’_’、’#’、’$’組成,而且最多8個字元。

對一個網路資料庫(Oracle database)的唯一標識,oracle建議用此種方法命令資料庫。該值是在建立資料庫是決定的,預設值為Db_name. Db_domain。在以後對引數檔案中Db_name與Db_domain引數的任何修改不影響Global_name的值,如果要修改 Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO 命令進行修改,然後修改相應引數。

如何查詢資料庫域名呢?方法有三:

·使用SQL命令:select value from v$parameter where name = 'db_domain';·使用show命令:show parameter domain
·檢視引數檔案:在引數檔案中查詢。
四、資料庫服務名

該引數是oracle8i新引進的。在8i以前,我們用SID來表示標識資料庫的一個例項,但是在Oracle的並行環境中,一個資料庫對應多個例項,這樣就需要多個網路服務名,設定繁瑣。為了方便並行環境中的設定,引進了Service_name引數。該引數對應一個資料庫,而不是一個例項。

該引數的預設值為Db_name. Db_domain,即等於Global_name。如果資料庫有域名,則資料庫服務名就是全域性資料庫名;否則,資料庫服務名與資料庫名相同。

如何查詢資料庫服務名呢?方法有三:·使用SQL語句:select value from v$parameter where name = 'service_name';·使用show命令:show parameter service_name
·檢視引數檔案:在引數檔案中查詢。

從oracle8i開如的oracle網路元件,資料庫與客戶端的連線主機串使用資料庫服務名。之前用的是ORACLE_SID,即資料庫例項名。
五、網路服務名

網路服務名,又可以稱為資料庫別名(database alias)。是客戶端程式訪問資料庫時所需要,遮蔽了客戶端如何連線到伺服器端的細節,實現了資料庫的位置透明的特性。網路服務名被記錄在tnsnames.ora檔案中。

網路服務名是從客戶端的角度出發,當客戶端連線遠端資料庫或其他服務時,可以指定Net服務名。因此需要使用一個或多個命名方法將此Net服務名解析為連線資料庫或其他服務的連線描述符。

通常選擇的是[本地]-將儲存在本地客戶機的tnsnames.ora檔案中的網路服務名解析為連線描述符。
[Oracle Names]-由Oracle名字伺服器提供為網路上的每個Oracle Net服務提供解析方法
[主機名]-透過TCP/IP環境中的主機別名連線到Oracle資料庫服務
[Sun NIS]/[DCE CDS]-專用系統用的,在Windows 2000系統環境下不適用

六、總結
Oracle中各種命名的比較

名稱

查詢方式

資料庫名select name from v$database
資料庫例項名select instance_name from v$instance
資料庫域名select value from v$parameter where name="db_domain"
資料庫服務名select value from v$parameter where name="service_name"
全域性資料庫名資料庫名.資料庫域名
網路服務名檢查tnsnames.ora檔案
ORACLE_SID和資料庫例項名一致


注:本文大部分摘自CSDN網友方友松的技術blog,作者blog地址:http://blog.csdn.net/truexf/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199667/viewspace-1008684/,如需轉載,請註明出處,否則將追究法律責任。

相關文章