oracle資料庫名、執行個體名、ORACLE_SID、服務名、全域資料庫名

來源:互聯網
上載者:User

標籤:

一、資料庫名
什麼是資料庫名?
資料庫名就是一個資料庫的標識,就像人的社會安全號碼一樣。他用參數

DB_NAME表示,如果一台機器上裝了多全資料庫,那麼每一個資料庫都

有一個資料庫名。在資料庫安裝或建立完成之後,參數DB_NAME被寫入

參數檔案之中。格式如下:
DB_NAME=myorcl
...
在建立資料庫時就應考慮好資料庫名,並且在建立完資料庫之後,資料

庫名不宜修改,即使要修改也會很麻煩。因為,資料庫名還被寫入控制

檔案中,控制檔案是以二進位型式儲存的,使用者無法修改控制檔案的內

容。假設使用者修改了參數檔案中的資料庫名,即修改DB_NAME的值。但

是在Oracle啟動時,由於參數檔案中的DB_NAME與控制檔案中的資料庫

名不一致,導致資料庫啟動失敗,將返回ORA-01103錯誤。

資料庫名的作用
資料庫名是在安裝資料庫、建立新的資料庫、建立資料庫控制檔案、修

改資料結構、備份與恢複資料庫時都需要使用到的。
有很多Oracle安裝檔案目錄是與資料庫名相關的,如:
winnt: d:oracleproduct10.1.0oradataDB_NAME...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:oracleproduct10.1.0adminDB_NAMEpfileini.ora
Unix:

/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORA

CLE_SID.ora
追蹤檔案目錄:
winnt:

/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
另外,在建立資料時,careate database命令中的資料庫名也要與參數

檔案中DB_NAME參數的值一致,否則將產生錯誤。
同樣,修改資料庫結構的語句alter database, 當然也要指出要修改

的資料庫的名稱。
如果控制檔案損壞或丟失,資料庫將不能載入,這時要重新建立控制文

件,方法是以nomount方式啟動執行個體,然後以create controlfile命令

建立控制檔案,當然這個命令中也是指指DB_NAME。
還有在備份或恢複資料庫時,都需要用到資料庫名。
總之,資料庫名很重要,要準確理解它的作用。

查詢當前資料名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看參數檔案。

修改資料庫名
前面建議:應在建立資料庫時就確定好資料庫名,資料庫名不應作修改

,因為修改資料庫名是一件比較複雜的事情。那麼現在就來說明一下,

如何在已建立資料之後,修改資料庫名。步驟如下:
1.關閉資料庫。
2.修改資料庫參數檔案中的DB_NAME參數的值為新的資料庫名。
3.以NOMOUNT方式啟動執行個體,修建控制檔案(有關建立控制檔案的命令語

法,請參考oracle文檔)

二、資料庫執行個體名
什麼是資料庫執行個體名?
資料庫執行個體名是用於和作業系統進行聯絡的標識,就是說資料庫和操作

系統之間的互動用的是資料庫執行個體名。執行個體名也被寫入參數檔案中,該

參數為instance_name,在winnt平台中,執行個體名同時也被寫入註冊表。
資料庫名和執行個體名可以相同也可以不同。
在一般情況下,資料庫名和執行個體名是一對一的關係,但如果在oracle並

行伺服器架構(即oracle即時應用叢集)中,資料庫名和執行個體名是一對多

的關係。

查詢當前資料庫執行個體名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在參數檔案中查詢。
資料庫執行個體名與ORACLE_SID
雖然兩者都表是oracle執行個體,但兩者是有區別的。instance_name是

oracle資料庫參數。而ORACLE_SID是作業系統的環境變數。

ORACLD_SID用於與作業系統互動,也就是說,從作業系統的角度訪問實

例名,必須通過ORACLE_SID。在winnt下,ORACLE_SID還需存在於註冊

表中。
且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個

錯誤,在unix平台,是“ORACLE not available”,在winnt平台,是

“TNS:協議適配器錯誤”。
資料庫執行個體名與網路連接
資料庫執行個體名除了與作業系統互動外,還用於網路連接的oracle伺服器

標識。當你配置oracle主機串連串的時候,就需要指定執行個體名。當然8i

以後版本的網路組件要求使用的是服務名SERVICE_NAME。這個概念接下

來說明 。

三、資料庫網域名稱
什麼是資料庫網域名稱?
在分布工資料庫系統中,不同版本的資料庫伺服器之間,不論啟動並執行操

作系統是unix或是windows,各伺服器之間都可以通過資料庫鏈路進行

遠程複製,資料庫網域名稱主要用於oracle分布式環境中的複製。舉例說明

如:
全國交通運政系統的分散式資料庫,其中:
福建節點: fj.jtyz
福建廈門節點: xm.fj.jtyz
江西: jx.jtyz
江西上饒:sr.jx.jtyz
這就是資料庫網域名稱。
資料庫網域名稱在存在於參數檔案中,他的參數是db_domain.

查詢資料庫網域名稱
方法一:select value from v$parameter where name =

‘db_domain‘;
方法二:show parameter domain
方法三:在參數檔案中查詢。

全域資料庫名
全域資料庫名=資料庫名+資料庫網域名稱,如前述福建節點的全域資料庫名

是:oradb.fj.jtyz

四、資料庫服務名
什麼是資料庫服務名?
從oracle9i版本開始,引入了一個新的參數,即資料庫服務名。參數名

是SERVICE_NAME。
如果資料庫有網域名稱,則資料庫服務名就是全域資料庫名;否則,資料庫

服務名與資料庫名相同。

查詢資料庫服務名
方法一:select value from v$parameter where name =

‘service_name‘;
方法二:show parameter service_name
方法三:在參數檔案中查詢。

資料庫服務名與網路連接
從oracle8i開如的oracle網路組件,資料庫與用戶端的串連主機串使用

資料庫服務名。之前用的是ORACLE_SID,即資料庫執行個體名.

oracle資料庫名、執行個體名、ORACLE_SID、服務名、全域資料庫名

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.