文章詳情頁
Oracle中Instance實例和數(shù)據(jù)庫的區(qū)別
瀏覽:6日期:2023-11-17 12:03:30
在實際的開發(fā)應(yīng)用中,關(guān)于Oracle數(shù)據(jù)庫,經(jīng)常聽見有人說建立一個數(shù)據(jù)庫,建立一個Instance,啟動一個Instance之類的話。 其實問他們什么是數(shù)據(jù)庫,什么是Instance,很可能他們給的答案就是數(shù)據(jù)庫就是Instance,Instance就是數(shù)據(jù)庫啊,沒有什么區(qū)別。在這里,只能說雖然他們Oracle用了可能有了一定的經(jīng)驗,不過基礎(chǔ)的概念還是不太清楚。 什么是數(shù)據(jù)庫,其實很簡單,數(shù)據(jù)庫就是存儲數(shù)據(jù)的一種媒介。比如常用的文件就是一種,在Oracle10G中,數(shù)據(jù)的存儲有好幾種。第一種是文件形式,也就是在你的磁盤中創(chuàng)建一批文件,然后在這些文件中存儲信息。第二種就是磁盤陣列形式,這個是什么意思呢,這個就是說明數(shù)據(jù)庫不是存放為某個文件,而是把一個或者多個磁盤格式化成Oracle的一種格式了,等于整個磁盤就是存放Oracle數(shù)據(jù)庫的,不能作為別的用途。這樣的優(yōu)點是存儲性能高,因為不再借助別的文件格式了,而是把整個磁盤都成為Oracle最適應(yīng)的文件系統(tǒng)格式。當(dāng)然還可能有別的形式,比如網(wǎng)絡(luò)什么的。不過我們最常用的還是文件格式的,在文件格式中,數(shù)據(jù)庫指的就是那些數(shù)據(jù)文件,控制文件以及REDO文件等等一系列文件。 而什么是Instance呢,Instance其實就是指的操作系統(tǒng)中一系列的進(jìn)程以及為這些進(jìn)程所分配的內(nèi)存塊。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進(jìn)程還有SGA等一系列的內(nèi)存快,但是這個時候并沒有把數(shù)據(jù)庫文件讀取進(jìn)來。所以只是一個實例,在后來,你可以通過命令手動或者自動地把數(shù)據(jù)庫文件加載進(jìn)我們的數(shù)據(jù)庫Instance中,這個時候的數(shù)據(jù)庫才可以讓我們真正的開始訪問操作。 所以說,數(shù)據(jù)庫的應(yīng)用假如想實現(xiàn),數(shù)據(jù)庫和數(shù)據(jù)庫Instance是缺一不可的,假如只有數(shù)據(jù)庫的那些文件,那么,只能代表數(shù)據(jù)在這個文件中,但是我們無法直接進(jìn)行操作。而假如只有數(shù)據(jù)庫Instance,那么我們雖然可以急性操作,但是也不知道操作哪些數(shù)據(jù),操作生成的數(shù)據(jù)也無法保存等等。所以,當(dāng)一個Oracle Instance真正Load了一個Oracle Database了以后,數(shù)據(jù)庫才可以被我們使用。 在這里要注重一點的是,Oracle的實例在啟動以后,只能load一次數(shù)據(jù)庫,假如想把數(shù)據(jù)庫與Instance斷開,然后再重新掛在一個數(shù)據(jù)庫Instance,那么就需要你首先把數(shù)據(jù)庫Instance進(jìn)程結(jié)束,然后重新建立這個instance的一個進(jìn)程,再load另外一個數(shù)據(jù)庫。否則肯定要拋除ORA-16169錯誤,說數(shù)據(jù)庫已經(jīng)被打開。因為一個數(shù)據(jù)庫Instance在其生存期中最多只能load和打開一個instance。
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
