溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle11gR2 Smart Flash Cache測試說明

發(fā)布時間:2020-08-08 19:27:01 來源:ITPUB博客 閱讀:197 作者:巡完南山巡南山 欄目:關(guān)系型數(shù)據(jù)庫

1. Flash Cache 功能介紹

在oracle11gR2中,Oracle提供了設(shè)置FLASH CACHE的功能,該特性允許使用SSD硬盤作為Buffer Cache的二級緩存,以在磁盤和內(nèi)存之間增加一級緩沖,提升數(shù)據(jù)訪問性能。這個功能其實是EXADATA引入,這也是EXADATA提高IO性能的又一利器。不過即使不是EXADATA,在11.2中也可以設(shè)置該功能,前提要求操作系統(tǒng)必須是oracle enterprise linux(簡稱OEL)或者solaris,也就是說只支持Oracle公司自己的操作系統(tǒng)。

Flash Cache 的功能只會提高磁盤讀的性能,因為Dirty blocks還是會直接寫到磁盤而不會在SSD中,通過下面的圖可以很好的理解它的工作原理

1.   首先當(dāng)有讀的請求發(fā)生時,磁盤數(shù)據(jù)會被讀到buffer

2.   有寫的工作完成時,會將Dirty blocks直接寫入磁盤

3.   將SGA中通過LRU移出的數(shù)據(jù)寫到flash cache中,下次有讀的請求時會通過flash cache寫入內(nèi)存

2. Oracle 版本及補丁

oracle 的smart flash cache功能 在OEL平臺上對DB軟件打了閃存補丁后可以使用(solaris上不需要打),具體說明如下:

OS

Oracle

補丁

是否正常

備注

OEL6.4

11.2.0.1

p8974084


11.2.0.3

p12949806


11.2.0.4


OEL7

11.2.0.1

p8974084

ORA-00439: feature not enabled: Server Flash Cache

內(nèi)部bug,暫無補丁

11.2.0.3

p12949806

ORA-00439: feature not enabled: Server Flash Cache

內(nèi)部bug,暫無補丁

11.2.0.4

ORA-00439: feature not enabled: Server Flash Cache

內(nèi)部bug,暫無補丁

 

3. 修改 Flash Cache 參數(shù)

  開啟Flash Cache功能需要修改兩個參數(shù)(db_flash_cache_file和db_flash_cache_size),而且需要重啟生效;支持的方式分為三種,包括文件系統(tǒng)、裸設(shè)備、ASM。

 

SQL> show parameter flash_cache

NAME                   TYPE          VALUE
------------------- -----------  --------------------
db_flash_cache_file    string
db_flash_cache_size    big integer    0

db_flash_cache_file的大小一般推薦2-10倍的buffer cache(不能小于2倍),如果使用ASMM, 2-10倍的SGA_TARGET,這樣才能達到效果;若將db_flash_cache_size設(shè)為0 可以disable flash cache,再設(shè)回來可以enable. 但不允許動態(tài)修改db_flash_cache_size的值;對于RAC的環(huán)境, 需要在每個instance上面都設(shè)置以上兩個參數(shù),并且不能使用同一個file。

修改方法

1. 文件系統(tǒng)

SQL> alter system set db_flash_cache_file='/testfs/cache.dbf' scope=spfile;

SQL> alter system set db_flash_cache_size=8192M scope=spfile;

2. 裸設(shè)備

SQL> alter system set db_flash_cache_file='/dev/raw/raw1' scope=spfile;

SQL> alter system set db_flash_cache_size=8192M scope=spfile;

3.ASM

SQL> alter system set db_flash_cache_file='+ASM/DB/cache.dbf ' scope=spfile;

SQL> alter system set db_flash_cache_size=8192M scope=spfile;

4. 查看 flash cache 使用情況

通過以下SQL判斷flash cache是否在用

SELECT SUM (CASE WHEN b.status LIKE 'flash%' THEN 1 END) flash_blocks, SUM (CASE WHEN b.status LIKE 'flash%' THEN 0 else 1 END) cache_blocks,count(*) total_blocks FROM v$bh b;

Oracle11gR2 Smart Flash Cache測試說明

select name,value from v$sysstat where name in ('physical read flash cache hits','physical reads','consistent gets','db block gets','flash cache insert');

Oracle11gR2 Smart Flash Cache測試說明

5. 結(jié)論

  Oracle smart flash cache 功能雖然能很大的提高效率,但目前flash cache功能的成熟度不夠理想,目前在配置時遇到很多bug(本文只列出一部分),后期使用是否還有bug還是未知,但是SSD硬盤確實對磁盤的I/O有很大性能的提高。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI