首先查询表空间的大小以及文件路径地址
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
解决方案一
//修改表空间大小(32000可改为想要的数值)
alter database datafile '要修改的数据文件地址' resize 32000m;
解决方案二
//新增数据文件
AL
前言
最近在数据库的一张表添加两个字段,后来提示什么磁盘空间不足什么什么的,后来数据库就断开连接了,之后就一直连接不上去后来,最后经过思考终于解决了这个问题,这一经历下来真是心惊胆战,本文作为记录一下磁盘空间不足导致的 mysql 无法启动的解决办法。
方法如下
操作系统:ubuntu,磁盘空间不足导致的 mysql 无法启动,会造成如下问题:
rootiZ28z558vv0Z:/etc/mysql# mysql -u root -p
Enter password:
ERROR 2002
废话不多说了,具体代码如下所示:
--SYSTEM表空间不足的报警
登录之后,查询,发现是sys.aud$占的地方太多。
SQL> select owner, segment_name, segment_type, sum(bytes)/1024/1024 space_m
from dba_segments
where tablespace_name = 'SYSTEM'
group by owner, segment_name, segment_type
having sum
故障现象:临时表空间不足的问题已经报错过3次,客户也烦了,前两次都是同事添加5G的数据文件,目前已经达到40G,占用临时表空间主要是distinct 和group by 以及Union all 表数据量在200W左右,也不至于把40G的临时表空间撑爆。
原因分析:既然排序用不了这么多临时表空间应该是别的原因造成。
从包含故障时间段的AWR报告中可以看出这一阶段DBtime蛮高的,并且sql execute elapsed time 竟然占到了99.43%,可以断定是SQL语句引起的。
通过TO