undo表空间不足

来源:互联网 发布:无痛胃镜有风险吗 知乎 编辑:程序博客网 时间:2024/04/29 08:55

数据库大批量插入提交注意事项-undo:
undo定义:
UNDO 表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,oracle会将这些操作的旧数据写入到UNDO段滚段,还可以使用UNDO表空间.因为规划和管理回滚段比较复杂,所有oracle database 10g已经完全丢弃用回滚段.oracle 9i使用Rollback Segment,oracle 10g之后丢弃使用回滚段,使用UNDO表空间来管理UNDO数据

undo表空间不足处理:
1、undo表空间剩余空间查看:
SELECT a.tablespace_name as tablespace_name,
       to_char(b.total/1024/1024,999999.99) as Total,
       to_char((b.total-a.free)/1024/1024,999999.99) as Used,
       to_char(a.free/1024/1024,999999.99) as Free,
       to_char(round((total-free)/total,4)*100,999.99) as Used_Rate
FROM (SELECT tablespace_name, sum(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name) a,
     (SELECT tablespace_name, sum(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name ) b
WHERE a.tablespace_name=b.tablespace_name
  AND a.tablespace_name='UNDOTBS3'
ORDER BY a.tablespace_name;
2、处理方法一:扩展undo表空间大小,alter database datafile ' file/undo/undotbs03.dbf' resize 32567M
3、处理方法二:咱现有undo表空间大小32G,无法扩容,只能创建大数据文件,方法如下:
CREATE BIGFILE UNDO TABLESPACE undotbs3 DATAFILE ' file/undo/undotbs03.dbf'
SIZE 131072M reuse autoextend on next 10240m maxsize unlimited;
切换到新创建的undo表空间:ALTER SYSTEM SET undo_tablespace=undotbs3;
0 0
原创粉丝点击