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