Oracle表空间基础(2)

一、压缩表空间

压缩表空间是通过压缩表空间内的对象来实现的。数据的压缩体现在数据块上,简单的说就是通过清除数据块上的重复内容来达到降低I/O,提升性能性能的目的。在表空间的创建语句中通过指定default关键字,可以让在该表空间上创建的所有表进行压缩(实际上,压缩是在数据插入时进行的)。

根据表空间存储数据对象的不同,表空间压缩类型可以分为OLTP压缩、非结构化文件副本清除、非结构化文件压缩和备份数据压缩等。其中OLTP压缩是指在发生DML操作(包括insert,delete,update)期间进行的压缩。一个压缩的表可以存储在更少的数据块中,从而节省了储存空间,而使用更少的数据块也意味着性能的提高。 在一个I/O受到一定限制的环境中对一个压缩的表进行查询通常可以更快速地完成,因为他们需要扫描的数据库数据块要少得多。

# 创建默认压缩表空间
SQL> create tablespace test datafile ‘D:\app\oracle\oradata\orcl\test01.dbf‘
  2  default compress for oltp;
表空间已创建。

# 修改压缩表空间
SQL> alter tablespace test default nocompress;
表空间已更改。

# 确定一个表空间是否压缩
SQL> select tablespace_name,def_tab_compression from dba_tablespaces;
TABLESPACE_NAME                                              DEF_TAB_COMPRESS
------------------------------------------------------------ ----------------
SYSTEM                                                       DISABLED
SYSAUX                                                       DISABLED
UNDOTBS1                                                     DISABLED
TEMP                                                         DISABLED
USERS                                                        DISABLED
EXAMPLE                                                      DISABLED
TEST                                                         ENABLED
已选择7行。

  

二、加密表空间

在永久性表空间上可以使用加密技术来保护敏感的数据。表空间的加密技术对于用户来说完全是透明的,其主要目的是为了在数据库之外,保护数据避免未经授权的访问,例如通过操作系统的文件系统直接访问数据文件。但是表空间加密技术并没有解决所有的安全问题,例如,它没有提供数据库访问内容的访问控制技术,任何一个有权限的用户都可以访问和存储表空间内的对象,而无需提供额外的密码或秘钥。

当加密一个表空间,表空间内的所有数据块都将被加密,所有的段类型都支持加密,包括表段,索引段等等。为了提供最大化的安全性,当来自加密表空间的数据被写入undo表空间、临时表空间时仍然是被加密的,而无需创建加密的undo表空间和加密的temporary表空间。实际上,我们也不能创建这样的表空间。

常见的表空间加密算法有:AES128,AES192,AES256,3DES168。

在使用加密表空间时应考虑以下问题:

  • 无法对已存在的表空间进行加密。
  • 加密表空间在进行表空间传输时收到限制。
  • 在备份和恢复时要打开Oracle Wallet。

使用表空间加密技术要创建Oracle Wallet,以我的Windows环境为例,创建方法如下:

# 指定Oracle Wallet目录,D:\app\oracle\admin\orcl\wallet

# 编辑D:\app\oracle\product\11.2.0\dbhome_1\database\sqlnet.ora文件,说明Wallet的实现方式和物理位置,完成后重启数据库。
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=D:\app\oracle\admin\orcl\wallet)))

# 在Wallet下创建加密文件
SQL> alter system set encryption key identified by "oracle";
系统已更改。

# 打开和关闭Oracle Wallet,在windows上创建wallet完成后wallet默认是打开状态
SQL> alter system set encryption wallet open identified by "oracle";
系统已更改。

SQL> alter system set encryption wallet close identified by "oracle";
系统已更改。

SQL> select * from v$encryption_wallet;
WRL_TYPE   WRL_PARAMETER                       STATUS
---------- ----------------------------------- ------
file       D:\APP\ORACLE\ADMIN\ORCL\WALLET     OPEN

# 创建加密表空间
SQL> create tablespace encrypt_tbs
  2  datafile ‘D:\app\oracle\oradata\orcl\securefile.dbf‘ reuse
  3  encryption using ‘AES192‘
  4  default storage(encrypt);
表空间已创建。

# 查看表空间加密的情况
SQL> select t.name,e.encryptionalg algorithm
  2  from v$tablespace t,v$encrypted_tablespaces e
  3  where t.ts#=e.ts#;
NAME                                                         ALGORITHM
------------------------------------------------------------ --------------
ENCRYPT_TBS                                                  AES192
时间: 2024-11-05 11:00:20

Oracle表空间基础(2)的相关文章

Oracle表空间基础(1)

一.Oracle表空间概述 表空间是Oracle数据库中的一种逻辑结构.从逻辑层面上来说,表空间包含段,数据库中的对象是以段的形式来组织的,诸如表段,索引段等:从物理层面上来说,表空间是由文件构成的,数据库中的数据实际上是存储在文件当中的.表空间不是Oracle数据库中的特有概念,如在DB2中也有表空间这个概念. 二.本地管理的表空间 1.本地管理表空间中的扩展(extent)管理 使用extent management local子句显示声明创建本地管理的表空间,对于新的永久表空间来说,这是一

Oracle表空间基础(4)

一.创建非标准块的表空间 在数据库中可以创建不同于数据库标准块大小的表空间,这个特征可以在两个具有不同块大小的数据库之间传输表空间.在创建非标准块表空间之前,必须保证设置了DB_CACHE_SIZE和至少一个DB_nK_CACHE_SIZE初始化参数,DB_nK_CACHE_SIZE即为非标准块表空间的块大小. # 查看参数db_16k_cache_size系统默认值,默认值为0,表示未启用. show parameter db_16k_cache_size NAME TYPE VALUE --

Oracle表空间基础(3)

一.临时表空间 临时表空间仅包含会话期间产生的短暂的数据,可改善多个无法在内存中完成的排序操作的并发性,同时还可以提高在排序操作中空间管理的效率.在临时表空间内,特定实例的排序操作共享一个排序段,排序段在数据库启动时创建,在数据库关闭时被释放. 在完成数据库的安装以后,数据库内默认存在一个名为temp的临时表空间,temp表空间可被数据库内的多个用户所共享.也可以使用create temporary tablespace语句创建临时表空间,同时使用create/alter user语句为用户指定

Oracle表空间基础(5)

一.修改和维护表空间 1.增加表空间容量 可以通过修改表空间数据文件的大小或为表空间添加一个数据文件的方式增加表空间的容量,另外我们还可以使用表空间的自动扩展选项为大文件表空间增加容量.对于本地管理的临时表空间,即无法它增加空间容量,也无法修改它的段空间管理方式. a.小文件表空间增加容量 # 通过为表空间添加数据文件的方式增加表空间容量 SQL> alter tablespace test 2 add datafile '/u01/app/oracle/oradata/stdb/test02.

Oracle表空间

Oracle表空间,布布扣,bubuko.com

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

44.oracle表空间的使用

要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得"这不是我的事,我只是个小打工的",团建要放在首位.不可在下属面前"装B",别人也不傻. Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的. ORACLE数据库被划分成称作为表空间[1]  的逻辑区域--形成ORACLE数据库的逻辑结构.一个ORACLE数据库能够

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客"怎样玩转千万级别的数据"提到了过表分区的概念,其实表分区说到本质上就是按一定条件把不同数据放在不同的数据文件里,这些数据文件在物理上是相对独立的,在逻辑上又是一个整体.特别强调一下,在SQL Server中,建表时是默认把所有的表都保存在PRIMARY默认文件组 ,当数据库中表很多,并且数据量很大时,会

zabbix自动发现oracle表空间并监控其使用率

监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创建表空间时可以根据应用需求指定是否开启表空间自动扩展.那么在这里我们需要分析一个监控策略,就是当zabbix监控到某个表空间使用率达到95%,那么就让触发器触发警告(Warning)信息,并发送邮件给DBA或管理者.当检测到表空间没有开启自动扩展时,则触发Information信息.说明一下:ora