ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE释放undo表空间

ORACLE释放undo表空间

原创 Linux操作系统 作者:wwd_wang 时间:2012-10-18 16:44:01 0 删除 编辑

http://edu.21cn.com/oracle/g_50_576935-1.htm

在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间的所占用磁盘的物理空间又不会被oracle所释放,如果你用的是PC机很可能会遇到磁盘空间不足的问题,经过个人整理经过如下操作可以重构undo表空间,同样temp表空间也可能在你查询大数据或则创建索引的时候无限扩大导致磁盘空间不足,同样可以用如下方式解决此问题:
  --查看各表空间名称
  select name from v$tablespace
  --查看某个表空间信息
  select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
  --查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。
  select s.username, u.name from v$transaction t,v$rollstat r, v$rollname u,v$session s
  where s.taddr=t.addr and  t.xidusn=r.usn and r.usn=u.usn order by s.username;
  --检查UNDO Segment状态
  select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
  --创建新的UNDO表空间,并设置自动扩展参数;
  create undo tablespace undotbs2 datafile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS02.DBF' size 10m reuse autoextend on next 100m maxsize unlimited;
  -- 动态更改spfile配置文件;
  alter system set undo_tablespace=undotbs2 scope=both;
  --等待原UNDO表空间所有UNDO SEGMENT OFFLINE;
  select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
  --再执行看UNDO表空间所有UNDO SEGMENT ONLINE;
  select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
  -- 删除原有的UNDO表空间;
  drop tablespace undotbs1 including contents;
  --确认删除是否成功;
  select name from v$tablespace;
  最后需要在重启数据库或者重启计算机后到存储数据文件的路径下删除数据文件(为什么要手动删除呢:以上步骤只是删除了ORACLE中undo表空间的逻辑关系,即删除了数据文件在数据字典中的关联,不会自动删除项关联的数据文件)。
  5. 定期更新厂家推出的安全性补丁
  随着时间的推移,厂家通常会推出一系列的安全性补丁来弥补现有系统的安全隐患。
  对于Oracle数据库而言,应该定期查看以下网址来获取Oracle公司最新的安全性警告和解决方案。 http://www.oracle.com/technology/deploy/security/alerts.htm
  * Oracle数据库本身的安全性建设
  从总体上而言,Oracle数据库是业界安全性方面最完备的数据库产品。在数据库安全性的国际标准中,Oracle通过了14项标准的测试,是所有数据库产品中通过安全性标准最多、最全面的产品。Oracle在C2级的操作系统上(如商用UNIX,VMS操作系统),不仅满足NCSC C2级安全标准,而且已经正式通过了NCSC C2标准的测试。在B1级的操作系统上不仅满足NCSC B1级安全标准,而且已经通过了NCSC B1级标准的测试。
  Oracle提供的主要安全性措施如下:
  * 身份认证功能(Authentication):识别访问个体的身份
  * 数据访问的机密性(Confidentialty):保证敏感数据访问的机密性。
  * 数据完整性(Integrity):保证数据不被篡改。
  * 授权能力(Authorization):保证被授权用户对数据的查询和修改能力。
  * 访问控制(Access Control):确定对指定数据的访问能力。
  * 审计能力(Auditing):提供监测用户行为的能力。
  * 私有性(Privacy):提供对敏感数据访问的私密性。
  * 高可用性(Availability):保证数据和系统提供不间断服务的能力。
  * 代理管理能力(Delegated Administration):提供对用户帐号的集中管理功能。
  下面将就应用系统本身对于Oracle提供的安全性措施作更深入的探讨。
  $PageTitle= Oracle的安全性领域}
  三、 Oracle的安全性领域
  * Profile控制
  Oracle利用profile机制来管理会话资源占用,同时也管理用户密码的安全策略。
  通过profile我们可以实现:
  某个特定用户最多只能占用系统百分之几的CPU时间?
  某个特定用户连接到数据库之后能存活多长时间?
  某个特定用户连接到数据库之后多长时间处于非活跃状态就将被系统中断连接?
  用户登录密码输入错误多少次之后就将自动锁定用户?
  用户密码的长度和包含的字符必须符合什么样的规则?
  用户密码在多少天后将自动失效并要求设定新密码?
  * 用户权限控制 (Privilage)
  Oracle通过角色(Role),权限(Privilage)等的一系列授予(Grant)和回收(Revoke)操作可以有效的进行用户的权限控制。
  通过权限控制我们可以实现:
  某个特定用户只能读取而不能修改另一个用户的表数据。
  某个特定用户只能运行Oracle数据库系统的几个存储过程或者函数。
  某个特定用户自己能够拥有修改某些数据的权力,但是却无法给其它不拥有这个权限的用户授予修改该数据的权力。
  某个特定用户可以读取数据但是无法创建新的表空间。
  * 虚拟专用数据库(VPD)
  虚拟专用数据库 (VPD) 也称为细粒度访问控制,它提供强大的行级安全功能。它是在 Oracle8i 中推出的,已经受到广泛的欢迎。

  VPD 的工作方法是,通过透明地更改对数据的请求,基于一系列定义的标准向用户提供表的局部视图。在运行时,所有查询都附加了谓词,以便筛选出准许用户看到的行。
  也就是通过VPD的设置,我们可以做到行级安全性控制,特定的用户即使对一张表有读取权限,那么也只能看到符合自身权限的记录。
  注意,在Oracle10g版本中,VPD得到增强,已经可以实现字段级的安全性控制了。
  实例及搭建步骤参看:利用VPD细粒度访问策略实现行级安全性 Step By Step
  * Orace Label Security
  基于对由客户提交的行级安全性的严格要求,Oracle Label Security(Oracle 数据库企业版的选件之一)利用多级安全性概念解决了世界上政府和商业用户在实际中遇到的数据安全和隐私问题。
  OLS 通过利用数据敏感度标签(例如“敏感”和“公司机密”)与用户标签授权,提供了完善的行级安全性控制。
  OLS 使用政策概念来存储标签定义和授权。该政策可直接在数据库中进行管理,或在 Oracle 身份管理中进行集中管理。
  * Oracle Database Valut
  通常数据库管理员如果具有了DBA权限,那么就很难防止这样的管理员查看应用程序数据。而Oracle Database Valut则解决了必须保护涉及合作伙伴、员工和顾客的敏感业务信息或隐私数据的客户最为担心的问题。
  Oracle Database Vault 可防止高权限的应用程序 DBA 访问其他的应用程序、执行其权限之外的任务。Oracle Database Vault 可在不影响应用程序功能的前提下快速而高效地保护现有程序。
  Oracle Database Vault 可通过下列方法解决一些最为常见的安全问题和内部威胁:
  1. 限制 DBA 和其他授权用户访问应用程序数据。
  2. 防止DBA 操纵数据库和访问其他应用程序。Oracle Database Vault 提供了强大的职责划分控制功能,可防止擅自更改数据库。比如说如果一个用户具有 CREATE USER 权限,但不具备正确的用户管理权限,则 Oracle Database Vault 将阻止该 DBA 创建新用户。
  3. 更好的控制何人、何时、何地可以访问应用程序。如日期时间、数据库客户端在网络上的位置之类的因素。
  Oracle Database Valut是新的Oracle Database 10g企业版的选件。目前已经有Linux X86以及Solaris SPARC 64bit的版本可以下载使用了。
  * 用户访问审计
  审计是Oracle安全性的另一个重要领域,我们还必须小心地计划审计方案。有几种方式可在Oracle中进行审计:
  1. SQL审计命令(标准审计)
  通过AUDIT语句我们可以对成功或者不成功的特定对象的读取,更新操作进行审计。
  标准审计只会记录较少的跟踪信息,比如发出该语句的用户、时间、终端标识号等等。
  该审计对于系统性能的影响更多地取决于对象的繁忙程度。
  2. 用对象触发器进行审计(也就是DML审计)
  此类审计通常由客户自行开发放置于特定数据库对象上的触发器,由于是自行开发,所以相对于标准审计则能够更自由地记录更多感兴趣的跟踪信息。比如更新操作将某个字段从什么原始值更新到了什么新值。
  该审计对于系统性能的影响更多地取决于对象的繁忙程度和触发器的编写水平。
  3. 用系统级触发器进行审计(记录用户登录和退出)
  当用户登录数据库或者离开数据库时,都可以通过自定义的触发器来记录用户名称,操作时间,终端标识号等信息。
  由于触发器触发几率小,所以该审计对于系统性能影响并不大。
  4. 用LogMiner进行审计(也就是DML和DDL)
  Oracle数据库将所有的更新操作都记录在重作日志中,而Oracle提供了LogMiner工具用于挖掘重作日志中的所有操作,相比起上述的各种审计方法来说,该种审计可能是信息最为完善,对于应用系统性能影响最小的方法。
  此处稍微延展开来说一下,LogMiner是双刃剑,既然可以用来审计,也就能够被恶意使用作为数据窃取的工具。所以在数据本身的加密方面,Oracle 同样提供了多种解决方案,比如DBMS_OBFUSCATION_TOOLKIT,DBMS_CRYPTO和最新的透明数据加密,甚至在数据备份方面 Oracle也推出了Secure Backup来应对磁带数据的加密,但是要注意到数据加密不应用作访问控制的替代项,存储加密的数据并不会在存储介质本身提供额外的保护层,只是有助于在发生介质遭窃时保护诸如信用卡号之类的敏感数据。本文不再作更多的介绍。
  5. 细精度审计(FGA)
  细粒度审计 (FGA),是在 Oracle 9i 中引入的,能够记录 SCN 号和行级的更改以重建旧的数据,但是它们只能用于 select 语句,而不能用于 DML,如 update、insert 和 delete 语句。因此,对于 Oracle 数据库 10g 之前的版本,使用触发器虽然对于以行级跟踪用户初始的更改是没有吸引力的选择,但它也是唯一可靠的方法。
  而Oracle10g种FGA功能的增强使其不但能够支持select操作,同时也支持DML操作。在 Oracle 10g 中,审计已经从一个单纯的“操作记录者”成长为一个“事实记录机制”,它能以一个非常详细的级别来捕获用户的行为,这可以消除您对手动的、基于触发器的审计的需要。它还结合了标准审计和 FGA 的跟踪,这使其更易于跟踪数据库访问,而不用考虑它是如何生成的。

  通过细粒度审计我们可以记录:
  在早上九点到下午六点之间或在星期六和星期日对某个表进行了访问。
  使用了公司网络外部的某个 IP 地址。
  选定或更新了特定列。
  使用了该列的特定值。

.item-area{width:578px;margin:15px auto;border-top:1px solid #ddd;color:#666} .item-area a,.item-area a:link,.item-area a:visited{color:#666;text-decoration:none} .item-area a:hover{color:#3a7ad9;text-decoration:underline;} a img{border:none;vertical-align:middle} .item-area h2,.item-area h3{float:none;font-size:100%;font-weight:normal;} .item-area .h2{height:25px;margin:10px 0;padding-left:35px;*float:left;font:bold 14px/25px "宋体";background:url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 0} .item-area span.more{float:right;font:normal 12px/25px "宋体"} .item-area a.more{float:right;font:normal 12px/25px "宋体"} .item-a{margin-bottom:15px} .item-a .h-ksrm{background-position:0 0} .item-a li{*display:inline;overflow:hidden;zoom:1;line-height:2em;padding-left:35px;font-size:14px;background: url(http://sns.thea.cn/module/images/btns.png) no-repeat -1px -28px;} .item-a li a{float:left;} .item-a .testBtn{float:right;width:58px;height:21px;line-height:21px;font-size:12px;margin-top:5px;margin-top:3px;text-align:center;background:url(http://sns.thea.cn/module/images/btns.png) no-repeat -1px -1px; color:#FFFFFF;} .item-a a.freeBtn{width:20px;margin:0 0 0 6px;line-height:28px;color:#fff;font-size:12px;text-indent:-9999px;background: url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 -131px;} .item-a li.hots a.freeBtn{background-position:0 -105px} .item-a a.examnum em{font-style.:normal;color:red;font-weight:bold;} .item-b {padding:5px 0 20px;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd} .xsjl-list-col3s li{display:table-cell;*display:inline;zoom:1;vertical-align:top;width:182px;padding-right:10px;line-height:150%;font-size:12px;} .item-b .h-xsjl{background-position:0 -26px} .item-b .pic{float:left;margin:3px 10px 0 0;} .item-b em{font-style.:normal;color:#dc2c2c} .item-b a.join{display:inline-block;padding-left:20px;background:url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 -160px} .item-b .xsjl-list-col3s h3 a{display:inline-block;width:120px;overflow:hidden;white-space:nowrap;color:#3a7ad9} .item-b .xsjl-list-col3s h3{text-align:left;line-height:150%;font-family:"宋体","微软雅黑"}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12137615/viewspace-746713/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-05-08

  • 博文量
    236
  • 访问量
    194287