database和instance的區別

luxika發表於2011-08-19
database:資料庫,一組相關的物理檔案,比如資料檔案、日誌檔案和控制檔案等等,是物理上實實在在存在的,即使關閉資料庫仍然存在。
instance:例項。記憶體和一些程式,比如SGA、後臺程式(windows系統是執行緒),當關閉資料庫後例項消失。
兩者是相輔相成的,經常在一起使用。我們以常見的資料庫啟動和關閉舉例如下:
1、啟動,先啟動例項,在mount資料庫,直至open資料庫
2、關閉,先close資料庫,在nomount資料庫,直至關閉例項
例項服務:以windows為例,就是一個windows服務,比如OracleService<sid>,它對應著一個程式,可以說這個服務是最基礎的,如果這個服務沒有啟動,何談啟動例項和資料庫;另外可以啟動多個例項服務,但是不能啟動多個例項(可以在一種特殊方式下實現)
備註:關於啟動和關閉具體細節詳見eygle所著作品《DBA入門、進階與診斷案例》
舉個例子,例項好比一座通往資料庫的橋樑,而資料庫就是一個島嶼。出入島嶼的交通流量都必須通過橋,如果橋關閉了,島嶼雖然仍然存在,但我們卻無法出入島嶼。對應到oracle術語來說,如果例項正在執行,那麼資料就可以出入資料庫。同時,資料庫的物流狀態也改變。如果例項掛起,雖然資料庫仍然確實存在,使用者卻無法對他進行訪問。此時的資料庫是靜態的,其資料不會改變。當例項重新服務時,資料庫中的資料則隨時做好準備,即可以對它進行訪問。---《oracle精髓》

相關文章