oracle 中關於 SID db_name、instance_name

來源:互聯網
上載者:User
SID主要用於區分同一台電腦上的同一個資料庫的不同執行個體。
oarcle資料庫伺服器主要有兩部分組成:物理資料庫和資料庫管理系統
資料庫管理系統是使用者和物理資料庫之間的一個中介層,是軟體層。這個軟體層具有一定的結構,這個結構又被稱為常式結構。
在啟動資料庫時,oracle首先要在記憶體中擷取、劃分、保留各種用途的地區,運行各種用途的後台進程,即建立一個常式(instance),然後由該常式裝載、開啟資料庫,最後由這個常式來訪問和控制資料庫的各種物理結構。
在啟動資料庫並使用資料庫的時候,實際上是串連到該資料庫的常式,通過常式來串連、使用資料庫。所以常式是使用者和資料庫之間的一個中介層。
常式是由作業系統的記憶體結構和一系列進程所組成的,可以啟動和關閉。
一台電腦上可以建立多個oracle資料庫,當同時要使用這些資料庫時,就要建立多個常式。為了不使這些常式相互混淆,每個常式都要用稱為SID的符號來區分,即建立這些資料庫時填寫的資料庫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中,格式如下:
  
  代碼:
  
  .........
  db_name="orcl"    #(不允許修改)
  db_domain=dbcenter.toys.com
  instance_name=orcl
  service_names=orcl.dbcenter.toys.com
  control_file=(...............
  .........
  
  在每一個啟動並執行ORACLE8i資料庫中都有一個資料庫名(db_name),如果一個伺服器程式中建立了兩個資料庫,則有兩個資料庫名。其控制參資料分屬在不同的pfile中控制著相關的資料庫。
  
  二、什麼是資料庫執行個體名(instance_name)
  資料庫執行個體名則用於和作業系統之間的聯絡,用於對外部串連時使用。在作業系統中要取得與資料庫之間的互動,必須使用資料庫執行個體名。例如,要和某一個資料庫server串連,就必須知道其資料庫執行個體名,只知道資料庫名是沒有用的,與資料庫名不同,在資料安裝或建立資料庫之後,執行個體名可以被修改。資料庫安裝完成後,該執行個體名被寫入資料庫參數檔案pfile中,格式如下:
  代碼:
  
  db_name="orcl"    #(不允許修改)
  db_domain=dbcenter.toys.com
  instance_name=orcl #(可以修改,可以與db_name相同也可不同)
  service_names=orcl.dbcenter.toys.com
  control_file=(...............
  .........
  
  資料庫名與執行個體名之間的關係。
  資料庫名與執行個體名之間的關係一般是一一對應關係,有一個資料庫名就有一個執行個體名,如果在一個伺服器中建立兩個資料庫,則有兩個資料庫名,兩個資料庫執行個體名,用兩個標識確定一個資料庫,使用者和執行個體相串連。
  但在8i、9i的並行伺服器結構中,資料庫與執行個體之間不存在一一對應關係,而是一對多關聯性,(一個資料庫對應多個執行個體,同一時間內使用者只一個執行個體相聯絡,當某一執行個體出現故障,其它執行個體自動服務,以保證資料庫安全運行。)
  
  三、作業系統環境變數(ORACLE_SID)
  在實際中,對於資料庫執行個體名的描述有時使用執行個體名(instance_name)參數,有時使用ORACLE_SID參數。這兩個都是資料庫執行個體名,它們有什麼區別呢?(經常弄混)
  代碼:
  
     (ORACLE_SID)
  OS<----------------> ORACLE 資料庫 <--------(Instance_name(執行個體名))
  
  表示執行個體名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。
  定義方法:
  代碼:
  
  export ORACLE_SID=orcl
  
  如果在同一伺服器中建立了多個資料庫,則必然同時存在多個資料庫執行個體,這時可以重複上述定義過程,以選擇不同執行個體。
  
  還可以用
  代碼:
  
  [oracle@Datacent]$ . oraenv
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.