ORA-00604: 递归sql级别1出现错误

ORA-01654:索引SYS.I_COL1 无法通过 128 (在表空间SYSTEM中) 扩展

这种情况是表空间不够需要查看表空间的容量,和表空间所对应的数据文件

连上数据查看表空间情况:

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 4 DESC;

通过这条sql可以看出SYSTEM表空间已经使用了99.98,表空间不够了

SYSTEM表空间不足
查看表空间文件名称和是否自动增长
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;

增加表空间大小
alter database datafile '/opt/app/oracle/oradata/oradb/system01.dbf' resize 64000m;

同样也报错

然后我选择在原路径上新建一个数据文件

新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND(自动扩展) ON NEXT 5M MAXSIZE 100M(unlimited无限制);

之后发现还是报错,然后我就去看了lunix磁盘情况

然后发现u01磁盘满了.最后数据文件在data目录下新建了一个,就解决了这个问题(希望对大家有帮助吧)

注:

表空间在初始建立的时候最好设置成自动扩展的,如果没有设置成zhi扩展的,则有四种方法可以增加表空间的大小,其中增加数据文件是经常用的一种。四种方法如下:

①:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;

②:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

③:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

④:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;

注:查询临时表空间:select name,status from v$tempfile;

1 为空间不足的表空间增加数据文件
ALTER TABLESPACE &tablespace_name ADD DATAFILE '&datafile_name' SIZE 2G;
2 如果要为临时表空间扩容,使用下面的语句
ALTER TABLESPACE &tablespace_name ADD TEMPFILE '&datafile_name' SIZE 2G;

上面那两个其实差不多都是增加数据文件

--1.查看表空间使用率(包括临时表空间)

select *
  from (Select a.tablespace_name,
               to_char(a.bytes / 1024 / 1024, '99,999.999') total_bytes,
               to_char(b.bytes / 1024 / 1024, '99,999.999') free_bytes,
               to_char(a.bytes / 1024 / 1024 - b.bytes / 1024 / 1024,
                       '99,999.999') use_bytes,
               to_char((1 - b.bytes / a.bytes) * 100, '99.99') || '%' use
          from (select tablespace_name, sum(bytes) bytes
                  from dba_data_files
                 group by tablespace_name) a,
               (select tablespace_name, sum(bytes) bytes
                  from dba_free_space
                 group by tablespace_name) b
         where a.tablespace_name = b.tablespace_name
        union all
        select c.tablespace_name,
               to_char(c.bytes / 1024 / 1024, '99,999.999') total_bytes,
               to_char((c.bytes - d.bytes_used) / 1024 / 1024, '99,999.999') free_bytes,
               to_char(d.bytes_used / 1024 / 1024, '99,999.999') use_bytes,
               to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use
          from (select tablespace_name, sum(bytes) bytes
                  from dba_temp_files
                 group by tablespace_name) c,
               (select tablespace_name, sum(bytes_cached) bytes_used
                  from v$temp_extent_pool
                 group by tablespace_name) d
         where c.tablespace_name = d.tablespace_name)
 order by tablespace_name

--2.查看文件是否自动扩展
select d.file_name,d.tablespace_name,d.autoextensible from dba_data_files d
--如果想查看临时表空间文件是否自动扩展
select d.file_name,d.tablespace_name,d.autoextensible from dba_temp_files d;
--3.对临时文件进行扩展。
--1)TOSTEMP表空间使用率接近100%,对它进行扩展。
--SQL> alter database tempfile  'C:xxxxxx\TOSTEMP01.DBF'resize 500M;
--2)若是发现 表空间使用率接近100%,且不可扩展修改文件自动可扩展性
--alter database datafile/tempfile 'E:xxxxxxESCALADE.ORA' autoextend on;

--4.查看临时表空间使用率:

select c.tablespace_name,

to_char(c.bytes/1024/1024/1024,'99,999.999') total_gb,

to_char( (c.bytes-d.bytes_used)/1024/1024/1024,'99,999.999') free_gb,

to_char(d.bytes_used/1024/1024/1024,'99,999.999') use_gb,

to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use

from  (select tablespace_name,sum(bytes) bytes

from dba_temp_files GROUP by tablespace_name) c,

(select tablespace_name,sum(bytes_cached) bytes_used

from v$temp_extent_pool GROUP by tablespace_name) d

where c.tablespace_name = d.tablespace_name;

--5.查询那些用户在使用

select a.username,

a.sql_id,

a.SEGTYPE,

b.BYTES_USED/1024/1024/1024||‘G’,

b.BYTES_FREE/1024/1024/1024  from   V$TEMPSEG_USAGE  a  join  V$TEMP_SPACE_HEADER b on   a.TABLESPACE=b.tablespace_name;

解释username  正在执行sql的用户名

sql_id    正在执行的sql的的sql_id

segtype   正在执行的SQL语句做的是什么操作

BYTES_USED 正在执行sql语句使用的临时表空间的大小

BYTES_FREE  剩余多少临时表空间

oracle解决表空间不足问题相关推荐

  1. oracle 删除空间不足,oracle表空间扩容、创建、删除(解决表空间不足问题)

    前言 整理一下之前使用oracle数据库遇到的表空间不足的问题,顺便水个博客. oracle表空间操作语句 1.改变已存在的数据文件的大小 ALTER TABLESPACE app_data ADD ...

  2. oracle误删除表空间的数据文件

    事故原因: 1.由于误操作用hp unix 命令 rm -f datafilename 删除表空间的数据文件 2.alter tablespace tablespacenaem drop datafi ...

  3. Oracle的表空间和sqlplus

    Oracle的表空间和sqlplus 1.  表空间的概念 曾经接触过的数据库都没有听到过表空间这个词,在前一段时间看到Oracle数据库的时候发现表空间无处不在. 所以表空间在Oracle数据库中应 ...

  4. oracle 创建表空间

    一.启动数据 $sqlplus "sys/pass as sysdba" sql>startup 二.启动监听器 数据库启动后,如果未启动监听进程,则客户端无法与数据库连接. ...

  5. oracle 查看表空间总量,oracle 查看表空间以及剩余量

    --1.查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tabl ...

  6. ORA-01658:oracle创建表空间时指定的UNLIMITED真的是UNLIMITED吗?

    背景介绍 最近,同事说在执行ETL的过程中oracle报错 ORA-01658: unable to create INITIAL extent for segment in tablespace X ...

  7. oracle创建用户表空间6,Oracle创建表空间,添加用户及授权

    工具/原料 PLSQL 方法/步骤 1.在PLSQL里,用system/css(orcl系统用户)登陆,登陆的时候普通用户登陆选择normal就可以了 2.Oracle用户新增 执行语句 create ...

  8. oracle的创建表的脚本,oracle创建表空间脚本

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. /*分为四步 */ /*第1步:创建临时表空间 */ create temporary t ...

  9. oracle系统表空间不足,oracle表空间不足相关问题解决办法

    oracle 临时表空间和数据表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放临时表空间,如果不能重启实例, ...

最新文章

  1. 公开SNS社区即时找朋友链的源代码和部署方案(续四)
  2. 深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)
  3. 消息队列之推还是拉,RocketMQ 和 Kafka是如何做的?
  4. Exchange 2010 OWA 无法使用关键字搜索
  5. 正则表达式(一) -- 元字符(转)
  6. 品牌直播启动的三个关键点
  7. 机器学习ai选股_机器学习技术能够有效用于选股吗?(下)
  8. 程序员面试金典——9.1上楼梯
  9. C++ 0x/11学习笔记
  10. 富士胶片滤镜人像调色预设PS插件
  11. java无法双击打开.jar文件/jar包以压缩文件显示
  12. golang vendor目录
  13. 注册Google邮箱,也许你就差这一步
  14. Vue中router-view和子路由的使用方法
  15. 转:solr 从数据库导入数据,全量索引和增量索引(实例配置原理)
  16. Proteus VSM STM32仿真原理图绘制与设置
  17. 6大B2C购物系统比较
  18. 连续签到积分兑换试用流量主小程序开发
  19. 怎么控制当前页面不左右滑动,可以上下滑动
  20. 猜数字游戏代码+设计思路分析

热门文章

  1. 《持续集成实践指南》第2章 持续集成环境搭建Jenkins+Gitlab+Gerrit
  2. 商业银行资产管理理论之:商业贷款理论、转移理论和预期收入理论
  3. 二叉树的前序、中序、后序、递归以及非递归遍历
  4. 作为站长,给火绒吹一次,论杀毒谁强?
  5. PowerPoint让你快速成为PS高手——抠图
  6. Swift-UITableView快捷创建(刨坟用)
  7. Anaconda创建虚拟环境并在Pycharm中使用创建好的环境
  8. 通过RK3568实现的NVR方案
  9. 深入解析:如何修复SSL / TLS握手失败错误(上)
  10. SCAPE: shape completion and animation of people