在11.2中,Oracle提供了设置FLASH CACHE的功能,使得数据库可以自动使用配置好的FLASH CACHE作为二级缓存。
这个功能其实是EXADATA引入的,这也是EXADATA提高IO性能的又一利器。不过即使不是EXADATA,在11.2中也可以设置该功能,且这个功能的设置并不复杂。
11.2中提供了两个参数来设置FLASH CACHE:
SQL> SHOW parameter flash_cache NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flash_cache_file string db_flash_cache_size big INTEGER 0 |
其中DB_FLASH_CACHE_SIZE用来设置FLASH CACHE的大小,而DB_FLASH_CACHE_FILE设置文件的位置。
在操作系统上将FLASH CACHE挂成裸设备,然后添加到单独的ASM磁盘组中或直接挂载到操作系统上,然后通过DB_FLASH_CACHE_FILE指定ASM或操作系统目录下的文件既可。
需要注意的是,DB_FLASH_CACHE_FILE不像其他参数一样,对于ASM只需要指定磁盘组的名称既可,而必须通过手工的方式在ASM磁盘组上建立对应的目录,在设置参数的过程中,目录并不会自动创建,不过指定的文件名并不需要存在,Oracle会根据DB_FLASH_CACHE_SIZE的大小自动创建文件。
SQL> ALTER system SET db_flash_cache_size = 30g scope = spfile; System altered. SQL> ALTER system SET db_flash_cache_file = '+REDO/flash/odademo1.flash' scope = spfile sid = 'odaenmo1'; System altered. SQL> ALTER system SET db_flash_cache_file = '+REDO/flash/odademo2.flash' scope = spfile sid = 'odaenmo2'; System altered. |
需要注意,对于RAC而言,各个节点使用独立的FLASH CACHE文件,因此需要单独设置。