其实在绝大多数的核心生产环境中,已经普遍采用了ASM方式来运行数据库,而运行在文件系统上的单实例数据库所采用的不同的文件系统对大部分DBA来说,都是假设没有区别的。事实上可能区别很大。
在长老的《解决UEFI安装无法启动的问题》一文的评论中,有他的读者提到:

决定测试一下,两台配置一样的虚拟机,所在的宿主机一样。安装19.3数据库,并且将数据库的各项参数调整为一致,如redo,内存等等。然后用swingbench来测试。事实上我在测试的时候,windows的卡顿感非常明显,sqlplus一个查询要半天才反馈。很难相信它的表现会好过linux。
事实上这个测试比较粗糙,没有调优。(大家跑生产也不怎么对fs调优的)
首先测试的是windows的ntfs的表现,windows版本为2012 R2。
测试中,win的表现相对来说不太稳定,TPM有较为明显的抖动。

接下里测试的是linux中的XFS文件系统,LINUX版本为OEL7.6,内核版本为4.1.12-124.28.6.el7uek.x86_64,之所以要说到内核版本,是因为有说法,ext4封装了ext3的代码,所以3和4测试结果理论上应该是一样的。

XFS的测试结果让我很诧异,在linux下的操作过程非常顺畅,但是没想到跟NTFS的差距这么大。好在测试较为平稳。
之后删掉数据库,在ext4上新建数据库,初始化好环境,开始测ext4下的性能表现。
1 2 |
/dev/mapper/ol_dm01db08-oradata on /oradata type ext4 (rw,relatime,seclabel,data=ordered) |

ext4下的测试结果要好很多,峰值已经接近ntfs了。但是还是有差距。查阅ext4和xfs的对比,xfs的扩展性要比ext4好,对带海量文件遍历要性能优于ext4,大文件操作也不错,对于oracle来说,block级别的访问和修改,似乎不如ext4。
最后测试下ext3的,理论上应该跟ext4的结果类似。清理掉环境,重新建库在ext3上。
1 2 3 |
/dev/mapper/ol_dm01db08-oradata on /oradata type ext3 (rw,relatime,seclabel,errors=continue,user_xattr,acl,barrier=1,data=ordered) |

ext3跟ext4结果类似。
整个测试下来,发现NTFS确实在swingbench场景下表现要好一些。NTFS>EXT4/EXT3>XFS。但是我还是不会用Windows跑oracle的。呵。
–END–