oracle 压缩 方式6,Oracle 11g外部表功能增强,通过DATAPUMP卸载数据可直接进行压缩或加密...

在Oracle Database 11g中,外部表的功能得到了进一步的增强,现在通过DATAPUMP卸载数据时可以直接进行压缩或加密,而外部表通过指定解压缩的外部程序,也可以读取压缩格式的外部文件。

1. 卸载数据压缩

在Oracle 10g中,可写外部表将数据以非压缩格式卸载到本地,如果需要跨网络传输,可能需要进一步的压缩,否则会带来大量的网络流量,在Oracle Database 11g中,数据库允许在卸载数据时同时进行压缩,压缩使得卸载的转储文件对于空间需求大大缩减。

下面通过对比来比较一下压缩的效率。

在Windows上,以非压缩格式卸载数据,转储文件占用7,221,248 Bytes的空间:

D:\oracle\admin\eyglee\dpdump>dir

2010/10/07 14:50 7,221,248 DP_ALL_OBJECTS.DMP

2010/10/07 14:50 45 DP_ALL_OBJECTS_4572_3248.log

通过压缩格式转储数据,在建表语句中增加了一行

ACCESS PARAMETERS (COMPRESSION ENABLED)

执行如下卸载过程:

CREATE TABLE dp_all_objects_compress

ORGANIZATION EXTERNAL

(

TYPE oracle_datapump

DEFAULT DIRECTORY data_pump_dir

ACCESS PARAMETERS (COMPRESSION ENABLED)

LOCATION ( 'DP_ALL_OBJECTS_COMPRESS.DMP' )

)

AS

SELECT *

FROM all_objects;

比较前后两个文件大小,注意到压缩文件仅有819,200 Bytes,压缩率近9倍,非常有效地缩减了空间使用:

D:\oracle\admin\eyglee\dpdump>dir *.DMP

2010/10/07 14:50 7,221,248 DP_ALL_OBJECTS.DMP

2010/10/07 15:03 819,200 DP_ALL_OBJECTS_COMPRESS.DMP

当然压缩的过程会有一些额外的CPU消耗,数据卸载速度也会比非压缩方式稍慢。

2.卸载数据加密

在Oracle Database 11g中,新增了对于外部文件加密的功能,通过加密可以对敏感数据进行保护,是数据库安全性方面的重要增强。使用这一特性需要启用wallet,本书前面章节已经创建了wallet,现在只需打开就可以实现数据加密:

SQL> alter system set wallet open identified by "eygle";

系统已更改。

SQL> CREATE TABLE dp_all_objects_encryption

2 ORGANIZATION EXTERNAL

3 (

4 TYPE oracle_datapump

5 DEFAULT DIRECTORY data_pump_dir

6 ACCESS PARAMETERS (ENCRYPTION ENABLED)

7 LOCATION ( 'DP_ALL_OBJECTS_ENCRYPTION.DMP' )

8 )

9 AS

10 SELECT *

11 FROM all_objects;

表已创建。

现在创建的非压缩加密文件大小和非压缩方式的文件一致:

D:\oracle\admin\eyglee\dpdump>dir *.dmp

2010/10/07 14:50 7,221,248 DP_ALL_OBJECTS.DMP

2010/10/07 15:03 819,200 DP_ALL_OBJECTS_COMPRESS.DMP

2010/10/07 15:18 7,221,248 DP_ALL_OBJECTS_ENCRYPTION.DMP

如果试图用常规方式去查看内容,可以看到显示的都是加密过后的代码:

D:\oracle\admin\eyglee\dpdump>strings DP_ALL_OBJECTS_ENCRYPTION.DMP

"SYS"."U"

IBMPC/WIN_NT-8.1.0

ZHS16GBK

11.02.00.00.00

001:001:000001:000001

8{)Z5

"jnH

HNHMGxQ

HA)E

KJwg=<

cA2Ln

{CvE

Gn.h

CTvLc4{

I%)t

HCYf

.W&&Z

[5

这样就实现了卸载数据的加密。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值