oracle資料庫中讓人容易混淆的“name”

pingley發表於2012-02-25
oracle資料庫中讓人容易混淆的“name”
database name(資料庫名):指的就是oracle資料庫的名稱,用來在一個域內唯一的標識一個資料庫。資料庫名由db_name初始化引數指定。資料庫名最多可達8個字元(文字數字字元,下劃線,#,$)組成,必須和create database中的指定的名字相同。在有多個資料庫存在時,資料庫名應該和例項名一致,以免混淆例項與資料庫的對應關係。在RAC環境下所有的例項中的資料庫名必須相同,備用資料庫與主資料庫的資料庫名也應該相同。
SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_name                              string      oracl
資料庫名是:oracl
instance name(例項名):oracle例項由SGA與oracle後臺程式組成,例項名指的就是例項的名稱。由初始化引數檔案中的instance_name指定,唯一的標識例項。在單例項架構下,例項名一般和資料庫名相同,在RAC環境下多個例項對應一個資料庫。例項名也就是我們經常提高的SID.
SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
instance_name                        string      oracl
例項名是:oracl
database domain(資料庫域名):資料庫域名就是網路域名。資料庫建立以後,改變初始化引數db_domain的值不會影響到全域性資料庫名或者資料庫連結名的解析。使用alter system 的方式是無法修改的。應該使用alter database修改,並且修改以後也不會 反映 在db_domian中,而是反映在global_name中。
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_domain                            string
我沒有設定資料庫域名,因為我的資料庫是本地學習測試用的。
global database name(全域性資料庫名):唯一的標識一個資料庫,以database_name.database_domain的格式。因為不在同一個域內的資料庫庫名可能相同,但是同一個域內的資料庫庫名不可能相同,所以可以透過database_name.database_domain的方式唯一的標識一個資料庫。檢視資料字典檢視global_name確定全域性資料庫名。
SQL> select * from global_name;

GLOBAL_NAME
-----------------------------------
ORACL
修改透過修改global_name的方式來修改db_domain
SQL> alter database rename global_name to oracl.zeng.com;
Database altered.
檢視修改的情況
SQL> select * from global_name;
GLOBAL_NAME
-----------------------------------
ORACL.ZENG.COM
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------
db_domain                            string
雖然db_domain的值是空的,但是全域性資料庫名確實已經更改了。
database service name(資料庫服務名):對應客戶端來說,資料庫在邏輯上只是一個服務。一個資料庫例項可以有多個資料庫服務名,每個一個資料庫服務名,為一組不同的客戶端所使用。每個資料庫服務名,也可以對應多個資料庫例項。透過資料庫服務名來標識每一個資料庫,資料庫服務名由初始化引數service_name確定。預設和全域性資料庫名相同。

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

相關文章