一、數(shù)據(jù)庫名
數(shù)據(jù)庫名是數(shù)據(jù)庫的“身份證號碼”,用于標(biāo)示一個數(shù)據(jù)庫。在參數(shù)文件中用DB_NAME表示。
數(shù)據(jù)庫名是在安裝數(shù)據(jù)庫、創(chuàng)建新的數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫控制文件、修改數(shù)據(jù)庫結(jié)構(gòu)、備份與恢復(fù)數(shù)據(jù)庫時(shí)都需要使用到的。
如何查看數(shù)據(jù)庫名呢?方式有三:
·使用SQL語句:select name from v$database;
·使用show命令:show parameter db_name;
·查看參數(shù)文件:查看init.ora文件
二、數(shù)據(jù)庫實(shí)例名:
數(shù)據(jù)庫實(shí)例名是用于和操作系統(tǒng)進(jìn)行聯(lián)系的標(biāo)識,也就是說數(shù)據(jù)庫和操作系統(tǒng)之間的交互使用的是數(shù)據(jù)庫實(shí)例名。
實(shí)例名也被寫入?yún)?shù)文件中,該參數(shù)為instance_name,在winnt平臺中,實(shí)例名同時(shí)也被寫入注冊表。
數(shù)據(jù)庫名和實(shí)例名可以相同也可以不同。在一般情況下,數(shù)據(jù)庫名和實(shí)例名是一對一的關(guān)系,但如果在oracle并行服務(wù)器架構(gòu)(即oracle實(shí)時(shí)應(yīng)用集群)中,數(shù)據(jù)庫名和實(shí)例名是一對多的關(guān)系。
如何查看當(dāng)前數(shù)據(jù)庫實(shí)例名呢?方式有三:
·使用SQL語句:select instance_name from v$instance;
·使用show命令:show parameter instance
·查看參數(shù)文件:查看init.ora文件
數(shù)據(jù)庫實(shí)例名與ORACLE_SID兩者都表示oracle實(shí)例,但是有區(qū)別的。instance_name是oracle數(shù)據(jù)庫參數(shù)。而ORACLE_SID是操作系統(tǒng)的環(huán)境變量。ORACLD_SID用于與操作系統(tǒng)交互,也就是說,從操作系統(tǒng)的角度訪問實(shí)例名,必須通過ORACLE_SID。
ORACLE_SID必須與instance_name的值一致。否則,你將會收到一個錯誤。在unix平臺,是“ORACLE not available”,在winnt平臺,是“TNS:協(xié)議適配器錯誤”。
三、數(shù)據(jù)庫域名與全局?jǐn)?shù)據(jù)庫名
隨著由多個數(shù)據(jù)庫構(gòu)成的分布式數(shù)據(jù)庫的普及,這種命令數(shù)據(jù)庫的方法給數(shù)據(jù)庫的管理造成一定的負(fù)擔(dān),因?yàn)楦鱾€數(shù)據(jù)庫的名字可能一樣,造成管理上的混亂。
為了解決這種情況,引入了Db_domain參數(shù),這樣在數(shù)據(jù)庫的標(biāo)識是由Db_name(數(shù)據(jù)庫名)和 Db_domain(數(shù)據(jù)庫域名)兩個參數(shù)共同決定的,避免了因?yàn)閿?shù)據(jù)庫重名而造成管理上的混亂。這類似于互連網(wǎng)上的機(jī)器名的管理。
我們將Db_name和 Db_domain兩個參數(shù)用‘.’連接起來,表示一個數(shù)據(jù)庫,并將該數(shù)據(jù)庫的名稱稱為Global_name(全局?jǐn)?shù)據(jù)庫名),即它擴(kuò)展了Db_name。Db_name參數(shù)只能由字母、數(shù)字、’_’、’#’、’$’組成,而且最多8個字符。
對一個網(wǎng)絡(luò)數(shù)據(jù)庫(Oracle database)的唯一標(biāo)識,oracle建議用此種方法命令數(shù)據(jù)庫。該值是在創(chuàng)建數(shù)據(jù)庫是決定的,缺省值為Db_name. Db_domain。在以后對參數(shù)文件中Db_name與Db_domain參數(shù)的任何修改不影響Global_name的值,如果要修改 Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO 命令進(jìn)行修改,然后修改相應(yīng)參數(shù)。
如何查詢數(shù)據(jù)庫域名呢?方法有三:
·使用SQL命令:select value from v$parameter where name = ´db_domain´;
·使用show命令:show parameter domain
·查看參數(shù)文件:在參數(shù)文件中查詢。
四、數(shù)據(jù)庫服務(wù)名
該參數(shù)是oracle8i新引進(jìn)的。在8i以前,我們用SID來表示標(biāo)識數(shù)據(jù)庫的一個實(shí)例,但是在Oracle的并行環(huán)境中,一個數(shù)據(jù)庫對應(yīng)多個實(shí)例,這樣就需要多個網(wǎng)絡(luò)服務(wù)名,設(shè)置繁瑣。為了方便并行環(huán)境中的設(shè)置,引進(jìn)了Service_name參數(shù)。該參數(shù)對應(yīng)一個數(shù)據(jù)庫,而不是一個實(shí)例。
該參數(shù)的缺省值為Db_name. Db_domain,即等于Global_name。如果數(shù)據(jù)庫有域名,則數(shù)據(jù)庫服務(wù)名就是全局?jǐn)?shù)據(jù)庫名;否則,數(shù)據(jù)庫服務(wù)名與數(shù)據(jù)庫名相同。
如何查詢數(shù)據(jù)庫服務(wù)名呢?方法有三:
·使用SQL語句:select value from v$parameter where name = ´service_name´;
·使用show命令:show parameter service_name
·查看參數(shù)文件:在參數(shù)文件中查詢。
從oracle8i開如的oracle網(wǎng)絡(luò)組件,數(shù)據(jù)庫與客戶端的連接主機(jī)串使用數(shù)據(jù)庫服務(wù)名。之前用的是ORACLE_SID,即數(shù)據(jù)庫實(shí)例名。
五、網(wǎng)絡(luò)服務(wù)名
網(wǎng)絡(luò)服務(wù)名,又可以稱為數(shù)據(jù)庫別名(database alias)。是客戶端程序訪問數(shù)據(jù)庫時(shí)所需要,屏蔽了客戶端如何連接到服務(wù)器端的細(xì)節(jié),實(shí)現(xiàn)了數(shù)據(jù)庫的位置透明的特性。網(wǎng)絡(luò)服務(wù)名被記錄在tnsnames.ora文件中。
網(wǎng)絡(luò)服務(wù)名是從客戶端的角度出發(fā),當(dāng)客戶端連接遠(yuǎn)程數(shù)據(jù)庫或其他服務(wù)時(shí),可以指定Net服務(wù)名。因此需要使用一個或多個命名方法將此Net服務(wù)名解析為連接數(shù)據(jù)庫或其他服務(wù)的連接描述符。
通常選擇的是[本地]-將存儲在本地客戶機(jī)的tnsnames.ora文件中的網(wǎng)絡(luò)服務(wù)名解析為連接描述符。
[Oracle Names]-由Oracle名字服務(wù)器提供為網(wǎng)絡(luò)上的每個Oracle Net服務(wù)提供解析方法
[主機(jī)名]-通過TCP/IP環(huán)境中的主機(jī)別名連接到Oracle數(shù)據(jù)庫服務(wù)
[Sun NIS]/[DCE CDS]-專用系統(tǒng)用的,在Windows 2000系統(tǒng)環(huán)境下不適用
六、總結(jié)
Oracle中各種命名的比較名稱查詢方式
名稱
|
查詢方式
|
DB_NAME |
select name from v$database |
INSTANCE_NAME |
select instance_name from v$instance |
ORACLE_SID |
值和INSTANCE_NAME相同 |
DB_DOMAIN |
select value from v$parameter where name="db_domain" |
GLOBAL_NAME |
DB_NAME.DB_DOMAIN |
SERVICE_NAME |
select value from v$parameter where name="service_name" |
NET_SERVICE_NAME |
檢查tnsnames.ora文件 |
posted on 2008-05-31 15:18
xzc 閱讀(544)
評論(2) 編輯 收藏 所屬分類:
Oracle