oracle multi read,解读Oracle12.2体系架构:Filesystem与Multitenant
導讀
全面解讀Oracle 12.2體系架構圖系列。本期的內容由兩部分組成,一是數(shù)據(jù)庫實例與文件系統(tǒng)的訪問;二是多租戶解決方案。
數(shù)據(jù)庫實例與文件系統(tǒng)
幾個重要的進程和內存組件
RVWR:Recovery Writer Process,當數(shù)據(jù)庫設置了閃回區(qū)域的時候,該進程定期將內存中,具體來講是shared pool中的flashback buffer里面的閃回數(shù)據(jù)寫入flashback logs.
Result cache –> RCBG:result cache 用于存放SQL語句或者plsql函數(shù)在執(zhí)行過程中,對于原始數(shù)據(jù)進行運算所得的結果,當數(shù)據(jù)庫再次對相同的對象做同樣的操作,可直接獲取結果,避免計算資源的浪費。
ASH? buffer–>MMNL:?ASH buffer用于存放活動會話的統(tǒng)計信息,包括SQL的執(zhí)行情況,應用連接情況,等待事件等。當ASH buffer 被寫滿的時候,MMNL進程負責將buffer中的數(shù)據(jù)寫入到磁盤中。
In memory undo(IMU):在共享池中開辟一塊區(qū)域,存放臨時undo,一個事務中若修改多條數(shù)據(jù),不再buffer Cache中的undo數(shù)據(jù)塊做修改,而是增加IMU節(jié)點進行記錄。主要是為減少undo所產(chǎn)生的Redo。
Private Redo log buffers:主要用于管理IMU所產(chǎn)生的臨時Redo,將事務的Redo信息存放在共享池中,減少對Redo log buffer的消耗。
Flash Cache:全稱是Database? smart flash Cache,是從11.2 開發(fā)的一項針對閃存的優(yōu)化技術,旨在通過使用閃存代替?zhèn)鹘y(tǒng)的慢速磁盤設備來存儲部分數(shù)據(jù),已達到減少數(shù)據(jù)庫整體延遲,提高數(shù)據(jù)庫的IOPS,提升數(shù)據(jù)庫性能的目的。
Flash Cache的工作原理如下:
Flash Cache中存放的內容通過兩種方式來控制:
1、flash ?Cache的智能選擇算法:評估數(shù)據(jù)塊、索引塊的訪問頻繁程度來決定。
2、對數(shù)據(jù)庫對象的cell_flash_cache屬性做修改。
Flash Cache存儲內容基本標準
主要是小IO操作,以及數(shù)據(jù)塊、索引塊、文件頭,控制文件等會被緩存;
針對RMAN備份的IO操作,數(shù)據(jù)泵IO操作ASM鏡像操作以及表空間格式化等不會做緩存;
全表掃描的IO操作的緩存優(yōu)先級比較低。
當數(shù)據(jù)存儲在flash Cache中,主要是為了提高查詢的速度,也就是說,它就相當于在內存之外又增加了一部分buffer Cache的區(qū)域,只是性能更好,速度更好。那么跟buffer Cache一樣,flash Cache中的數(shù)據(jù)寫滿或者寫到一定程度就需要把數(shù)據(jù)寫入磁盤,留出空間給新的操作數(shù)據(jù)。
Flash Cache的flushing過程
緩存內數(shù)據(jù)寫入磁盤稱為flushing??梢耘渲肧tarting and stopping cache flushing levels值,這個值表示占用整個緩存大小的百分比。當緩存內未寫入磁盤的數(shù)據(jù)達到starting flushing value時,控制器開始flushing(由緩存寫入磁盤)。當緩存內未寫入磁盤數(shù)據(jù)量低于stop flush value時,flushing過程停止。
如果start flushing level設置較高,可以在緩存內存更多的未寫入數(shù)據(jù)。這有利于提高寫操作的性能,但是要犧牲數(shù)據(jù)保護。如果要得到數(shù)據(jù)保護,可以使用較低的start and stop values。經(jīng)測試表明,使用接近的start and stop flushing levels時性能較好。如果stop level value遠遠低于start value,在flushing時會導致磁盤擁塞
Smart Flash Logging
長期以來,Redo log的IO瓶頸一直是困擾OLTP系統(tǒng)的一大難題,因為Redo的寫入延遲直接拖累了整個系統(tǒng) 甚至整個集群的響應速度。
在傳統(tǒng)的數(shù)據(jù)庫架構中,一些DBA會將讀寫延遲較低的小塊存儲單獨劃分給Redo,從11204開始,Oracle提出一種新的方案,在閃存區(qū)域中專門為Redo開辟一塊區(qū)域,用于存儲臨時Redo。
In-Flash Column SCAN
將列存儲落到Flash Cache,提高頻繁操作的列存儲對象的寫IO
Change ?Tracking File:在增量備份中檢測塊的 變化,并記錄到文件中。 記錄單位為block。
wallet:Oracle Wallet是用來存儲密鑰的容器。簡單點來說就是個密碼箱,通過這個密碼箱,可以使原來需要輸入密碼的場合能夠實現(xiàn)免輸密碼使用,從而保護了賬號口令等敏感信息,使得安全性得到了提高,而且更加方便使用。
多租戶解決方案
Application Container
應用容器Application Container是12.2提出來的新的組件,將同一應用下的數(shù)據(jù)庫系統(tǒng)劃分到一個子容器中,在保證多租戶同一管理的情況下,實現(xiàn)相對的業(yè)務隔離和數(shù)據(jù)安全。
PDB擁有自己的undo表空間
從12.2開始,每個PDB都擁有自己的undo表空間。消除了多個PDB間的爭用,若要進行閃回或者基于時間戳的恢復,只需要在自己的undo數(shù)據(jù)中尋找,提高效率。
PDB的靈活創(chuàng)建方式
1、從PDB$seed(或者application root)創(chuàng)建:通過文件復制的方式
2、現(xiàn)有PDB經(jīng)過hot clone創(chuàng)建
注:在12.1中,基于一個PDB創(chuàng)建新的PDB的時候,需要將原庫以read only的方式打開。
而在12.2中,原庫可以持續(xù)進行DML操作,并不受影響。
克隆完成以后,數(shù)據(jù)會持續(xù)刷新到新庫。
3、來自其他CDB中的PDB的遷移:Relocate
前端執(zhí)行 create pluggable database from relocate這樣一條命令,后臺會自動執(zhí)行遠程hot clone,做遠程文件復制和同步。
4、通過ASM磁盤文件的shadow copy方式生成新的PDB。
PDB的內存資源管理
在多租戶環(huán)境下,多個PDB共享內存的資源,當一個PDB需要做buffer Cache的尋址時,需要從整個共享的資源中尋找,非常不方便。在12.2中,Oracle針對部分資源做了基于PDB的domain劃分。
12.1的內存資源的hash鏈表是這樣的:
12.2中是這樣的:
更多PDB的新特性
1、字符集:在12.2中,若CDB的字符集為超集,也就是AL32UTF8,那么支持不同字符集的PDB。同時,通過Proxy PDB,可以實現(xiàn)不同字符集的PDB進行查詢,Proxy將雙方的字符集做識別和兼容,不會出現(xiàn)亂碼。
多租戶技術已經(jīng)被廣大用戶廣泛應用,而云和恩墨作為數(shù)據(jù)服務行業(yè)的引領者,通過zData解決方案與Oracle 多租戶的結合,幫助用戶實現(xiàn)了互聯(lián)網(wǎng)+時代的系統(tǒng)云化轉型。
關于多租戶更多的新特性詳解,請參考
YH9:Oracle Multitenant 知識庫
多租戶技術已經(jīng)被廣大用戶廣泛應用,而云和恩墨作為數(shù)據(jù)服務行業(yè)的引領者,通過zData解決方案與Oracle 多租戶的結合,幫助用戶實現(xiàn)了互聯(lián)網(wǎng)+時代的系統(tǒng)云化轉型。
文章來自微信公眾號:數(shù)據(jù)和云
總結
以上是生活随笔為你收集整理的oracle multi read,解读Oracle12.2体系架构:Filesystem与Multitenant的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apache相对路径 php,php简单
- 下一篇: oracle产品追溯,如何追溯AR到Re