一個數據庫服務器上可以裝幾個數據庫它們都是用sid來標志,例如orcl1,orcl2,orcl3等等,一個數據庫如orcl1中可以有多個實例嗎?
Oracle數據庫,實際上應該是說,我們使用的是Oracle服務server。
來源:(http://blog.sina.com.cn/s/blog_4dc6402101009156.html) - oracle 數據庫與實例的關系(轉)_XW_普羅旺斯_S_新浪博客
Oracle服務server包括有兩個部分:
一個部分是Oracle數據庫database
一個部分是數據庫實例instance。
數據庫(database):物理操作系統文件或磁盤( disk)的集合。使用Oracle 10g 的自動存儲管理(Automatic Storage Management,ASM)或RAW 分區時,數據庫可能不作為操作系統中單獨的文件,但定義仍然不變。
實例(instance):一組Oracle 后台進程/線程以及一個共享內存區,這些內存由同一個計算機上運行的線程/進程所共享。這里可以維護易失的、非持久性內容(有些可以刷新輸出到磁盤)。就算沒有磁盤存儲,數據庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助於對實例和數據庫划清界線。
這兩個詞有時可互換使用,不過二者的概念完全不同。實例和數據庫之間的關系是:數據庫可以由多個實例裝載和打開,而實例可以在任何時間點裝載和打開一個數據庫。實際上,准確地講,實例在其整個生存期中最多能裝載和打開一個數據庫!
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數據庫與一個實例相對應;在並行的數據庫系統中,一個數據庫會對應多個實例,同一時間用戶只與一個實例相聯系,當某一個實例出現故障時,其他實例自動服務,保證數據庫正常運行。在任何情況下,每個實例都只可以對應一個數據庫。