了解Oracle12.2的體系架構:檔案系統與多租戶
- RVWR:Recovery Writer Process,當資料庫設定了閃回區域的時候,該進程定期將記憶體中,具體來講是shared pool中的flashback buffer裡面的閃回資料寫入flashback logs.
- Result cache –> RCBG:result cache 用來存放SQL語句或是plsql函數在執行過程中,對於原始資料運算所得的結果,當資料庫再次對相同的物件做同樣的操作,可直接取得結果,避免計算資源的浪費。
- ASH buffer–>MMNL: ASH buffer用於存放活動會話的統計信息,包括SQL的執行情況,應用連接情況,等待事件等。當ASH buffer 被寫滿的時候,MMNL進程負責將buffer中的資料寫入到磁碟中。
- In memory undo(IMU):在共享池中開闢一塊區域,存放臨時undo,一個事務中若修改多個數據,不再buffer Cache中的undo數據塊做修改,而是增加IMU節點進行記錄。主要是為減少undo所產生的Redo。
- Private Redo log buffers:主要用於管理IMU所產生的臨時Redo,將交易的Redo資訊存放在共享池中,減少對Redo log buffer的消耗。
- Flash Cache:全名為Database smart flash Cache,是從11.2 開發的一項針對快閃記憶體的最佳化技術,旨在透過使用快閃記憶體取代傳統的慢速磁碟裝置來儲存部分數據,已達到減少資料庫整體延遲,提高資料庫的IOPS,提升資料庫效能的目的。
Flash Cache的工作原理如下:
#Flash Cache中存放的內容透過兩種方式來控制:
1、flash Cache的智慧選擇演算法:評估資料區塊、索引區塊的存取頻繁程度來決定。
2、對資料庫物件的cell_flash_cache屬性做修改。
Flash Cache儲存內容基本標準
主要是小IO操作,以及資料區塊、索引區塊、檔案頭,控製檔案等會被快取;
針對RMAN備份的IO操作,資料泵IO操作ASM鏡像操作以及表空間格式化等不會做快取;
全表掃描的IO操作的快取優先權比較低。
當資料儲存在flash Cache中,主要是為了提高查詢的速度,也就是說,它就相當於在記憶體之外又增加了一部分buffer Cache的區域,只是效能更好,速度更好。那麼跟buffer Cache一樣,flash Cache中的資料寫滿或寫到一定程度就需要把資料寫入磁碟,並留出空間給新的操作資料。
快取內資料寫入磁碟稱為flushing。 可以設定Starting and stopping cache flushing levels值,這個值表示佔用整個快取大小的百分比。當快取內未寫入磁碟的資料達到starting flushing value時,控制器開始flushing(由快取寫入磁碟)。當快取內未寫入磁碟資料量低於stop flush value時,flushing程序停止。
如果start flushing level設定較高,可以在快取記憶體更多的未寫入資料。這有利於提高寫入操作的效能,但是要犧牲資料保護。如果要得到資料保護,可以使用較低的start and stop values。 經測試表明,使用接近的start and stop flushing levels時性能較好。如果stop level value遠低於start value,在flushing時會導致磁碟擁塞
#Smart Flash Logging長期以來,Redo log的IO瓶頸一直是困擾OLTP系統的一大難題,因為Redo的寫入延遲直接拖累了整個系統 甚至整個叢集的反應速度。
在傳統的資料庫架構中,一些DBA會將讀寫延遲較低的小塊儲存單獨劃分給Redo,從11204開始,Oracle提出一種新的方案,在快閃記憶體區域中專門為Redo開闢一塊區域,用於存放臨時Redo。
#將列儲存落到Flash Cache,提高頻繁操作的列儲存物件的寫入IO
- Change Tracking File:在增量備份中偵測區塊的 變化,並記錄到檔案中。記錄單位為block。
- wallet:Oracle Wallet是用來儲存金鑰的容器。簡單點來說就是個密碼箱,透過這個密碼箱,可以使原來需要輸入密碼的場合能夠實現免輸密碼使用,從而保護了帳號口令等敏感訊息,使得安全性得到了提高,而且更加方便使用。
應用程式容器Application Container是12.2提出來的新的元件,將同一應用程式下的資料庫系統分割到一個子容器中,在保證多租用戶同一管理的情況下,實現相對的業務隔離和資料安全。
PDB擁有自己的undo表空間從12.2開始,每個PDB都擁有自己的undo表空間。消除了多個PDB間的爭用,若要進行閃回或基於時間戳記的恢復,只需要在自己的undo資料中尋找,提高效率。
PDB的靈活創建方式1、從PDB$seed(或application root)建立:透過檔案複製的方式
2、現有PDB經過hot clone創建
附註:在12.1中,基於一個PDB建立新的PDB的時候,需要將原庫以read only的方式開啟。
#而在12.2中,原庫可以持續進行DML操作,並且不受影響。
#
#克隆完成以後,資料會持續刷新到新庫。
3、來自其他CDB中的PDB的遷移:Relocate
#前端執行 create pluggable database from relocate這樣一條指令,後台會自動執行遠端hot clone,做遠端檔案複製和同步。
4、透過ASM磁碟檔案的shadow copy方式產生新的PDB。
#PDB的記憶體資源管理
在多租戶環境下,多個PDB共享記憶體的資源,當一個PDB需要做buffer Cache的尋址時,需要從整個共享的資源中尋找,非常不方便。在12.2中,Oracle針對部分資源做了基於PDB的domain劃分。
12.1的記憶體資源的hash鍊錶是這樣的:
#12.2中是這樣的:
#更多PDB的新特性
1、字元集:在12.2中,若CDB的字元集為超集,也就是AL32UTF8,那麼支援不同字元集的PDB。同時,透過Proxy PDB,可以實作不同字元集的PDB進行查詢,Proxy將雙方的字元集做辨識與相容,不會出現亂碼。
#多租戶技術已被廣大用戶廣泛應用,而雲端和恩墨作為數據服務行業的引領者,透過zData解決方案與Oracle 多租戶的結合,幫助用戶實現了互聯網 時代的系統雲端化轉型。
關於多租戶更多的新特性詳解,請參考
YH9:Oracle Multitenant 知識庫
多租戶技術已被廣大用戶廣泛應用,而雲端和恩墨作為數據服務行業的引領者,透過zData解決方案與Oracle 多租戶的結合,幫助用戶實現了互聯網 時代的系統雲化轉型。
文章來自微信公眾號:資料與雲端
以上是了解Oracle12.2的體系架構:檔案系統與多租戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

在 Sublime Text 中運行 Python 腳本的方法:安裝 Python 解釋器配置 Sublime Text 中的解釋器路徑按 Ctrl B(Windows/Linux)或 Cmd B(macOS)運行腳本如果需要交互式控制台,請按 Ctrl \(Windows/Linux)或 Cmd \(macOS)
