資料庫名、例項名、資料庫域名、全域性資料庫名、服務名概念區分
[size=medium][color=blue]資料庫名、例項名、資料庫域名、全域性資料庫名、服務名 ,
這是幾個令很多初學者容易混淆的概念。相信很多初學者都與我一樣被標題上這些個概念搞得一頭霧水。我們現在就來把它們弄個明白。
一、資料庫名
什麼是資料庫名?
資料庫名就是一個資料庫的標識,就像人的身份證號一樣。他用引數DB_NAME表示,如果一臺機器上裝了多個資料庫,那麼每一個資料庫都有一個資料庫名。在資料庫安裝或建立完成之後,引數DB_NAME被寫入引數檔案之中。格式如下:
DB_NAME=myorcl
...
在建立資料庫時就應考慮好資料庫名,並且在建立完資料庫之後,資料庫名不宜修改,即使要修改也會很麻煩。因為,資料庫名還被寫入控制檔案中,控制檔案是以二進位制型式儲存的,使用者無法修改控制檔案的內容。假設使用者修改了引數檔案中的資料庫名,即修改DB_NAME的值。但是在Oracle啟動時,由於引數檔案中的DB_NAME與控制檔案中的資料庫名不一致,導致資料庫啟動失敗,將返回ORA-01103錯誤。
資料庫名的作用
資料庫名是在安裝資料庫、建立新的資料庫、建立資料庫控制檔案、修改資料結構、備份與恢復資料庫時都需要使用到的。
有很多Oracle安裝檔案目錄是與資料庫名相關的,如:
winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_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,即資料庫例項名。[/color][/size]
這是幾個令很多初學者容易混淆的概念。相信很多初學者都與我一樣被標題上這些個概念搞得一頭霧水。我們現在就來把它們弄個明白。
一、資料庫名
什麼是資料庫名?
資料庫名就是一個資料庫的標識,就像人的身份證號一樣。他用引數DB_NAME表示,如果一臺機器上裝了多個資料庫,那麼每一個資料庫都有一個資料庫名。在資料庫安裝或建立完成之後,引數DB_NAME被寫入引數檔案之中。格式如下:
DB_NAME=myorcl
...
在建立資料庫時就應考慮好資料庫名,並且在建立完資料庫之後,資料庫名不宜修改,即使要修改也會很麻煩。因為,資料庫名還被寫入控制檔案中,控制檔案是以二進位制型式儲存的,使用者無法修改控制檔案的內容。假設使用者修改了引數檔案中的資料庫名,即修改DB_NAME的值。但是在Oracle啟動時,由於引數檔案中的DB_NAME與控制檔案中的資料庫名不一致,導致資料庫啟動失敗,將返回ORA-01103錯誤。
資料庫名的作用
資料庫名是在安裝資料庫、建立新的資料庫、建立資料庫控制檔案、修改資料結構、備份與恢復資料庫時都需要使用到的。
有很多Oracle安裝檔案目錄是與資料庫名相關的,如:
winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_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,即資料庫例項名。[/color][/size]
相關文章
- 資料庫名,資料庫例項名,資料庫域名,作業系統環境變數資料庫作業系統變數
- Oracle中關於資料庫例項名與資料庫服務名(轉載)Oracle資料庫
- oracle資料庫名和例項名的區別Oracle資料庫
- 如何修改資料庫例項及資料庫名資料庫
- Oracle - 資料庫名、例項名、服務名、ORACLE_SID 的說明和區別Oracle資料庫
- 二、修改資料庫全域性名稱資料庫
- 2.6.2 確定全域性資料庫名稱資料庫
- 【全域性資料庫名、連線描述符】資料庫
- 修改oracle例項名(sid)和資料庫名(db_name)Oracle資料庫
- C#取資料庫名稱與資料庫中表名的方法C#資料庫
- 更改資料庫表名資料庫
- 修改資料庫名稱資料庫
- 【Mysql】改資料庫庫名操作MySql資料庫
- Oracle分散式系統中的全域性資料庫名Oracle分散式資料庫
- ORACLE資料庫修改資料庫名db_nameOracle資料庫
- 更改資料庫SID名和db_name名資料庫
- 查詢當前資料庫名、使用者名稱、資料庫伺服器IP、埠、資料庫版本資訊。資料庫伺服器
- nid修改資料庫名稱資料庫
- 如何修改MySQL資料庫名稱MySql資料庫
- Oracle全域性資料庫名、環境變數和sid的區別Oracle資料庫變數
- Postgresql10資料庫之更改資料庫的名稱SQL資料庫
- JDBC連線自定義sqlserver資料庫例項名(多個例項)JDBCSQLServer資料庫
- 在本地修改預設啟動的資料庫例項名資料庫
- 關於資料庫登陸名和資料庫使用者名稱的一點點心得資料庫
- 關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- 用NID修改資料庫名稱資料庫
- 使用NID修改Oracle資料庫名Oracle資料庫
- DBCA 刪除資料庫例項時找不到例項名怎麼辦資料庫
- (轉)關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- MySQL資料庫delete資料時,不支援表別名MySql資料庫delete
- Oracle NID工具修改資料庫DBID和資料庫名稱Oracle資料庫
- MySQL顯示連線的資料庫名MySql資料庫
- nid 改變資料庫名,DBID資料庫
- 概述Oracle中的資料庫名---轉載Oracle資料庫
- 轉貼:關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- 關於oracle的幾個概念:資料庫、例項、使用者名稱和密碼Oracle資料庫密碼
- 使用任意例項名來開啟資料庫測試--男人(例項)理論上能OPEN任意一個女人(資料庫)資料庫
- 在RAC中用NID修改資料庫名稱資料庫