轉貼:關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID
關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID
最近因看到論壇有人問起這方面的東西,將自己的理解加上查閱相關資料整理如下,如果不全或不當的地方,望指正並補全它。
資料庫名(DB_NAME)、例項名(Instance_name)、以及作業系統環境變數(ORACLE_SID)
在ORACLE7、8資料庫中只有資料庫名(db_name)和資料庫例項名(instance_name)。在ORACLE8i、9i中出現了新的引數,即資料庫域名(db_domain)、服務名(service_name)、以及作業系統環境變數(ORACLE_SID)。這些都存在於同一個資料庫中的標識,用於區分不同資料庫的引數。
一、什麼是資料庫名(db_name)?
資料庫名是用於區分資料的內部標識,是以二進位制方式儲存於資料庫控制檔案中的引數,在資料安裝或建立之後將不得修改。資料庫安裝完成後,該引數被寫入資料庫引數檔案pfile中,格式如下:
[code:1:1aaf156970]
.........
db_name="orcl" #(不允許修改)
db_domain=dbcenter.toys.com
instance_name=orcl
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
[/code:1:1aaf156970]
在每一個執行的ORACLE8i資料庫中都有一個資料庫名(db_name),如果一個伺服器程式中建立了兩個資料庫,則有兩個資料庫名。其控制引數據分屬在不同的pfile中控制著相關的資料庫。
二、什麼是資料庫例項名(instance_name)
資料庫例項名則用於和作業系統之間的聯絡,用於對外部連線時使用。在作業系統中要取得與資料庫之間的互動,必須使用資料庫例項名。例如,要和某一個資料庫server連線,就必須知道其資料庫例項名,只知道資料庫名是沒有用的,與資料庫名不同,在資料安裝或建立資料庫之後,例項名可以被修改。資料庫安裝完成後,該例項名被寫入資料庫引數檔案pfile中,格式如下:
[code:1:1aaf156970]
db_name="orcl" #(不允許修改)
db_domain=dbcenter.toys.com
instance_name=orcl #(可以修改,可以與db_name相同也可不同)
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
[/code:1:1aaf156970]
資料庫名與例項名之間的關係。
資料庫名與例項名之間的關係一般是一一對應關係,有一個資料庫名就有一個例項名,如果在一個伺服器中建立兩個資料庫,則有兩個資料庫名,兩個資料庫例項名,用兩個標識確定一個資料庫,使用者和例項相連線。
但在8i、9i的並行伺服器結構中,資料庫與例項之間不存在一一對應關係,而是一對多關係,(一個資料庫對應多個例項,同一時間內使用者只一個例項相聯絡,當某一例項出現故障,其它例項自動服務,以保證資料庫安全執行。)
三、作業系統環境變數(ORACLE_SID)
在實際中,對於資料庫例項名的描述有時使用例項名(instance_name)引數,有時使用ORACLE_SID引數。這兩個都是資料庫例項名,它們有什麼區別呢?(經常弄混)
[code:1:1aaf156970]
(ORACLE_SID)
OS
[/code:1:1aaf156970]
上圖表示例項名instance_name、ORACLE_SID與資料庫及作業系統之間的關係,雖然這裡列出的兩個引數都是資料庫例項名,但instance_name引數是ORACLE資料庫的引數,此引數可以在引數檔案中查詢到,而ORACLE_SID引數則是作業系統環境變數。
作業系統環境變數ORACLE_SID用於和作業系統互動。也就是說,在作業系統中要想得到例項名,就必須使用ORACLE_SID。此引數與ORACLE_BASE、ORACLE_HOME等用法相同。在資料庫安裝之後,ORACLE_SID被用於定義資料庫引數檔案的名稱。如:
$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora。
定義方法:
[code:1:1aaf156970]
export ORACLE_SID=orcl
[/code:1:1aaf156970]
如果在同一伺服器中建立了多個資料庫,則必然同時存在多個資料庫例項,這時可以重複上述定義過程,以選擇不同例項。
還可以用
[code:1:1aaf156970]
[oracle@Datacent]$ . oraenv
[/code:1:1aaf156970]
來切換不同的ORACLE_SID來通過作業系統來啟動不同的例項(instance)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51862/viewspace-180585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (轉)關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- 關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- Oracle中關於資料庫例項名與資料庫服務名(轉載)Oracle資料庫
- 修改oracle例項名(sid)和資料庫名(db_name)Oracle資料庫
- Oracle - 資料庫名、例項名、服務名、ORACLE_SID 的說明和區別Oracle資料庫
- 資料庫名、例項名、資料庫域名、全域性資料庫名、服務名概念區分資料庫
- 更改資料庫SID名和db_name名資料庫
- oracle資料庫名和例項名的區別Oracle資料庫
- ORACLE資料庫修改資料庫名db_nameOracle資料庫
- 如何修改資料庫例項及資料庫名資料庫
- ORACLE_SID,INSTANCE_NAME和DB_NAMEOracle
- 資料庫名,資料庫例項名,資料庫域名,作業系統環境變數資料庫作業系統變數
- instance_name、db_name、ORACLE_SID、db_name等的區別Oracle
- JDBC連線自定義sqlserver資料庫例項名(多個例項)JDBCSQLServer資料庫
- 關於oracle的幾個概念:資料庫、例項、使用者名稱和密碼Oracle資料庫密碼
- oracle sid,instance_name,db_name,oracle_sid之間的關係Oracle
- DBCA 刪除資料庫例項時找不到例項名怎麼辦資料庫
- 關於ORACLE_SID和DB_NAME的理解Oracle
- 關於資料庫登陸名和資料庫使用者名稱的一點點心得資料庫
- 3.1.5.1 關於啟動資料庫例項資料庫
- 在本地修改預設啟動的資料庫例項名資料庫
- [轉]ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAMEOracle
- 關於db_name,instance_name等近似概念的理解????
- windows 修改例項名Windows
- oracle更改例項名Oracle
- 使用任意例項名來開啟資料庫測試--男人(例項)理論上能OPEN任意一個女人(資料庫)資料庫
- 關於修改資料庫名稱和ID的方法總結資料庫
- mongodb關閉資料庫例項MongoDB資料庫
- 單例項資料庫工具轉化多例項資料庫單例資料庫
- 單例項資料庫手工轉化多例項資料庫單例資料庫
- sqlserver修改例項名稱SQLServer
- 【AMM】關於資料庫例項AMM引數說明資料庫
- 關於PHP往mysql資料庫中批次插入資料例項教程PHPMySql資料庫
- 概述Oracle中的資料庫名---轉載Oracle資料庫
- C#取資料庫名稱與資料庫中表名的方法C#資料庫
- 更改資料庫表名資料庫
- 修改資料庫名稱資料庫
- 關於訪問資料庫的使用者名稱和密碼資料庫密碼