(word)Oracle清理和重建临时表空间.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(word)Oracle清理和重建临时表空间

清理和重建临时表空间 正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段a的。但有些有侯我们则会遇 到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。这个问题在论坛中也常被网友问到,下面我总结 一下,给出几种处理方法。 法一、重启库 库重启时,Smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的 应用机会,不过这种方法还是很好用的。 法二、Metalink给出的一个方法 修改一下TEMP表空间的storage参数,让Smon进程观注一下临时段,从而达到清理和TEMP表空间的目的。 SQL alter tablespace temp increase 1; SQL alter tablespace temp increase 0; 法三、我常用的一个方法,具体内容如下: 1、 使用如下语句a查看一下认谁在用临时段   SELECT username,   sid,   serial#,   sql_address,   machine,   program,   tablespace,   segtype,   contents   FROM v$session se,   v$sort_usage su   WHERE se.saddr su.session_addr 2、那些正在使用临时段的进程 SQL Alter system kill session sid,serial#; 3、把TEMP表空间回缩一下 SQL Alter tablespace TEMP coalesce; 法四、使用诊断事件的一种方法,也是被我认为是“杀手锏”的一种方法 1、 确定TEMP表空间的ts#   SQL select ts#, name from sys.ts$ ;   TS# NAME   0 SYSYEM   1 RBS   2 USERS   3* TEMP   4 TOOLS   5 INDX   6 DRSYS 2、 执行清理操作 SQL alter session set events immediate trace name DROP_SEGMENTS level 4 ; 说明: temp表空间的TS# 为 3*, So TS#+ 1 4 其它: 1、 出现如上问题的原因我认为可能是由于大的排序超出了TEMP表空间的空间允许范围引起的。也可能包含着其它的异常的因素。 2、 观注TEMP等这些空间的状态是Dba日常职责之一,我们可以通过Toad、Object Browser等这些工具办到,也可以用如下的语句:   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 使用比,   F.TOTAL_BYTES 空闲空间 M ,   F.MAX_BYTES 最大块 M   FROM SELECT TABLESPACE_NAME,   ROUND SUM BYTES / 1024 * 1024 , 2 TOTAL_BYTES,   ROUND MAX BYTES / 1024 * 1024 , 2 MAX_BYTES   FROM SYS.DBA_FREE_SPACE   GROUP BY TABLESPACE_NAME F, SELECT DD.TABLESPACE_NAME,   ROUND SUM DD.BYTES / 1024 * 1024 , 2 TOT_GROOTTE_MB   FROM SYS.DBA_DATA_FILES DD   GROUP BY DD.TABLESPACE_NAME D   WHERE D.TABLESPACE_NAME F.TABLESPACE_NAME   ORDER BY 4 DESC 1、 使用如下语句查看一下认谁在用临时段 SELECT s.username, s.sid, s.serial#, s.sql_address, s.machine, s.program, su.tablespace, su.segtype, su.contents FROM v$session s, v$sort_usage su WHERE s

文档评论(0)

ryf346 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档