文章詳情頁
oracle 中對 db 的不同命名方式
瀏覽:3日期:2023-11-19 10:13:29
(包括:Db_name、Db_domain、Global_name、Service_name、Net service name)【Db_name:】 對一個數(shù)據(jù)庫(Oracle database)的唯一標(biāo)識,該數(shù)據(jù)庫為第一章講到的Oracle database。這種表示對于單個數(shù)據(jù)庫是足夠的,但是隨著由多個數(shù)據(jù)庫構(gòu)成的分布式數(shù)據(jù)庫的普及,這種命令數(shù)據(jù)庫的方法給數(shù)據(jù)庫的治理造成一定的負擔(dān),因為各個數(shù)據(jù)庫的名字可能一樣,造成治理上的混亂。為了解決這種情況,引入了Db_domain參數(shù),這樣在數(shù)據(jù)庫的標(biāo)識是由Db_name和 Db_domain兩個參數(shù)共同決定的,避免了因為數(shù)據(jù)庫重名而造成治理上的混亂。這類似于互連網(wǎng)上的機器名的治理。我們將Db_name和 Db_domain兩個參數(shù)用’.’連接起來,表示一個數(shù)據(jù)庫,并將該數(shù)據(jù)庫的名稱稱為Global_name,即它擴展了Db_name。 Db_name參數(shù)只能由字母、數(shù)字、’_’、’#’、’$’組成,而且最多8個字符。【Db_domain:】定義一個數(shù)據(jù)庫所在的域,該域的命名同互聯(lián)網(wǎng)的’域’沒有任何關(guān)系,只是數(shù)據(jù)庫治理員為了更好的治理分布式數(shù)據(jù)庫而根據(jù)實際情況決定的。當(dāng)然為了治理方便,可以將其等于互聯(lián)網(wǎng)的域。【Global_name:】對一個數(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 <db_name.db_domain>命令進行修改,然后修改相應(yīng)參數(shù)。【Service_name:】該參數(shù)是oracle8i新引進的。在8i以前,我們用SID來表示標(biāo)識數(shù)據(jù)庫的一個實例,但是在Oracle的并行環(huán)境中,一個數(shù)據(jù)庫對應(yīng)多個實例,這樣就需要多個網(wǎng)絡(luò)服務(wù)名,設(shè)置繁瑣。為了方便并行環(huán)境中的設(shè)置,引進了Service_name參數(shù),該參數(shù)對應(yīng)一個數(shù)據(jù)庫,而不是一個實例,而且該參數(shù)有許多其它的好處。該參數(shù)的缺省值為Db_name. Db_domain,即等于Global_name。一個數(shù)據(jù)庫可以對應(yīng)多個Service_name,以便實現(xiàn)更靈活的配置。該參數(shù)與SID沒有直接關(guān)系,即不必Service name 必須與SID一樣。在tnsnames.ora中,既可以用service_name, 也可以用sid【Net service name:】網(wǎng)絡(luò)服務(wù)名,又可以稱為數(shù)據(jù)庫別名(database;alias)。是客戶端程序訪問數(shù)據(jù)庫時所需要,屏蔽了客戶端如何連接到服務(wù)器端的細節(jié),實現(xiàn)了數(shù)據(jù)庫的位置透明的特性。網(wǎng)絡(luò)服務(wù)名被記錄在tnsnames.ora文件中。===關(guān)于錯誤ORA-12154:====有時即使在tnsnames.ora文件中有相應(yīng)的網(wǎng)絡(luò)服務(wù)名,可是用該網(wǎng)絡(luò)服務(wù)名連接時還會出錯,出現(xiàn)這種情況的典型配置如下(在客戶端的機器上):;tnsnames.ora中有:HZUAT = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.18.1.102)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = hzuat) ) );;sqlnet.ora中有:NAMES.DEFAULT_DOMAIN = staff.ebao.com;可當(dāng)用 user/passwd@HZUAT去連時, 卻報ora-12154錯。;其原因就是因為sqlplus程序會自動到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN參數(shù),假如該參數(shù)存在,則將該參數(shù)中的值取出,加到網(wǎng)絡(luò)服務(wù)名的后面。解決辦法一是刪掉NAMES.DEFAULT_DOMAIN, 二是把tnsnames.ora改成HZUAT.COM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.18.1.102)(PORT = 1521)) ) ;;(CONNECT_DATA = (SERVICE_NAME = hzuat) ) );;
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
