扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:QQ新人类 来源:yesky 2007年10月23日
关键字: ORACLE
在本页阅读全文(共3页)
SELECT SEGMENT_NAME, XACTS ACTIVE_TX, V.STATUS FROM V$ROLLSTAT V, DBA_ROLLBACK_SEGS WHERE TABLESPACE_NAME = 'tablespace_name' AND SEGMENT_ID = USN; |
如果上面的查询没有结果,那么所有的回滚段都是离线的,但是,如果上面的查询返回一行或者多行,并且其状态为PENDING OFFLINE,那么可检查这些回滚段的ACTIVE_TX列、带有0值的回滚段将很快会离线;但是,非0的值表示上面有活动的事务,它们需要被提交或者回滚、
5、处理活动的事务、执行以下的查询来查看哪些用户的事务被指派到该回滚段:
SELECT S.SID, S.SERIAL#, S.USERNAME, R.NAME "ROLLBACK" FROM V$SESSION S, V$TRANSACTION T, V$ROLLNAME R WHERE R.NAME IN ('pending_rollback1','pending_rollback2', .... 'pending_rollbackN') AND S.TADDR = T.ADDR AND T.XIDUSN = R.USN; |
在知道哪些用户在"pending offline"的回滚段上有活动的事务后,可以要求他们提交或者回滚他们的事务,或者可以使用以下的命令杀掉它们的进程:
ALTER SYSTEM KILL SESSION 'sid, serial#';
6、在你处理完所有活动的事务后,执行以下的步骤:
丢弃表空间及其中的全部内容
重新创建回滚表空间
重新创建回滚段,并且令它们在线
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。