oracle表空间超过32G解决办法
Oracle数据库是由一个个表空间构成,表空间是由多个数据文件,数据文件又是区间构成,区由Oracle块构成。
1.Oracle表空间数据文件大小的限制
由于Oracle的Rowid使用22位来代表数据块号,因此Oracle表空间数据文件每个数据文件最多只能包含2^22个数据块。
也因此数据库表空间的数据文件不是无限增长的,例如:
在数据块为8k的情况下,单个数据文件的最大容量为8K*2^22 = 32G
同理,
数据块为2K,数据文件最大约8G
数据块为32,数据文件最大约16*8G
故若达到这个最大容量之后,则即便是设置了自增长,也不是无限自增长,此时则需要为这个表空间添加数据文件。
使用下面的语句给当前的表空间sde增加一个数据文件,这个数据文件sde_03.dbf不需要手动建,路径写好,执行时会自动创建
--给空间不足的用户增加一个数据文件 alter tablespace SDE add datafile 'D:\app\Administrator\product\11.2.0\dbhome_1\database\SDE_03.DBF' size 400M autoextend on next 50M Maxsize UNLIMITED; --查看oracle的表空间路径语句,以下2个都行。第一个全一点 Select * FROM DBA_DATA_FILES; select name from v$datafile;