關於資料庫標識類引數

ogam發表於2009-07-02
資料庫標識引數主要有資料庫名(db_name)、資料庫例項名(instance_name)、作業系統環境變數(oracle_sid)、資料庫服務名(service_names)、資料庫域名(db_domain)、全域性資料庫名(global_db_name)等。[@more@]

資料庫名
資料庫名是用於區分一個資料的內部標識,是以二進位制方式儲存於資料庫控制檔案中的引數,在安裝或建立資料庫之後將不得修改。資料庫安裝完成後,該引數被寫入資料庫引數檔案PFILE中。
如 DB_NAME=orcl
要查詢資料庫名
SQL> select name from v$database;

資料庫例項名
每一個執行的資料庫中都有一個或多個資料庫例項名,該名稱在資料庫中用引數INSTANCE_NAME表示。ORACLE資料庫名是用於區分一個資料的內部標識,而資料庫例項名用於和作業系統之間的聯絡,也就是說,用於對外連線時使用,在作業系統中取得與資料庫之間的互動則必須使用資料庫例項名。例如,要和某一個資料庫伺服器連線,則必須知道其資料庫例項名,知道資料庫名是沒有作用的。與資料庫名不同,在安裝或建立資料庫之後,例項名是允許修改的。
要查詢例項名
SQL> select instance_name from v$instance;
對於例項名的描述,有時使用引數INSTANCE_NAME,有時使用引數ORACLE_SID,這兩個引數都是資料庫例項名。INSTANCE_NAME是ORACLE資料庫引數,此引數可以在引數檔案中查詢到,而引數ORACLE_SID則是作業系統環境變數。
  在ORACLE8i以後,引入了另外3個資料庫標識類引數,即資料庫域名(DB_DOMAIN)、全域性資料庫名(GLOBAL_DB_NAME)、資料庫服務名(SERVICE_NAMES)。

資料庫域名(DB_DOMAIN)
在Oracle分散式資料庫系統中,不同版本、不同作業系統間都可以透過資料庫鏈路進行資料的遠端複製。資料庫域名主要用於Oracle分散式環境中資料的遠端複製。
資料庫域名的構造方式是,在資料庫名後增加域名,此域名與網路中的域名可以不同。
資料庫域名與資料庫名、資料庫例項名一樣,是在安裝資料庫時確定的。資料庫安裝結束後,資料庫域名被記錄在引數檔案中,用引數DB_DOMAIN表示。如果引數檔案中沒有引數DB_DOMAIN,則該資料庫沒有使用域名。
檢視資料庫的域名
SQL> show parameter domain

全域性資料庫名(GLOBAL_DB_NAME)
全域性資料庫名就是資料庫名後加上資料庫域名。如果資料庫中沒有域名,則全域性資料庫名與資料庫名相同。

資料庫服務名(SERVICE_NAMES)
此引數也是資料庫標識類引數,用SERVICE_NAMES表示。如果資料庫有域名,則資料庫服務名就是全域性資料庫名;如果沒有定義域名,則資料庫服務名與資料庫名相同。

GLOBAL_NAME
GLOBAL_NAME中的資訊預設是來自props$內部表的,取得的資訊是其中的global_db_name欄位。
GLOBAL_NAME在建立資料庫連結時使用。GLOBAL_NAME可以隨時更改。
SQL> select * from global_name;
SQL> alter database rename global_name to master.com;
當GLOBAL_NAMES引數設定為TRUE時,使用DATABASE LINK時,DATABASE LINK的名稱必須與被連線庫的GLOBAL_NAME一致。

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

相關文章