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;

 

posted @ 2020-12-11 12:05  北湮  阅读(5770)  评论(0编辑  收藏  举报