返回列表 发帖

[技术文章] Oracle数据库表空间超过32G的解决办法

Oracle数据库是由一个个表空间构成,表空间是由多个数据文件,数据文件又是区间构成,区由Oracle块构成。

Oracle表空间数据文件大小的限制

由于Oracle的Rowid使用22位来代表数据块号,因此Oracle表空间数据文件每个数据文件最多只能包含2^22个数据块。

也因此数据库表空间的数据文件不是无限增长的,例如:

在数据块为8k的情况下,单个数据文件的最大容量为8K*2^22 = 32G

同理,

数据块为2K,数据文件最大约8G

数据块为32,数据文件最大约16*8G

故若达到这个最大容量之后,则即便是设置了自增长,也不是无限自增长,此时则需要为这个表空间添加数据文件。

使用下面的语句给当前的表空间sde增加一个数据文件,这个数据文件sde_03.dbf不需要手动建,路径写好,执行时会自动创建:
  1. --给空间不足的用户增加一个数据文件
  2. 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;
  3. --查看oracle的表空间路径语句,以下2个都行,第一个全一点

  4. Select * FROM DBA_DATA_FILES;
  5. select name from v$datafile;
复制代码
欢迎光临:逐梦论坛

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 鲁公网安备 37120302000001号