怎样ORACLE释放undo表空间?

5个月前 (10-16 08:32)阅读3回复0
yk
yk
  • 管理员
  • 注册排名3
  • 经验值140150
  • 级别管理员
  • 主题28030
  • 回复0
楼主

  在日常的数据库维护和数据库编程中经常会碰到踌躇对大数据量做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公司最新的平安性警告息争决计划。 。

  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 地址。  选定或更新了特定列。

    利用了该列的特定值。

以上是我关于那个问题的解答,希望可以帮到各人。

0
回帖

怎样ORACLE释放undo表空间? 期待您的回复!

取消