史上最好的Oracle體系架構淺析

來源:互聯網
上載者:User

對於剛接觸Oracle,尤其是以前有MS SQL server經驗的的人來說,最迷惑的恐怕就是database和instance這兩個詞了。

其實這兩個概念理解起來相當簡單。讓我們舉個例子:

notepad記事本,相信大家都很熟悉。那麼,位於windows目錄下的notepad.exe,是一個軟體,對吧。我們雙擊notepad.exe(或者從命令列啟動,這都不是問題),然後記憶體中就有notepad的一個執行執行個體了,這個執行個體只存在於記憶體中,一旦電腦關機重啟,執行個體就不再存在了。

再假設我們硬碟上有一個文字檔test.txt,這個檔案是在硬碟上物理存在的,不管電腦是否關閉,他都存在。然後我們用執行的notepad開打這個test.txt,我們就將一個notepad執行個體和一個物理的文字檔關聯起來了,test.txt被讀入記憶體(緩衝),在notepad執行個體中對這個test.txt檔案進行編輯操作。

oracle雖然比notepad龐大複雜許多,但是基本原理也是一樣的。我們安裝完oracle伺服器軟體,就在硬碟上有了一個oracle的可執行程式,就像notepad.exe。我們啟動oracle的一個instance,就好像啟動一個notepad的執行個體,這個執行個體完全存在於記憶體中(當然,也可以由於記憶體不夠而被swap到硬碟的pagafile上),notepad的執行個體只有一個進程(線程),而複雜的oracle就有很多的進程(線程),這些進程(線程)就叫做background process,同時oracle由於要操作比較多的資料,所以就要划出一塊比較大的記憶體給他用,這塊記憶體的名字叫做SGA。然後oracle的instance開啟一組檔案,就像notepad執行個體開啟test.txt,oracle給這組檔案起了一個專門的名字:database

其實,軟體也好,執行個體也好,檔案也好,出現這些概念和區別,我想,最主要還是因為電腦的結構特性:記憶體速度快,但是掉電後丟失內容;硬碟速度慢,但是內容永久存在。這個特性決定了所有的電腦軟體的行為:為了儘可能的快,程式要在記憶體中運行,資料要在記憶體中緩衝;為了永久儲存,程式和資料要儲存在硬碟中。

在記憶體中啟動並執行程式和儲存該程式的資料的緩衝,我們稱之為instance;在硬碟上保留的程式,我們稱之為軟體,在硬碟上保留的資料,我們稱之為檔案。對於oracle,需要一組檔案,別且要保持一定的一致性和完整性,這組檔案統一有個名字叫database。

相關資料字典:v$instance v$database

注意到

v$instance.instance_name varchar2(16)

v$database.name varchar2(9)

所以instance和database的名字長度都有限制的。使用DBCA的時候,不輸入資料庫和SID名的話,提示:資料庫名必須1到8個字元,SID必須1到64個字母數字字元。但我在xp上實驗10gR2,手工建立名字超過15個字元的instance,可以成功並且能夠startup,但是查詢v$instance裡面的instance_name欄位為空白,15個字元之內(包括15個)則正常。建議是:instance名不超過15個字元,database名不超過8個字元。一般情況下,最好保持instance名和database名一致。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.