undo
使用DML语句对数据进行了修改 oracle将修改前的数据保存至undo segment中 ,undo segment保存于undo tablespace中,未使用commit提交事务前 使用rollback可回滚这部分数据
show parameter undo
undo参数...
①undo_management 值为auto时 在空间不足时自动创建undo段
②undo_retention 该项值为在事务提交后存放在undo段内的数据仍将保存多少秒
③undo_tablespace 当前使用的undo表空间
ORA-01555 快照过旧
解决方案:扩大undo表空间
1.create undo tablespace undotbs2 datafile ' g:/undotbs2.dbf ' size 10m创建一个undo表空间 使用数据文件undotbs2.dbf 大小为10MB
此时的undotbs2不会被使用 因为默认处于offline状态
2.alter system set undo_tablespace = undotbs2修改数据库使用undotbs2回滚表空间 此刻其他回滚段将被置于offline状态
3.select * from dba_rollback_segs
查看所有undo表空间SEGMENT_ID 使用情况等信息
4.select * from v$rollstat
当前undo表空间USN(对应表空间SEGMENT_ID) 使用情况等信息
5.select * from v$transaction
查看当前事务使用undo的情况
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21143113/viewspace-1023641/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21143113/viewspace-1023641/