Rumah > pangkalan data > tutorial mysql > 怎么解决数据库表空间不足

怎么解决数据库表空间不足

一个新手
Lepaskan: 2017-09-08 10:32:18
asal
12551 orang telah melayarinya

一、数据库表空间不足导致了,插入操作会报出

conn.msg = ORA-01653: 表 *******表名字********无法通过 8192 (在表空间 USERS 中) 扩展
ORA-06512: 在 "调用的函数", line 58
ORA-01403: 未找到任何数据
 [db.cpp:233]
Salin selepas log masuk

这个操作报出 查询得到是数据表空间大小不足导致。

二、查看表空间占用的一些相关信息

--查询表空间大小 占用的内容

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
  D.TOT_GROOTTE_MB "表空间大小(M)",
  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
  F.TOTAL_BYTES "空闲空间(M)",
  F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
  FROM SYS.DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME) F,
  (SELECT DD.TABLESPACE_NAME,
   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
  FROM SYS.DBA_DATA_FILES DD
  GROUP BY DD.TABLESPACE_NAME) D
  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
  ORDER BY 1;
Salin selepas log masuk

结果:

这个是所有的表的空间的所有的占用的信息大小,表的空间大小是分配给表空间的所有大小信息。使用比如果比较高的话可能就会出现空间不足的情况导致数据无法插入。

三、查询表空间对应的物理磁盘的绝对地址和大小和文件ID

---查询数据文件以及数据文件大小

select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
Salin selepas log masuk

四、以下三种都可以进行对表空间增加大小

1、直接不改变之前的DBF文件,另外添加一个文件的语句,可以增加表空间的大小

--让数据文件自动扩展

alter tablespace users add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' size 32760m autoextend on next 1024m maxsize unlimited; 
--segment space management auto extent management local;
Salin selepas log masuk

据说可以连接上一句一起执行(把上一句分号去掉即可),没执行,不知道执行效果,谨慎期间,慎用

2、--让数据文件自动扩展 在源文件中直接改动表空间大小 设置成自动扩展的形式 增速是以100m的大小自动扩展 扩展最大到10000m为止

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' autoextend on next 100m maxsize 10000m
Salin selepas log masuk

3、--把数据文件大小调整 重新调整源文件的内容大小 不是自动扩展的 直接写死的大小情况

alter database  datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF'  resize  500M;
Salin selepas log masuk

五、把4的上面的操作执行完之后 在进行查询就可以看到分配的总空间有了很大的增加 占用率占用下降。

Atas ialah kandungan terperinci 怎么解决数据库表空间不足. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan