参考:
oracel bigfile tablespace:(推荐)
http://blog.chinaunix.net/uid-20779720-id-3078273.html
ora-01652解决
http://www.cnblogs.com/songling/archive/2011/03/04/1970965.html
出现: ora-01652无法通过128(在表空间xxx中)扩展temp段
这种错误可能曾在两种原因:(下面两种情况针对普通的smallfile tablespace)
注:默认情况下我们创建表空间时,都是smallfile tablespace,除非我们指定了为create bigfile tablespace
1. 如果xxx表空间的数据文件没有达到上限(一般32G),则可能是临时表空间大小不够了,这种情况下,我们可以通过修改临时表空间的大小或者将临时表空间改为autoextend模式,这样一般就可以解决问题。临时表空间在进行大数据的排序等操作时如果表空间太小容易产生这种情况。另外,如果是临时表空间,还有可能是临时表空间爆满导致的,此时可以通过删除临时表空间重建这种简单粗暴的方式解决。
-- --删除表空间及数据文件 drop tablespace worktmp including contents and datafiles cascade constraints; -- --创建临时表空间 create temporary tablespace worktmp tempfile ' /Oracle11R2/oradata/PMPTGDB/worktmp.dbf ' size 1024M autoextend on next 100m maxsize unlimited;
临时表空间
临时表空间主要用途是在 数据库 进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、 管理 索引[如创建索引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。
2. 如果xxx表空间的数的数据文件过大,达到了上限(一般32G),此时无法自动扩展表空间了,在这中情况下,就需要给表空间添加新的数据文件来解决这一问题。
-- -- 给指定的表空间添加数据文件 alter tablespace work add datafile ' /media/hdd1/oradata/PMPTGDB/work1.dbf ' size 1024M autoextend on next 100m maxsize unlimited;
查看表空间的相关sql语句:
-- -- 查看表空间 select * from dba_tablespaces; -- -- 查看表空间细节 select tablespace_name, file_name ,bytes / 1024 / 1024 file_size,autoextensible from dba_data_files; -- dba_temp_file
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_file;
-- -- 查看用户表空间信息
select username,temporary_tablespace,default_tablespace from dba_users;
-- -- 修改表空间为自动扩展
alter database tempfile ' /Oracle11R2/oradata/PMPTGDB/worktmp.dbf ' autoextend on next 100m maxsize unlimited;