关于UNDO的问题

[复制链接]
查看11 | 回复4 | 2012-1-4 11:51:22 | 显示全部楼层 |阅读模式
昨天在升级的时候碰见的,请教一下高人
update zjyj_t_yssj set f_bxfsrbz=0,f_bgfsrbz=0
*
ERROR at line 1:
ORA-30036: unable to extend segment by 1024 in undo tablespace 'UNDO'
ORA-27042: not enough space on raw partition to fullfill request
Additional information: 2
ORA-27042: not enough space on raw partition to fullfill request
Additional information: 2

经查:UNDO表空间只有512M,所以报ORA-30036。
sqlplus '/as sysdba' ,执行
SQL>create tablespace_name UNDOTBS2

datafile '/dev/vg01/rundo01' size 2047M
SQL>alter system undo_tablespace='UNDOTBS2'
想问:如果 /dev/vg01/rundo01 上本来已经有别的datafile,上面的语句会不会成功执行?
回复

使用道具 举报

千问 | 2012-1-4 11:51:22 | 显示全部楼层
最初由 marliuang 发布
[B]想问:如果 /dev/vg01/rundo01 上本来已经有别的datafile,上面的语句会不会成功执行? [/B]

rundo01已经被使用了?除非该数据文件在数据库上已经被drop.
你可以reuse使用,否则应该报ORA-01537错误吧
回复

使用道具 举报

千问 | 2012-1-4 11:51:22 | 显示全部楼层
如果已存在此名称的文件,你在语法中没有加reuse,肯定会报错的啊。。。如果你不相信,你可试试。。。最后提醒你,如果你切换了undo表空间,不要通过操作系统命令马上删除原来的undo tablespace datafiles上面还可能有活动事务的undo 信息。undo文件可不要乱删噢。
回复

使用道具 举报

千问 | 2012-1-4 11:51:22 | 显示全部楼层
加reuse。
回复

使用道具 举报

千问 | 2012-1-4 11:51:22 | 显示全部楼层
我用上面的语句切换,没有加rescue,原来的UNO没有删掉。
还有个疑问就是“undo tablespace datafiles上面还可能有活动事务的undo 信息。”
它会在结束之后释放掉,那么如果进程死掉了,事务会有什么影响呢?
昨天执行后原来的还有一部分的status还是ONLINE状态的,我们有些业务好像有点问题。不知道和这个有没有影响。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则