Oracle Exadata 从 11.2.2.4.0开始引入了 Smart Flash Logging的新特性,在exadata环境中,当oracle 需要写入日志的时候将会启动parallel write 同时在 disk 和 flash两端写入数据,controller中有任意一个率先写完就会通知RDBMS数据库继续工作, 该特性着力于提高Exadata对Redo写入的响应时间和吞吐量。(The feature allows redo writes to be written to both flash cache and disk controller cache, with an acknowledgement sent to the RDBMS as soon as either of these writes complete; this improves response times and thoughput.) 而对于ESFL是否可以减少log file sync (LFS) 本人持否定态度
Requirements:
Version 11.2.2.4 at the cell level
Version 11.2.0.3 at the DB level (when it comes out) or 11.2.0.2 BP11
[root@dm01cel01 ~]# imageinfo Kernel version: 2.6.18-274.18.1.0.1.el5 #1 SMP Thu Feb 9 19:07:16 EST 2012 x86_64 Cell version: OSS_11.2.3.1.0_LINUX.X64_120304 Cell rpm version: cell-11.2.3.1.0_LINUX.X64_120304-1 Active image version: 11.2.3.1.0.120304 Active image activated: 2012-05-09 14:03:04 -0700 Active image status: success Active system partition on device: /dev/md5 Active software partition on device: /dev/md7 In partition rollback: Impossible Cell boot usb partition: /dev/sdm1 Cell boot usb version: 11.2.3.1.0.120304 Inactive image version: undefined Rollback to the inactive partitions: Impossible CellCLI> list metriccurrent where objectType='FLASHLOG' FL_ACTUAL_OUTLIERS FLASHLOG 0 IO requests FL_BY_KEEP FLASHLOG 0 FL_DISK_FIRST FLASHLOG 24,627,386 IO requests FL_DISK_IO_ERRS FLASHLOG 0 IO requests FL_EFFICIENCY_PERCENTAGE FLASHLOG 100 % FL_EFFICIENCY_PERCENTAGE_HOUR FLASHLOG 100 % FL_FLASH_FIRST FLASHLOG 960,101 IO requests FL_FLASH_IO_ERRS FLASHLOG 0 IO requests FL_FLASH_ONLY_OUTLIERS FLASHLOG 0 IO requests FL_IO_DB_BY_W FLASHLOG 1,395,420 MB FL_IO_DB_BY_W_SEC FLASHLOG 10.797 MB/sec FL_IO_FL_BY_W FLASHLOG 1,457,415 MB FL_IO_FL_BY_W_SEC FLASHLOG 10.966 MB/sec FL_IO_W FLASHLOG 25,587,487 IO requests FL_IO_W_SKIP_BUSY FLASHLOG 0 IO requests FL_IO_W_SKIP_BUSY_MIN FLASHLOG 0.0 IO/sec FL_IO_W_SKIP_LARGE FLASHLOG 0 IO requests FL_PREVENTED_OUTLIERS FLASHLOG 732 IO requests CellCLI> list flashlog detail name: dm01cel01_FLASHLOG cellDisk: FD_01_dm01cel01,FD_05_dm01cel01,FD_12_dm01cel01,FD_08_dm01cel01,FD_13_dm01cel01,FD_11_dm01cel01,FD_09_dm01cel01,FD_15_dm01cel01,FD_00_dm01cel01,FD_02_dm01cel01,FD_03_dm01cel01,FD_04_dm01cel01,FD_10_dm01cel01,FD_14_dm01cel01,FD_07_dm01cel01,FD_06_dm01cel01 creationTime: 2012-06-26T17:41:40+08:00 degradedCelldisks: effectiveSize: 512M efficiency: 100.0 id: 4146aa41-632a-4210-8652-0b9da4216ac6 size: 512M status: normal
FL/disk IO 的比重为3.9% 不是一个很高的比重。其实在exadata系统中FL并不能完全替代redo disk write 参见Harrison的part1,part2,反映出SSD对于sequential write的乏力
同时 Kevin Closson 也指出了ESFL的实际目的:
“Exadata Smart Flash Log (ESFL) is really just a way to flow LGWR traffic through different adaptors (PCI Flash). In fact, simply plugging in another LSI HDD controller with a few SATA drives dedicated to redo streaming writes would actually do quite well if not as well as ESFL. That is a topic for a different post.”
How to disable ESFL
To disable Smart Flash Log for all databases
— Use DROP FLASHLOG CellCLI command in the storage servers
To disable Smart Flash Log for an individual database
— Use ALTER IORMPLAN dbplan=((name=test, flashLog=off))
REF:Exadata Smart Flash Cache Features and the Oracle Exadata Database Machine