您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么理解Oracle體系結構”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1. 從一種角度講,數據庫可以分為數據庫軟件和數據庫文件。我們通常說的數據庫指的是數據庫文件。通常情況下,將數據庫軟件安裝在服務器,數據庫文件存放在存儲中。
2. 從另一種角度講,數據庫可以分為數據庫文件和數據庫實例。這里可以將數據庫文件理解為靜態,實例理解為動態。用戶通過動態的實例,改變數據,再將改變的數據寫進靜態的數據庫文件中。
3. 數據庫文件
數據庫文件的存放位置是在$ORACLE_BASE/oradata/{db_unique_name}/目錄下。這里有三種文件
(1)控制文件(.ctl)
(2)日志文件(.log)
(3)數據文件(.dbf)
4. 數據庫實例
數據庫實例分成內存和進程。就像每個軟件運行時,都在服務器的內存中劃出一部分空間分配給自己。Oracle在sqlplus中執行startup時,實際上是開啟了實例,相當于開啟了數據庫這個軟件,也就是開啟了內存和進程。內存和進程都會被移動到服務器的內存中。
5. 數據庫的內存結構包括:SGA(系統全局區,共享的,這里共享是指SGA所有的空間,oracle的進程都可以訪問)和PGA(進程全局區,非共享),這兩個東西都在內存中。顧名思義,進程全局區存放的是進程。
(1)系統全局區(SGA)包括以下內容:
(1)共享池
(2)流池
(3)JAVA池
(4)大形池
(5)數據庫緩沖區 → 數據庫寫進程
(6)重做日志緩沖區 → 日志寫進程
這里,共享池和數據庫緩沖區容易出現問題。
(2)進程全局區(PGA)包括以下兩大進程:
后臺進程和前臺進程。這里的后臺進程是官方名稱,前臺進程是指服務器進程。我這里將數據庫本身的進程稱為后臺進程,每一個數據庫對外的連接看成是一個前臺進程,這樣更容易理解。每一個進程(前后臺)都有他屬于自己的空間,這些空間都在PGA里。我們需要關注的是前臺進程對PGA空間的占用,因為后臺進程不怎么出問題。
6. ORACLE后臺進程
Oracle的SGA有六大塊,PGA有5大進程,還有三種數據文件。
其中五大進程為:
(1)CKPT(檢查點進程)→ 控制文件
(2)SMON(系統監控進程)
(3)PMON(進程監控進程)
(4)DBWN(數據庫寫進程)→ 數據文件
(5)LGWR(日志寫進程)→ 日志文件
7. 控制文件
控制文件內存在兩大信息
(1)整個數據庫的物理結構信息在控制文件中進行記錄。這些物理結構包括整個數據庫包括多少個數據文件、日志文件等,以及這些文件的存放位置。
(2)數據庫當前的一些運行狀態信息。比如哪些數據文件是在線的,哪些數據文件是離線的,Oracle正在使用哪一個日志文件,日志文件有什么問題。
8. 日志文件
日志文件也叫重做日志文件(redo log),是指Oracle所有對數據的修改,都會以日志的形式存放到日志文件中。日志文件中也就記錄著數據庫中每一個數據塊的所有變化過程。
“怎么理解Oracle體系結構”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。