由于文件系统操作简便性能较高,因此多采用文件系统来存储非结构化数据,而将关系型数据存储在数据库中。然而在实际业务需求中,两种数据类型往往相伴而生,例如档案管理系统。两种数据类型的分开管理损害了安全性、健壮性以及可管理性,具体存在以下弊端:互相孤立的安全审计模型;数据的更改无法保持原子性、备份和恢复需要分别进行;很难实现涉及到关系型数据和文件数据的综合查询;空间管理复杂;需要不同的接口和协议。
为了消除文件系统的弊端,在关系数据库中多采用二进制大对象(LOB)实现存储非结构化数据,然而LOB一直存在着性能瓶颈。将非结构化数据存储在数据库中后,管理和检索非结构化数据(例如多媒体应用程序)需要额外的处理能力和内存才能获得与文件系统等同的性能。
综合以上原因,推荐使用Oracle Database中的SecureFile Lobs来存储非结构化数据。自Oracle Database 11g开始,增加了SecureFile Lobs方式来解决非结构化数据存储,SecureFile支持检索非结构化数据,使得访问数据库内的文件与本地文件系统中的文件一样快,甚至超过了后者,同时还保持了与数据库中数据的事务一致性。SecureFiles 是一个重要的新体系结构,它既具备所有最先进文件系统功能,又具备高级数据库功能。其特性包括全新的磁盘格式、空间和内存管理技术,它可显著提升 LOB 性能并优化存储。
(1)提高了读写性能:SecureFiles 在数据库处理文件数据的方式上采用了全新的范例,对于基本查询和插入操作可提供类似文件系统的性能。经过 SecureFiles 优化的算法速度最快可达LOB的10倍。
(2)统一的事务管理:非结构化数据可以是数据库事务的一部分,因此,免去了应用程序在保证原子性、读取一致性以及其他备份和恢复过程的复杂性。
(3)LOB迁移功能:通过“联机表重新定义(OnlineTableRedefinition)”可以轻松将LOB转换为SecureFile。
(4)透明数据加密(TDE):支持表内所有非结构化数据列的自动密钥管理,并可以对数据、备份和重做/撤消日志文件进行透明加密/解密。应用程序无需更改即可通过SecureFilesLOB透明地利用TDE功能。
(5)优化的文件存储空间管理:提供去重和压缩功能,并且对于应用程序完全透明。去重:多份相同的SecureFile拷贝只存储一次,从而节省了存储空间,复制操作性能提升明显,尤其适用于档案管理;压缩:可自动判断数据是否可以压缩,或压缩是否有益。对于一般性文件能实现2到3倍的压缩率,通过减少IO、BufferCache的需求及加密带来的开销来改善性能。
(6)可以通过数据库客户端或文件系统客户端来访问:数据库客户端(如PL/SQL)可以使用扩展后的LOB接口来访问;文件系统客户端(如FTP、WebDav)可以使用由Content DB实现的文件系统协议来访问。
(7)可以将非结构化数据和关系型数据整合起来,使用统一的安全模型、数据视图和数据管理。使用SSL加密,通过DMZ/防火墙访问文件,不需要开新端口;为基于内容的访问审查提供细粒度的审计;标签安全有不同的访问策略:包括级别(如绝密)、部门(如秘书处);统一的数据存储。下载本文