Oracle 11g 开始,对于solaris和oracle linux操作系统,可以使用flash cache功能
什么是Flash Cache
Flash cache是对sga内部的buffer cache的扩展,使用高速固态存储设备为内存和磁盘间提供二级缓存,以增强内存和机械盘之间的吞吐性能,减少响应时间,是一种性能和成本的折衷方案(固态硬盘比内存便宜,比机械盘贵)。
Flash Cache大小的选择
通常,Flach cache区的大小应该为buffer cache大小的2-10倍,低于2倍则不会有性能的提升。若为自动内存管理模式,flash cache区的大小也应该为SGA_TARGET(准确的说,应该为SGA_TARGET*0.8)的2-10倍。另外,每个数据库块在buffer cache和flash cache之间移动时,需要在buffer cache中额外存放100bytes的元数据(rac环境下大概200bytes),因此,buffer cache需要额外增加的内存大概为flash cache大小的1/80,若为自动内存管理,MEMORY_MAX_TARGET的值应该增加flash cache大小的1/80(rac环境下大概1/40)
flash cache相关参数
- db_flash_cache_file:指定flash cache的位置路径
可以是操作系统文件,也可以是ASM磁盘组,若文件不存在,重启数据库会自动创建文件,若该参数设置的路径并未指向固态盘而是机械盘,性能会更变得更差。- db_flash_cache_size:指定flash cache的大小
设定值必须小于固态磁盘设备的大小,设定为0表示不启用flash cache功能。该参数不能动态修改。
注意:若为rac环境,需要在每个实例上都开启或都不开启flash cache功能
网友评论