日期:2014-05-16  浏览次数:20381 次

修改表空间
由于在最开始建立表空间时,表空间设的不够大,而且不是AUTOEXTEND的,今天发现不够用了,数据导不进去。
现在要做的事情有两个,一是把表空间调整大一些,另一个是把表空间设置成可以自动扩展的。

与表空间有关的几个视图如下:

select * from dba_tablespaces;
select * from dba_temp_files;
select * from dba_data_files;

select * from dba_free_space;
select * from v$tempfile;
select * from v$datafile;

扩展表空间文件大小的语法如下:
alter database [datafile name/tempfile name] resize [new_size];
alter database datafile ‘E:\EFMP\ORADATA\EFMP_DATA1.DBF’ resize 1024M;
alter database tempfile ‘E:\EFMP\ORADATA\EFMP_TEMP2.DBF’ resize 800M;
修改表空间属性的语法如下:
alter database [datafile name/tempfile name] autoextend on next [increment_size] maxsize [max_size/unlimited];
alter database datafile ‘E:\EFMP\ORADATA\EFMP_DATA1.DBF’ autoextend on next 5M maxsize 2048M;
alter database tempfile ‘E:\EFMP\ORADATA\EFMP_TEMP2.DBF’ autoextend on next 5M maxsize 1024M;
要留意操作系统和相关的工具(例如备份软件)在文件尺寸上有限制。在重新调整数据文件或开启Oracle的数据文件自动扩展特性前,必须熟悉你的操作系统的限制。

表空间使用久了,特别是在开发阶段,经过频繁的表、视图等对象的添加删除,会产生碎片。
整理碎片最好的方式是将数据导出,然后删除掉表空间,重建表空间,再导入数据。