ORACLE ORA-01653: unable to extend table 的错误处理方案(oracle报错)

前几天项目在运行的时候数据库数据插入突然报:

ORA-01653: unable to extend table HSDC.ADDRESS by 128 in tablespace DATACENTER

大概的意思是说HSDC表空间不足了,在网上搜了一下出现这种表空间不足的问题一般有两种情况:一种是表空间的自动扩展功能没有打开;另一种确实是表空间确实不够用了,已经达到了扩展的极限。所以我们解决问题就应该先去查看Oracle表空间大小,然后看一下Oracle表空间的自动扩展功能是否打开;若确实是表空间不够用了就需要扩展表空间;

具体步骤如下:

1.在Navicat中直线如下命令 :

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

“表空间大小(M)”表示表空间所有的数据文件总共在操作系统中占用磁盘空间的大小;

比如:HSDC表空有两个数据文件,datafile1为300M,datafile2为400M,那么HSDC表空间的“表空间大小”就是700M。

“已使用空间(M)”表示表空间已经使用了多少;

“空闲空间”表示表空间剩余多少;

”使用比“表示已经使用的百分比;

2,比如从步骤1中查看到HSDC表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。

SELECT file_name,
tablespace_name,
bytes / 1024 / 1024 "bytes MB",
maxbytes / 1024 / 1024 "maxbytes MB"
FROM dba_data_files
WHERE tablespace_name = 'HSDC';

3.查看DATACENTER表空间是否为自动扩展;

SELECT file_id, file_name, tablespace_name, autoextensible, increment_by
FROM dba_data_files
WHERE tablespace_name = 'HSDC'
ORDER BY file_id desc;

查看”autoextensible“对应的值是YES还是NO,若是NO,说明DATACENTER表空间的自动扩展功能没有开。改成YES就可以了。

4.如果是表空间不够用了,快写满了,我们就需要扩大表空间

扩大表空建又分两种:一种增大数据文件大小,一种是增加数据文件数量;

首先找出该表空间对应的数据文件及路径:

SELECT * FROM dba_data_files t WHERE t.tablespace_name='TBS_DATACENTER';

解决方法一:增大数据文件

alter database datafile '全路径的数据文件名称' resize ***M;  #增加对应的表空间里面某个数据文件的大小***M

解决方法二:增加数据文件

获取创建表空间数据文件的语句:

SELECT dbms_metadata.get_ddl('TABLESPACE', 'USER_DATA') FROM dual;

①、确认磁盘空间足够,增加一个数据文件

alter tablespace 表空间名称 add datafile '全路径的数据文件名称' size ***M
autoextend on maxsize 20G;

--新增一个数据文件,全路径的数据文件名称为改新增数据文件的全路径文件名称。大小为***M,自动扩展功能打开,且该数据文件的最大扩展值为20G。

②、验证已增加的数据文件

SELECT file_name, file_id, tablespace_name
FROM dba_data_files
WHERE tablespace_name = '表空间名称'

注:如果删除表空间数据文件语句为:

altertablespace 表空间名称
DROP datafile '/u01/app/oracle/product/10.2.0/oradata/orcl/HSDC.dbf '

PS:表空间一般让空闲百分比保持在10%以上,且数据文件大小最好不要超过2G。当表空间不足时,要么resieze datafile,要么增加datafile。

到此这篇关于ORACLE ORA-01653: unable to extend table 的错误处理方案的文章就介绍到这了,更多相关oracle ORA-01653内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • oracle报错(ORA-00600)问题处理

    告警日志里这两天一直显示这个错误: ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] TueAug1209:20:17CST2014 Errorsinfile/u01/app/oracle/admin/orcl/udump/orcl_ora_29974.trc: ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[

  • Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)

    用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考.  解决方案一: 今天工作时在新建连接的时候遇到ORA-12505,解决后又遇到ORA-12519错误. ORA-12505: 之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not

  • oracle表空间不足ORA-01653的问题: unable to extend table

    目录 具体步骤如下: 解决方法一:增大数据文件 解决方法二:增加数据文件 oracle报错:ORA-01653: unable to extend table DATAX.sqlserver_t1_copy by 1024 in tablespace DATAX_TEST 参考:https://www.jb51.net/article/258188.htm 大概的意思是说DATAX_TEST表空间不足了,在网上搜了一下出现这种表空间不足的问题一般有两种情况:一种是表空间的自动扩展功能没有打开:另

  • Oracle实例启动时报错:ORA-32004的解决方法

    前言 前段时间,早上刚到公司,打开电脑就发现启动Oracle实例的时候报了下面的错误: SQL> startup nomount; ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated ORA-07286: sksagdi: cannot obt

  • ORACLE ORA-01653: unable to extend table 的错误处理方案(oracle报错)

    前几天项目在运行的时候数据库数据插入突然报: ORA-01653: unable to extend table HSDC.ADDRESS by 128 in tablespace DATACENTER 大概的意思是说HSDC表空间不足了,在网上搜了一下出现这种表空间不足的问题一般有两种情况:一种是表空间的自动扩展功能没有打开:另一种确实是表空间确实不够用了,已经达到了扩展的极限.所以我们解决问题就应该先去查看Oracle表空间大小,然后看一下Oracle表空间的自动扩展功能是否打开:若确实是表

  • 解决Android studio 3.6.1 出现Cause: unable to find valid certification path to requested target 报错的问题

    1.首先修改根目录下的build.gradle成如下格式 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' } maven { url 'http:

  • Oracle ORA 07445 evaopn2()+128错误问题的解决方案

    问题描述 Plsql developer执行一段sql报错: 经查alert log详细报错信息为: ORA-07445: exception encountered: core dump [evaopn2()+128] [SIGSEGV] [Address not mapped to object] [0x000000000] [] [] 数据库版本 10.2.0.4.0 问题原因 复杂视图合并问题导致的oracle bug 解决方法 1.修改隐藏参数: alter system set "_

  • Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题

    现象 tomcat错误日志断断续续报ORA-00903: invalid table name,并无具体SQL与表名,需要排查哪段代码写入了无效表名, 可以通过ORACLE提供的errorstack追踪报错SQL. 由于生产数据无法取出,以下皆为测试环境测试还原生产错误. errorstack简介 设置errorstack,在发生特定的ORA错误时会记录发生问题的会话,语句以及各个进程的trace文件, 在alert日志中有记录错误记录的trace文件位置,也可以给单独会话开启errorstac

  • Python连接Oracle之环境配置、实例代码及报错解决方法详解

    Oracle Client 安装 1.环境 日期:2019年8月1日 公司已经安装好Oracle服务端 Windows版本:Windows10专业版 系统类型:64位操作系统,基于x64的处理器 Python版本:Python 3.6.4 :: Anaconda, Inc. 2.下载网址 https://www.oracle.com/database/technologies/instant-client/downloads.html 3.解压至目录 解压后(这里放D盘) 4.配置环境变量 控制

  • Oracle dbca时报:ORA-12547: TNS:lost contact错误的解决

    前言 最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧. 环境: OS:RHEL6.5 x86-64bit DB:11.2.0.4 for Linux 86-64bit 思路: DBCA报错,首先看DBCA的日志,日志中也是报ORA-12547: TNS:lost contact 于是再sqlplus / as sysdba敲回车,也是

  • Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    最近做一个批量导入的需求,将多条记录批量插入数据库中. 解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis,所以打算使用MyBatis的foreach功能进行批量插入.期间遇到了"SQL 命令未正确结束 "的错误,最终解决,记录下来供以后查阅和学习. 首先,在网上参考了有关Mybatis的foreach insert的资料,具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach

  • oracle 实际值超过数据库某个字段指定长度报错解决

    ORA-01438: value larger than specified precision allowed for this column 实际值的长度大于了数据库里某个字段允许的最大长度导致的插入失败问题. 常见的场景是oracle sequence自动增长,系统用到一定的时候,sequence的值不断的增大,系统开始报错. 解决方法:更改字段的长度解决

随机推荐