Oracle - 資料庫名、例項名、服務名、ORACLE_SID 的說明和區別

襲冷發表於2018-09-17

一、資料庫名(db_name)
    資料庫名就是一個資料庫的標識,就像人的身份證號一樣。它用引數DB_NAME表示,被寫入引數檔案之中(dbhome_1/dbs/init.ora)
    資料庫名是在安裝資料庫、建立新的資料庫、建立資料庫控制檔案、修改資料結構、備份與恢復資料庫時都需要使用到的

 

  -- 查詢當前資料名 
  select name from v$database;

二、資料庫例項名(instance_name)
    資料庫例項名是用於和作業系統進行聯絡的標識,就是說資料庫和作業系統之間的互動用的是資料庫例項名。例項名也被寫入引數檔案中,該引數為instance_name
    在一般情況下,資料庫名和例項名是一對一的關係,但如果在oracle並行伺服器架構(即oracle實時應用叢集)中,資料庫名和例項名是一對多的關係

 

  -- 查詢當前資料庫例項名 
  select instance_name from v$instance;

三、ORACLE_SID
    ORACLE_SID也是標識oracle例項,但是instance_name是oracle資料庫引數。而ORACLE_SID是作業系統的環境變數。ORACLD_SID用於與作業系統互動,從作業系統的角度訪問例項名,必須通過ORACLE_SID
    且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平臺,是“ORACLE not available”,在winnt平臺,是“TNS:協議介面卡錯誤”

 

  # 檢視當前系統的SID 
  [root@xl ~]# echo $ORACLE_SID

四、資料庫域名
    分佈工資料庫系統中,不同版本的資料庫伺服器之間,不論執行的作業系統是unix或是windows,各伺服器之間都可以通過資料庫鏈路進行遠端複製,資料庫域名主要用於oracle分散式環境中的複製.資料庫域名在存在於引數檔案中,他的引數是db_domain
    全域性資料庫名=資料庫名+資料庫域名

 

  -- 查詢資料庫域名 
  select value from v$parameter where name = 'db_domain';

五、資料庫服務名

 

    如果資料庫有域名,則資料庫服務名就是全域性資料庫名;否則,資料庫服務名與資料庫名相同。引數名是SERVICE_NAME

 

  --查詢資料庫服務名
  select value from v$parameter where name = 'service_name';

 

 

 

 

 

 

 

 

 

相關文章