下面是一个创建Securefiles的例子:
create TABLE func_spec( id number, doc CLOB ENCRYPT USING ’AES128’ ) LOB(doc) STORE AS SECUREFILE ( DEDUPLICATE LOB CACHE NOLOGGING ); |
可以使用alter TABLE table_name MODIFY来修改当前的Securefiles的各种属性,例如:
alter TABLE t1 MODIFY LOB(a) ( DEDUPLICATE LOB ); |
使用此命令能修改的Securefiles属性如下:
DEDUPLICATE/KEEP_DUPLICATES: DEDUPLICATE选项允许指定在一个LOB列中有两行或者更多行的时候,所有行都共享同样的数据块。相反的就是KEEP_DUPLICATES选项。Oracle11g数据库使用一个安全的哈希索引来检测重复性并且联合LOBs的内容到一个单一的拷贝里面,减少存储空间并且简化存储管理。
VALIDATE:对SecureFiles执行一个字节到字节的比较,确定SecureFiles都是同样的安全哈希值。
COMPRESS/NOCOMPRESS:决定是否启用LOB压缩。
ENCRYPT/DECRYPT:决定是否启用LOB加密。如果一旦设置好了加密,就只能用alter TABLE REKEY命令来更新加密算法或者是加密值。
RETENTION:只能影响使用alter TABLE语句之后所创建的空间。
对于Securefiles的访问,Oracle11g数据库是通过使用DBMS包来实现的。主要是通过DBMS_LOB包和DBMS_SPACE包来访问。
DBMS_LOB包:LOBs继承LOB列的设定的属性,当然也可以通过LOB locator API配置成每个LOB级别上。但是LONG API不能用于配置这些LOB设定,必须使用DBMS_LOB包来设定这些属性:
DBMS_LOB.GETOPTIONS:可以用来获取设定,每个选项类型的预定义的一个常量对应于一个整数将会返回。
DBMS_LOB.SETOPTIONS:用于设定特性并且允许在每一个LOB基础上设定特性,会覆盖所有默认的LOB设定。
DBMS_LOB.GET_DEDUPLICATE_REGIONS:这个存储过程用于输出在一个LOB中不重复区域的记录收集。LOB级别上只包含一个不重复区域。
DBMS_SPACE.SPACE_USAGE:这个存储过程用于返回LOB空间使用的负载信息。返回在LOB段中所有LOB使用的磁盘空间的blocks的数量。这个存储过程目前只能用于ASSM创建的表空间,不支持属于BasicFiles那部分LOB使用的空间。
对于从BasicFiles移植SecureFiles,有两种推荐的方法来移植。这两种方法分别是交换分区和在线重定义。
交换分区:
需要和表中最大的分区相等的额外空间
在交换的时候可以维护索引
能够在几个小的维护窗口延展工作负载
执行交换分区的时候需要将表或者分区离线
在线重定义:
不要求表或者分区离线
可以被并行的执行
要求额外的等于整个表或者所有LOB段大小的可用空间
要求必须重建所有的全局索引
如果你想升级你的BasicFiles到SecureFiles,你可以使用传统的方法来升级数据,例如CTAS/ITAS、export/import、column-to-column拷贝等等。大部分这些解决方案都要求使用两倍的磁盘空间来移植。然而,使用分区解决方案来移植可以按照每个分区来移植,从而有助于减少磁盘空间的需求。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
Oracle依旧领跑关系型数据库市场
Gartner研究机构在上个月发布了关系型数据库市场的相关数据,其中Oracle在过去的两年中依旧以较大的优势领跑该市场。
-
30个Oracle语句优化规则详解(二)
Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾……
-
Oracle11g: PL/SQL基础
PL/SQL是由构造程序、统计数据、模块性以及异常管理等建模观念发展而来的。它扩展了ADA程序语言。ADA扩展了Pascal程序语言,包括配置、比较运算符以及单引字符串分隔符。
-
Oracle 11g中SYS连接阻止关闭数据库(三)
以前就发现11g的Oracle有这个问题,一直没有太在意,直到今天关闭数据库的时候发现很长时间Oracle都无法正常关闭,从后台查询,发现数据库出现错误提示……