Oracle的UNDOTBS01.DBF文件太大的解决办法

来源:互联网 发布:集美大学宿舍网络充值 编辑:程序博客网 时间:2024/04/30 16:27

Oracle的UNDOTBS01.DBF文件太大的解决办法  

 

两种解决办法:
1.升级到9205
2.禁止undo tablespace自动增长

 

3.如果要缩小现在的undo tablespace,则:
-- 创建一个新的小空间的undo tablespace
create undo tablespace undotBS2 datafile 'C:\oracle\oradata\eoffice\UNDOTBS1.DBF' size 100m;
-- 设置新的表空间为系统undo_tablespace
alter system set undo_tablespace=undotBS2;
-- Drop 旧的表空间
drop tablespace undotbs1 including contents;

--查看所有表空间的情况
select * from dba_tablespaces 

 

----------------------------------------------

历史库太大有多个2G以上的文件,只保留小部分数据做试验。

本想用清空数据的方法,但出错了。truncate table IES_LISHI_TABLESPACE;   ORA-00942:表或视图不存在

先用应用软件的数据库编辑软件的备份向导导出一部分历史数据,做恢复时备用。

1、查看所有表文件

SQL>select file_name,tablespace_name from dba_data_files;

2、删除体积超大的历史库表空间:危险指数★★★★★

SQL>drop tablespace IES_LISHI_TABLESPACE including contents;

表空间已删除。

3、新建同名表空间 2G,用以代替原表。

SQL>create tablespace IES_LISHI_TABLESPACE datafile 'd:\oradata\iesdb\IESLISHI01.DBF' size 2048M;

表空间已创建。

4、因为历史表中无表结构,需应用软件的数据库编辑,初始化历史库-创建系统表和其他表,就能用恢复向导填写一部分数据了。