Oracle 表空间扩容

报错:ORA-03234: unable to extend index...

它只说明一件事:Oracle 在为该子分区分配下一个 extent 时,在指定的表空间里已经找不到连续的可用空间了。

查询表空间内存使用情况:

sql 复制代码
SELECT df.tablespace_name 表空间名,
       df.file_name 表空间位置,
       ROUND(df.bytes/1024/1024,2) || 'MB' 总内存,
       ROUND((df.bytes - NVL(fs.bytes,0))/1024/1024,2) || 'MB' 已使用的内存,
       ROUND(NVL(fs.bytes,0)/1024/1024,2) || 'MB' 剩余空间,
       TO_CHAR(ROUND((df.bytes - NVL(fs.bytes,0))/df.bytes*100,2), 'FM990.00') || '%' 使用率,
       df.autoextensible 是否开启自动扩容
FROM   (SELECT file_id, tablespace_name, file_name, bytes, autoextensible
        FROM   dba_data_files
        /*WHERE  tablespace_name IN ('')*/) df
LEFT JOIN
       (SELECT file_id, SUM(bytes) bytes
        FROM   dba_free_space
        GROUP  BY file_id) fs
ON  df.file_id = fs.file_id
ORDER  BY df.tablespace_name, df.file_name;

查询结果示例:

如果看到使用率高达99%时,并且没有开启自动扩容,就说明表空间里的内存就不够了,这个时候就需要扩容处理。

先确认数据库块文件大小

sql 复制代码
select value from v$parameter where name = 'db_block_size';

如果查询结果是 8192,单文件最大块数:4 194 303 块(Oracle 硬限制)。

此时数据库单文件最大 = 4 194 303 × 8 KB ≈ 32 GB,可以根据自己的来计算文件大小。

扩容方案

1、直接抬高原文件上限(一般没有设置自动扩容)

先查询一下,如果表空间总内存小于文件支持的文件大小,就可以直接进行扩容,如扩展到30G(在线、不停库、不中断业务)。

sql 复制代码
ALTER DATABASE DATAFILE '/oracle/oradata/GRP.dbf' RESIZE 30G;

2、再加一个数据文件(通常用于单个文件大小已经满了的情况)

如果表空间大小已经设置为单个文件可以达到的最大内存时,就需要给这个表空间再新增一个数据文件。

sql 复制代码
ALTER TABLESPACE 表空间名
  ADD DATAFILE '/路径/文件名02.dbf'
  SIZE 30G;

这里的 '/路径/文件名02.dbf' 就是一开始给的 sql 查出来的表空间位置,然后把修改一下文件名,再执行,不需要自己建数据文件,执行 sql 后会自动创建文件(在线、不停库、不中断业务)。

创建完成后,可以再查一下表空间内存使用情况,就会发现同一个表空间多了一个数据文件,并且文件使用率为 0%。

!!!别忘检查磁盘剩余空间

如 linux 系统:df -h 表空间位置。

如果文件系统只剩 2 GB,你把 MAXSIZE 调到 200 GB 也白搭。

相关推荐
神梦流4 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
让学习成为一种生活方式4 小时前
trf v4.09.1 安装与使用--生信工具42-version2
数据库
啦啦啦_99994 小时前
Redis-5-doFormatAsync()方法
数据库·redis·c#
生产队队长4 小时前
Redis:Windows环境安装Redis,并将 Redis 进程注册为服务
数据库·redis·缓存
老邓计算机毕设4 小时前
SSM找学互助系统52568(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 毕业设计
痴儿哈哈4 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Σίσυφος19005 小时前
PCL法向量估计 之 方向约束法向量(Orientation Guided Normal)
数据库
老毛肚5 小时前
手写mybatis
java·数据库·mybatis
海山数据库5 小时前
移动云大云海山数据库(He3DB)postgresql_anonymizer插件原理介绍与安装
数据库·he3db·大云海山数据库·移动云数据库
云飞云共享云桌面5 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能