Oracle系統架构基本概念8579.pptx
《Oracle系統架构基本概念8579.pptx》由会员分享,可在线阅读,更多相关《Oracle系統架构基本概念8579.pptx(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Oracle 系統架構基本概念 1國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Outline Oracle 系統架構概觀 Overview Oracle Instance Oracle Database Other Processes 漫談Oracle Instance 記憶體結構 Background Processes 漫談Oracle Database Structures Physical Database Structures Logical Database Structures2國立聯合大學 資訊管理學系 資料庫系統課程
2、(陳士杰)Oracle 系統架構概觀關於Oracle 系統架構,是非常重要的基礎觀念,正所謂君子務本,本立而道生,有了踏實的基礎觀念之後,才能在往後學習Oracle 的路上,無往不利3國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)電腦系統 電腦系統 Overview Oracle Server 主要是由Oracle Instance 與Database 所組成,透過Server Process 與User Process 之間的交互運作,藉以達成使用者交付執行的工作。Oracle ServerOracle Instance DatabaseUser ProcessesServer Pro
3、cessesPGA Query Query4國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)例如,使用者可能想要在Oracle Server 上查詢一筆人事資料,使用者將相關的SQL 敘述輸入系統中,此時系統會產生相對應的User Process 與Server Process,由Server Process 負責向Oracle Server 溝通,並將符合使用者所需的資料,從Oracle Server 送至User Process,以完成該使用者下達的request。5國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Oracle Instance(Oracle 資料庫引擎)Oracl
4、e 資料庫中的任何動作都和它有關,是Oracle DB 的心臟地帶。Oracle Instance 主要包含:background process(背景處理程序)是一群 常駐的服務常式 常駐的服務常式(service routine)(service routine),執行I/O Process 與非Oracle Process 的監控管理,針對目前的使用者所提出的request 執行一些 一般 一般性的工作 性的工作。每一個Process 專責於一至兩項的工作 System Global Area(SGA;系統全域區)用來存放資料庫系統相關資訊的一塊 共享記憶體資料區域 共享記憶體資料區域,
5、讓background process 得以利用這些系統資訊,以提供適當的服務,處理外部的user request。6國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)由於Oracle Instance 掌控著處理Oracle Database 所有運作的相關資訊。因此,當要存取或操作Oracle Database 裏的資料時,必須先啟動Oracle Instance,才能對Oracle Database 的內容加以處理。當Oracle Instance啟動時,電腦系統會先配置一塊 記憶體空間 記憶體空間給SGA(System Global Area),並且載入相關的background p
6、rocess。7國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Oracle Database Oracle Database 可分為兩個部份來說明:實體結構 邏輯結構 8國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)實體結構實體結構 Oracle Database 的實體結構部份是由一個個的檔案所組合,主要的檔案包括 Data files(Data files(資料檔 資料檔)Redo Log files(Redo Log files(重置日誌檔 重置日誌檔)-online)-online Control files(Control files(控制檔 控制檔)另外尚有:Passw
7、ord file(Password file(密碼檔 密碼檔)Parameter file(Parameter file(起始參數檔 起始參數檔)Archived Redo Log files(Archived Redo Log files(重置日誌封存檔 重置日誌封存檔)-offline)-offline9國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Control filesData files Archived log filesParameterfilePasswordfileRedo log filesDatabase10國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)邏輯
8、結構邏輯結構 Oracle Database 的邏輯結構部份,主要有 Tablespace(Tablespace(表格空間 表格空間)Segment(Segment(區段 區段)Extent(Extent(延伸區塊 延伸區塊)Block(Block(區塊 區塊)1 1國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Other Processes Other Processes 不屬於Oracle Instance 內的Process 皆稱為Other Process。是User 和應用程式要連接Oracle DB Server 的重要橋樑。如User Process、Server Proc
9、ess 等 主要是反應使用者下達的request(即SQL 敘述),將其轉化為Oracle Server 能看得懂的相關指令,從Oracle Database 裏抓取資料,以反映使用者需求的資料。在Server Process 中還有一個相當重要的資料結構PGA PGA(Program Global Area)Program Global Area):PGA 是一個memory buffer memory buffer,存放相關Server Process 的 資料 資料與 控制資訊 控制資訊。當Server Process 被呼叫啟動後,Oracle Server 會為其建立一個所屬的PGA
10、,使用者下達的SQL 敘述,就是存放在這裏的。12國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)漫談Oracle Instance13國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)第一部份我們曾談到所謂的Oracle Instance 可分為:SGA SGA(System Global Area System Global Area)Background Processes Background Processes 兩部份,並做了概略的 說明。現在就分別針對SGA 與Background Processes 做更完整深入的說明。14國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰
11、)記憶體結構 SGA 是Oracle Server 在系統上所建立的一塊 記憶體區塊 記憶體區塊,Oracle Server 利用這塊記憶體結構,協同Oracle 的各種Processes 來完成使用者所交付的工作。SGA 主要是由幾種不同的資料區塊所組成 Database Buffer Cache Redo Log Buffer Shared Pool Large Pool Java Pool 其它(如:Cursors 等)SGADatabaseBufferCacheRedoLogBufferSharedPoolLargePoolJavaPoolOthers15國立聯合大學 資訊管理學系 資
12、料庫系統課程(陳士杰)Database Buffer Cache(資料庫緩衝快取區)資料庫系統擷取資料時的一個快取空間,其用途在於 有效減少存取 有效減少存取資料時造成的磁碟讀寫動作 資料時造成的磁碟讀寫動作。(到硬碟從事I/O 是很耗時的工作!)我們可以透過設定DB_BLOCK_BUFFERS DB_BLOCK_BUFFERS 這個參數值來設定Database Buffer Cache 的大小。在Oracle 的Database Buffer Cache 中,尚有一些sub-caches:DB_CACHE_SIZE DB_KEEP_CACHE_SIZE DB_RECYCLE_CACHE_SI
13、ZE 我們可以透過DB_CACHE_ADVICE DB_CACHE_ADVICE 這個參數,藉由statistics 的方式來對不同的cache size 做預設。指令:Alter system set db_cache_advice=on16國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Oracle 用所謂的LRU(Least Recently Used)LRU(Least Recently Used)演算法 演算法來管理這塊記憶體空間。LRU:當這塊記憶體空間 滿載 滿載時,Oracle Server 將只保留最近有被使用過的資料,最不常用的資料則 寫回磁碟 寫回磁碟中,並將該資料所
14、佔用的記憶體空間釋放出來。由於Database Buffer Cache 關係著Oracle Server 的I/O I/O 動作頻繁與 動作頻繁與否 否,因此如何管理及設定Database Buffer Cache 的大小,對於Oracle Server 的效能調校,是相當重要的一項課題。17國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Redo Log Buffer(Redo Log Buffer(重置日誌緩衝區重置日誌緩衝區)當 資 料 庫 的 內 容 有 所 異 動 時,Redo Log Buffer 會 記 錄 其 相 相 關 關 異 異動的情形:動的情形:做了什麼改變 做了什
15、麼改變 改變後的舊資料與新資料 改變後的舊資料與新資料 經 過 一 定 的 時 間 週 期 或 者 是Redo Log Buffer 滿 載 時,Oracle Server會 將Redo Log Buffer 的 內 容 寫 到Redo Redo Log Log File File 裏,以 追 蹤 整 個 資料庫的使用情形。當Oracle Server 不 幸 當 掉 的 話,就 能 利 用 這 些 記 錄 下 來 的 資 訊,進行資料庫的 復原 復原(Recovery)(Recovery)。有 關Redo Log Buffer 的 大 小 設 定,可 以 透 過 設 定 參 數LOG_BUF
16、FER LOG_BUFFER,改變Redo Log Buffer 的大小。18國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Shared Pool(Shared Pool(共享區共享區)當使用者將SQL、PL/SQL 等操作指令送至Oracle 資料庫後,系統會先解析(Parse)語法是否正確。解析時,下列兩項資料將會放入Shared Pool 中:解析時所需要用到的相關資訊 解析時所需要用到的相關資訊 解析後的結果 解析後的結果 當有不同的使用者執行相同的SQL 指令,就可以共用Shared Pool 中解析好的結果,以 加速 加速SQL SQL 指令執行的速度 指令執行的速度。Sha
17、red Pool 內包含數種不同的區域,主要有下列兩類:Data Dictionary Cache Data Dictionary Cache 存放解析時所需要的相關資訊,以供查詢之用 Library Cache Library Cache 存放各類指令解析後的結果,以供重覆使用 Shared Pool 亦是採LRU LRU 的記憶體管理演算法。Shared Pool 的大小設定,是由SHARED_POOL_SIZE SHARED_POOL_SIZE 這個參數來控制 19國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Large Pool(Large Pool(大型區大型區)Large P
18、ool 是Oracle 針 對 一 些 需 需 要 要 大 大 量 量 記 記 憶 憶 體 體 空 空 間 間 的 資 料 庫 處理 與 運 算 工 作 所 提 供 的 一 個 額 外 選 項,它 可 以 讓SGA 配 置一 個 較 大 的 記 憶 體 空 間,提 供 給 處 理Oracle 的backup/restore、I/O、執行Oracle 復原管理程式RMAN、等。透過指定LARGE_POOL_SIZE LARGE_POOL_SIZE 這個參數,設定Large Pool 的大小。20國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Java Pool(JavaJava Pool(J
19、ava區區)當使用者有使用Java 時,Oracle Server 利用這塊記憶體空間,存放 存放及Parse Parse 所使用的Java Code,藉以提供Oracle 與Internet 更高的整合性。透過指定JAVA_POOL_SIZE JAVA_POOL_SIZE 這個參數,來改變Java Pool 的大小。21國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Background Processes Oracle Server 所提供的Processes 可分為兩類:Server Processes Server Processes 用 以 服 服 務 務Client Clien
20、t Processes Processes,根 據Client Processes 的 需 求,由Oracle Server 動 態 配置所產生的,用以服務Client Processes 的需求 不被包含在 不被包含在Oracle Instance Oracle Instance 裏 在Server Processes 裏,尚 包 含 另 一 個 重 要 的 記 憶 體 結 構 PGA(Program Global Area),存放著Client Processes 與Server Processes 間的重要資訊 Background Processes Background Proces
21、ses 用 來 管 管 理 理Oracle Oracle Server Server 所 需 的 一 些 系 統 常 式,諸 如 資 料 庫 的I/O、Oracle Processes 的管理等 包含於 包含於Oracle Instance Oracle Instance 中 22國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)主要的Background Processes 共有五個,只要有這五個Background Processes,Oracle Server 就可以正常地運作了,分別是:Database Writer(Database Writer(DBWR DBWR)Log Wri
22、ter(Log Writer(LGWR LGWR)System Monitor(System Monitor(SMON SMON)Process Monitor(Process Monitor(PMON PMON)Checkpoint Process(Checkpoint Process(CKPT)CKPT)其它尚有Archiver(ARCH)、Recoverer(RECO)、Dispatcher(Dnnn)、Lock(LCKn)、Job Queue(SNPn)及Queue Monitor(QMNn)等Background Processes,它們主要是提供Oracle Server 更進階的
23、管理 更進階的管理。如ARCH,它可以提供比LGWR 更強的資料庫回復能力。23國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)Database Writer(DBWR)Database Writer(DBWR)DBWR 主要是負責管理Database Buffer Cache Database Buffer Cache,將Database Buffer Cache 中修改過的資料,整批寫入 整批寫入Data File 裏,透過系統整批寫入的方式,可以提高整個系統的執行效率。當使用者執行 DML 指令修改相關資料欄位,並執行commit 指令時,Oracle 本身並不是直接將修改過的資料直
24、接寫入Data File 裏,而是當Database Buffer Cache 的內容 即將滿載 即將滿載或是 經過一定的時間區隔 經過一定的時間區隔(檢 檢 查 查 點 點 Checkpoint;CKPT)Checkpoint;CKPT),才將資料寫入Data File 中。藉由 減少相關的 減少相關的I/O I/O 動作 動作,以提高系統執行效能。使用write-ahead write-ahead 的技術 24國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)InstanceSGADatabase buffercacheDBWnControl filesData files Redo l
25、og filesDatabase25國立聯合大學 資訊管理學系 資料庫系統課程(陳士杰)由於在 大型線上交易 大型線上交易(OLTP)(OLTP)系統,其資料庫異動情況可能十分頻繁。因此:一個Oracle Server 可以有 一個以上 一個以上的DBWR Background Processes,可以依實際系統硬體與作業系統的特性,設定DB_WRITER_PROCESSES DB_WRITER_PROCESSES 參數值,以獲得整個資料庫系統的最佳執行效能。當設定DB_WRITER_PROCESSES 的內容值後,系統上有關DBWR 的名稱將會變為DBWn,n 可為 09,如DBW0、DBW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 架构 基本概念 8579
限制150内