oracle實例與資料庫
㈠ oracle 資料庫實例 和 資料庫管理系統(DBMS,oracle就是一個dbms)的區別
dbms是指一個整個的資料庫管理系統,而實例僅僅是指所有oracle載入在內存中的數據和進程,oracle shutdown 時 實例就不存在了
㈡ ORACLE實例與資料庫有什麼區別
簡單來說有時候這兩個名詞有時可以互換使用、但是其概念還是不同的。
實例 instance =進程 + 進程所使用的內存(SGA)
資料庫 database=物理操作系統文件或磁碟(disk)的集合(redo文件+control文件+data文件+臨時文件)
資料庫實例也稱作伺服器, 是用來訪問資料庫文件集的存儲結構及後台進程的集合.
1、一個資料庫可以被多個實例訪問(稱為真正的應用群集選項).
2、一個實例在其生存期內只能裝載(alter database mount)和打開(alter database open)一個資料庫
3、Oracle的實例在啟動以後,只能load一次資料庫,如果想把資料庫與Instance斷開,然後再重新掛在一個資料庫Instance,那麼就需要你首先把資料庫Instance進程結束,然後重新建立這個instance的一個進程,再load另外一個資料庫。否則肯定要拋除ORA-16169錯誤,說資料庫已經被打開。因為一個資料庫Instance在其生存期中最多隻能load和打開一個instance。.
4、另外實例可以在沒有數據文件的情況下單獨啟動 startup nomount , 通常沒什麼意義
㈢ oracle的實例名與ORACLE_SID關系和區別。
oracle的實例名與ORACLE_SID就是說資料庫和操作系統之間的交互用的是資料庫實例名。有以下不同:
1、列入的參數設置不一樣:
oracle的實例名:instance_name是oracle資料庫參數。
ORACLE_SID:ORACLE_SID是操作系統的環境變數。
2、交互性上不一樣:
oracle的實例名:ORACLD_SID用於與操作系統交互,也就是說,從操作系統的角度訪問實例名,必須通過ORACLE_SID。在winnt下,ORACLE_SID還需存在於注冊表中。
ORACLE_SID:ORACLE_SID必須與instance_name的值一致。
(3)oracle實例與資料庫擴展閱讀:
oracle的文件結構:
資料庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=『路徑』。V$CONTROLFILE。
數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
日誌文件:即Redo Log Files和Archivelog Files。記錄資料庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數文件:記錄基本參數。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享伺服器連接。
跟蹤文件:show parameter user_mp_dest---使用專用伺服器連接。
㈣ 簡述Oracle資料庫中實例和資料庫的概念以及它們之間的關系
實例 就是管理相關庫的內存結構的名字(由SGA、PGA、伺服器進程、用戶進程、後台進程等組成)
資料庫 就是實際的磁碟上的文件(數據文件、日誌文件、控制文件等),負責保存數據,但由對應的實例來操作它的數據
其實,在我們傳統的概念里,資料庫是一個統稱的名字,在Oracle中,你可以把「資料庫」理解成一個大概念,也要把它理解成一個小概念
㈤ 什麼是oracle實例,什麼是oracle資料庫,二者有什麼區別
資料庫(database):物理操作系統文件或磁碟( disk)的集合。使用Oracle 10g 的自動存儲管理(Automatic Storage Management,ASM)或RAW 分區時,資料庫可能不作為操作系統中單獨的文件,但定義仍然不變。
實例(instance):一組Oracle 後台進程/線程以及一個共享內存區,這些內存由同一個計算機上運行的線程/進程所共享。這里可以維護易失的、非持久性內容(有些可以刷新輸出到磁碟)。就算沒有磁碟存儲,資料庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助於對實例和資料庫劃清界線。
這兩個詞有時可互換使用,不過二者的概念完全不同。實例和資料庫之間的關系是:資料庫可以由多個實例裝載和打開,而實例可以在任何時間點裝載和打開一個資料庫。實際上,准確地講,實例在其整個生存期中最多能裝載和打開一個資料庫!
一般來說,我們的一個資料庫對應一個實例,但在集群RAC情況下,共享資料庫文件時,一個資料庫是可以被多個實例同時使用的。
同一時間,一個實例只能打開一個資料庫,也就是一個實例只能操作或管理一個資料庫;通常,同一時間,一個資料庫只能被一個實例打開,但RAC情況除外。
安裝oracle時,通常會安裝一個實例——資料庫對(當然可以裝多對),而且他們的名字相同(也就是實例和資料庫名字相同),他們的名字當然可以不同,不管相不相同,他們的聯系是通過xxx/pfile/init.ora初始化文件聯系的。因為xxx就是實例的名字,而xxx.ora中的db_name,則記錄相應資料庫的名字。
㈥ oracle中的instance實例和資料庫的區別
Oracle資料庫,實際上應該是說,我們使用的是Oracle服務server。
Oracle服務server包括有兩個部分:
一個部分是Oracle資料庫database
一個部分是資料庫實例instance。
Oracle資料庫database,包括有數據文件、控制文件、重做日誌文件,都是一些物理上的文件。
資料庫實例instance,包括有資料庫後台進程(PMON、SMON、DBWR、LGWR、CKPT等)和內存區域SGA(包括shared pool、db buffer cache、redo log buffer等)。實例是一系列復雜的內存結構和操作系統進程
嚴格的說:一個Oracle服務,只包括一個Oracle實例和一個資料庫(不考慮雙機並行等這樣的情況)。但是一個實例只能對應一個資料庫,一個資料庫有可能對應多個實例。除非使用並行O r a c l e伺服器選項,否則每個O r a c l e資料庫都有一個實例與之相關,一個資料庫被唯一的一個實例裝載。
資料庫與實例之間是1對1/n的關系,在非並行的資料庫系統中每個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進程結束,然後重新建立這個instance的一個進程,再load另外一個資料庫。否則肯定要拋除ORA-16169錯誤,說資料庫已經被打開。因為一個資料庫Instance在其生存期中最多隻能load和打開一個instance。
㈦ oracle里實例和資料庫之間的關系
簡單說吧,書上的理論太繞。
資料庫軟體是一個資料庫軟體,就好像你的專word,你安裝的word,你能說你有文檔了么?明顯不能,只是你能夠建立文檔了。數屬據庫軟體就相當於word軟體。
實例,指的是內存和具體的內容。還是用word舉例,你利用word軟體,新建立了一個word文檔,這個word文檔就是一個實例。有一部分內存被分配給這個word文檔進行工作,就算你沒有在上面寫字,那麼這個word文檔也是一個實例,因為它存在。而後面的表空間(tablespace),數據文件(datafile),控制文件(controlfile),表(table)你可以認為都是數據這個實例的。
如果你在建立一個新word文檔,那麼這個新word文檔,和上面你建立的這個word文檔無關,因為兩個文檔確實沒什麼關系。當然不排除dblink,相當於word中的引用,不是完全一樣,可是大概可以這樣理解。
至於你的具體數據,就是你在word中書寫的字。
一般情況下,這里這樣理解,雖然有那麼點不同,可是這么立即一般應用是沒有問題的。
㈧ oracle實例和資料庫的區別
實例由稱為系統全局區(SGA)的共享內存以及若干後台進程組成。
生存期就是它在內存中存在的時間。資料庫是由磁碟上的物理文件組成,可以永久存在。
實例與資料庫可以是多對一的關系。在打開資料庫的時候,nomount階段就是創建並啟動實例,即根據初始化參數文件分配內存,啟動後台服務進程。
㈨ 什麼是oracle的實例
oracle實例就是一些能支撐資料庫運行的資料庫程序。
它由操作系統的多個後台進程和一個共享的內存池所組成,共享的內存池可以被所有進程訪問。
Oracle 用一個個實例來管理資料庫訪問。用戶如果要存取資料庫(也就是硬碟上的文件) 里的數據, 必須通過Oracle實例才能實現, 不能直接讀取硬碟上的文件。
實際上, Oracle 實例就是平常所說的資料庫服務(service) 。
在任何時刻一個實例只能與一個資料庫關聯,訪問一個資料庫;而同一個資料庫可由多個實例訪問(RAC)。
(9)oracle實例與資料庫擴展閱讀
oracle資料庫的特點:
1、完整的數據管理功能:
1)數據的大量性
2)數據的保存的持久性
3)數據的共享性
4)數據的可靠性
2、完備關系的產品:
1)信息准則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問的准則
3)視圖更新准則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
4)數據物理性和邏輯性獨立准則
3、分布式處理功能:
ORACLE資料庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式資料庫功能了,一個ORACLE分布式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產品構成。
4、用ORACLE能輕松的實現數據倉庫的操作。
參考資料來源:網路—實例
參考資料來源:網路—Oracle資料庫