ITPub博客

首页 > Linux操作系统 > Linux操作系统 > UNDO表空间相关操作

UNDO表空间相关操作

原创 Linux操作系统 作者:xin2v 时间:2009-03-19 14:55:09 0 删除 编辑

1.change undo,shink undo
create undo datafile '' size /reuse manager locally;
alter system set undo_tablespace=APPS_UNDOTS1
drop tablespace
2.恢复undo
如果有备份可以用恢复普通文件的办法把它恢复
步骤:shutdown DB-->copy-->startup mount-->recover database-->alter database open;
如果没有备份,如果archive都在,可以alter database create datafile,然后继续。
如果没有备份,Archive也没有,修改pfile/spfile,
undo_management =manual
undo_tablespace='system'
_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
在mount的时候把undo drop掉然后打开数据库重建undo
恢复完成后把undo_management ,undo_tablespace修改回来,去掉_CORRUPTED_ROLLBACK_SEGMENTS
3.看undo的段被那些事务所使用
SELECT b.SID, a.xidusn
  FROM v$transaction a, v$session b
 WHERE a.addr = b.taddr

XIDUSN:就是事务的回滚段号
XIDSLOT:就是ITL列表中,slot的号
XIDSQN:就是表示这个slot被重复使用的次数

在v$lock视图中,有两列id1和id2
其中id1就是xidusn+xidslot的组合,而id2就是xidsqn的值表示slot实际使用的次数
因此可以算出他们的实际值
xidusn=trunc(id1/65536)
xidslot=mod(id1,65536)

因此transaction id就表示为(xidusn,xidslot,xidsqn)

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

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

注册时间:2009-03-19

  • 博文量
    45
  • 访问量
    64431