程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫中的Instance和數據庫的區別

Oracle數據庫中的Instance和數據庫的區別

編輯:Oracle數據庫基礎
 在實際的開發應用中,關於Oracle數據庫,經常聽見有人說建立一個數據庫,建立一個Instance,啟動一個Instance之類的話。 其實問他們什麼是數據庫,什麼是Instance,很可能他們給的答案就是數據庫就是Instance,Instance就是數據庫啊,沒有什麼區別。在這裡,只能說雖然他們用了Oracle,可能有了一定的經驗,不過基礎的概念還是不太清楚。

  什麼是數據庫,其實很簡單,數據庫就是存儲數據的一種媒介。比如常用的文件就是一種,在Oracle10G中,數據的存儲有好幾種。第一種是文件形式,也就是在你的磁盤中創建一批文件,然後在這些文件中存儲信息。第二種就是磁盤陣列形式,這個是什麼意思呢,這個就是說明數據庫不是存放為某個文件,而是把一個或者多個磁盤格式化成Oracle的一種格式了,等於整個磁盤就是存放Oracle數據庫的,不能作為別的用途。這樣的優點是存儲性能高,因為不再借助別的文件格式了,而是把整個磁盤都成為Oracle最適應的文件系統格式。當然還可能有別的形式,比如網絡什麼的。不過我們最常用的還是文件格式的,在文件格式中,數據庫指的就是那些數據文件,控制文件以及REDO文件等等一系列文件。

  而什麼是Instance呢,Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進程還有SGA等一系列的內存快,但是這個時候並沒有把數據庫文件讀取進來。所以只是一個實例,在後來,你可以通過命令手動或者自動地把數據庫文件加載進我們的數據庫Instance中,這個時候的數據庫才可以讓我們真正的開始訪問操作。

  所以說,數據庫的應用如果想實現,數據庫和數據庫Instance是缺一不可的,如果只有數據庫的那些文件,那麼,只能代表數據在這個文件中,但是我們無法直接進行操作。而如果只有數據庫Instance,那麼我們雖然可以急性操作,但是也不知道操作哪些數據,操作生成的數據也無法保存等等。所以,當一個Oracle Instance真正Load了一個Oracle Database了以後,數據庫才可以被我們使用。

  在這裡要注意一點的是,Oracle的實例在啟動以後,只能load一次數據庫,如果想把數據庫與Instance斷開,然後再重新掛在(一個數據庫Instance,那麼就需要你首先把數據庫Instance進程結束,然後重新建立這個instanc的一個進程,再load另外一個數據庫。否則肯定要拋除ORA-16169錯誤,說數據庫已經被打開。因為一個數據庫Instance在其生存期中最多只能load和打開一個instance。 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved