Oracle11g数据库新推出了一个完全重新设计的大对象(LOB)数据类型用于大幅度的提高性能、可管理性和简化应用的开发。这个全新的数据类型同时还提供了高级的下一代功能例如智能压缩和透明加密等功能。SecureFiles提供了如下的组件:
压缩:使得可以明确地压缩SecureFiles来节省磁盘空间,I/O和记录重做日志的开销。
数据路径优化:支持针对于SecureFiles的性能优化,包括
动态设置是否使用缓存,并且避免污染对于高速缓存中的大的缓存的SecureFiles。
利用事务COMMIT NOWAIT BATCH来达到同步或者异步。
类似于文件服务器的脏缓存写,写缓存收集能够自动分期偿还空间分配、信息节点更新,记录重做日志的代价,并且允许磁盘大规模的I/O读写。
针对于SecureFiles块的分布式锁管理器,这使用一个单一的分布式锁管理器来覆盖所有的SecureFilesLOB块,因此对于其他的文件系统来说LOB的性能会更好一些。
不重复:自动检测重复的SecureFiles LOB数据并且只保留一份拷贝空间来实现节省磁盘存储,I/O和重做日志记录的消耗。不重复操作可以在表级或者是分区级别上指定,但是不能跨越分区的LOBs。
加密:加密存储LOB数据并且可以任意的读和写来提供更强大的数据安全性。
信息节点:针对于SecureFiles的新的存储架构被设计和实现用于支持高性能的访问目标数据。除了提高基础数据访问之外,新的存储架构也支持丰富的功能,保证最小的性能代价,这些功能例如:
固有的压缩和加密
数据共享
用户控制的版本
COMPATIBLE初始化参数比较要设置为11.1或者更高才可以使用SecureFiles。
通过设置初始化参数DB_SECUREFILE来确定是否启用SecureFiles,这个参数可以设置为以下几个值:
PERMITTED:允许创建SecureFiles(默认)
NEVER:不允许创建SecureFiles
ALWAYS:强制所有的LOBs都必须要创建SecureFiles
IGNORE:不允许创建SecureFiles并且忽略由强制BasicFiles使用SecureFiles特性而引起的任何错误。
如果指定值为NEVER,任何LOBs都将以BasicFiles来创建,所有的指定的SecureFiles的存储选项和特性都将引起一个意外。
如果指定值为ALWAYS,所有系统中的LOBs都以SecureFiles来创建,LOB必须在ASSM(Automatic Segment Space Management)表空间中创建,否则会产生错误。任何指定的BasicFile存储选项都将会被忽略。
下面是一个创建Securefiles的例子:
CREATE TABLE func_spec( id number, doc CLOB ENCRYPT USING ‘AES128’ ) LOB(doc) STORE AS SECUREFILE ( DEDUPLICATE LOB CACHE NOLOGGING ); |
[1] [2]