ORA-01691: unable to extend lob segment 解决方案 Oracle表空间的数据文件满了

报错信息:

ORA-01691: unable to extend lob segment YUNYAO.SYS_LOB0000152921C00013$$ by 1024 in tablespace USERS

针对此问题查了一些文章,排查到原因是表空间“USERS”的数据文件满了,到达最大值。

可能会出现的原因如下:

1、达到了数据文件的设定大小,未设置自动增长

2、数据文件设置了自动增长,但已达到单个数据文件最大支持的32G

3、磁盘物理存储空间不足

这里我排查到的问题原因是2,我这里会介绍1、2原因的解决办法,排查步骤如下:

查看数据文件地址

SELECT 
    a.tablespace_name "tbs name", b.NAME "file path" 
FROM 
    dba_tablespaces a, v$datafile b, v$tablespace c 
WHERE a.tablespace_name = c.NAME 
AND c.ts# = b.ts#

 通过地址找到对应文件,可以看到文件已达最大值(users03.dbf是我解决之后增加的文件)

 还有另一种方式,查看表空间使用情况

--查询库中所有表空间使用情况
SELECT a.tablespace_name,                               --"表空间名称",
       a.bytes / 1024 / 1024,                           --"表空间大小(M)",
       (a.bytes - b.bytes) / 1024 / 1024,               --"已使用空间(M)",
       b.bytes / 1024 / 1024,                           --"空闲空间(M)",
       round(((a.bytes - b.bytes) / a.bytes) * 100, 2) --"使用比"
FROM (SELECT tablespace_name, sum(bytes) bytes
      FROM dba_data_files
      GROUP BY tablespace_name) a,
     (SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest
      FROM dba_free_space
      GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC

可以看到表空间的使用比,及空闲空间(此图为解决问题后的截图,解决之前使用比已超过99% )

 如果问题原因是1,那么执行如下语句(这里是模仿我的情况写的例子,需将变量改为实际值)

--修改表空间大小
--alter database datafile '数据文件路径' resize 需扩展大小(单位M);
alter database datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' resize 4096M

--修改表空间为自动增长
--alter database datafile '数据文件路径' autoextend on next 500M maxsize unlimited
alter database datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' autoextend on next 500M maxsize unlimited

如果问题是2,那么执行如下语句,给表空间USERS增加数据文件user03.dbf,并设置默认大小为4096M,自动增长每次扩展500M,无上限(当然物理上限还是有的,32G)

ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/ORCL/users03.dbf' SIZE 4096M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值