ORA-01654_TableSpace空间不足问题处理

操作环境:Windows Server 2008 R2,32位Oracle11g R2。

导入大批量数据时报如下错误信息:

ORA-01654: 索引IOT.IDX_IOT_EQUIP_ID无法通过1024(在表空间USERS中)扩展

百度发现出现这种情况的可能是表空间不足,通过如下SQL统计表空间使用情况,发现确实空间剩余不多。

-- 查看所有表空间的数据使用情况
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 1

目前所有的表都放在了USERS表空间中,已经扩展到了32GB,目前使用了99.98%,剩余8M。空间确实不足,需要进行扩展。

通过如下SQL扩展表空间大小

alter database datafile ‘D:\app\Administrator\oradata\orcl\USERS01.DBF‘ resize 51200M

发现又报了另外一个错误:

百度发现默认表空间数据文件大小根据DATA BLOCKS的大小有关,默认最大为32GB,目前USERS表空间对应的数据文件USERS01.DBF已经达到了32个GB,无法再进行扩展了。

解决办法是增加表空间数据文件。

通过如下SQL增加表空间数据文件

alter tablespace USERS add datafile ‘D:\app\Administrator\oradata\orcl\USERS02.DBF‘ size 10240M;

以上SQL语句为USERS表空间创建了一个名称为USERS02.DBF的数据文件,该数据文件默认大小为10GB。

此时,USERS表空间有了两个数据文件。

再次执行表空间使用情况SQL语句,查看表空间使用情况。

时间: 2024-10-29 19:05:44

ORA-01654_TableSpace空间不足问题处理的相关文章

Oracle数据库迁移

1 在数据迁移时,用户首先有权限修改数据库,并且进行表空间创建.删除等权利 例如: select * from dba_tab_privs where grantee='SCOT'; ---查看SCOTT权限(sys用户登录) 显示结果为: select * from dba_role_privs where grantee='SCOT'; --查看SCOTT角色 显示结果为: (1) 如果用户被锁定通过以下语句来解锁表 alter user scott account unlock; --解锁

oracle学习笔记(转)

命令行操作:打开服务: services.msc启动Oracle: net start OracleOraHome92TNSListener     net start OracleService实例名停止Oracle: net stop OracleOraHome92TNSListener            net stop OracleService实例名打开Enterprise Manager Console: oemapp.bat console即会出现enterprise mana

oerr ora 000845解决方法是扩大/dev/shm空间

打开虚拟机发现实例起不来 [[email protected] ~]# su - oraclesq[[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 14:59:54 2016 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to an idle instance. [ema

Oracle 12c创建PDB用户并设置默认表空间

Oracle12c 中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB).CDB全称为 ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库.下面是官方文档关于CDB与PDB的关系图. 在CDB中,只能创建以c##或C##开头的用户,如果不加c##,则会提示错误“ORA-65096:公用用户名或角色名无效”,只有在PDB数据库中才能创建我们习惯性命名的用户,oracle称之为Loca

解决临时表空间的报错

报错信息:[HY000](1652) [Oracle][ODBC][Ora]ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段 原因分析:oracle临时表空间不足,事务执行一般将会报ora-01652无法扩展临时段的错误.因为oracle总是尽量分配连续空间,一旦没有足够的可分配空间或者分配不连续就会出现上述的现象. 回忆下临时表空间的作用: 临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.unio

普通表空间的热备及模拟故障恢复

创建目录:[[email protected] ~]$ mkdir hot_bk 先查看归档是否打开(热备一定要打开) SQL> archive log list Database log mode              No Archive Mode Automatic archival             Disabled Archive destination            /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch O

Oracle 创建表空间和用户

一.在Windows系统下, 请先点击“开始”,然后点“运行”,输入cmd并点击“确定”,打开命令行窗口输入以下命令: sqlplus   /nolog 回车后,将出现提示符 SQL> 这时输入       conn   /   as   sysdba 一般即可登录,如果失败的话,可以试一下用conn    sys/sys用户的密码   as sysdba来重试一下 接下来,我们看看您当前的数据库文件一般都是放在哪里的: select    name    from    v$datafile;

DG备库磁盘空间满导致无法创建归档

上周五去某客户那里做数据库巡检,是window 2008系统上10g的一套NC系统的库,已经配置了DG,但是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Standby redo logfile selected for thread 1 sequence 3945 for destination LOG_ARCHIVE_DEST_2 Tue Nov 11 10:14:29 2014 Errors in file d:\oracle\product\10.2

17_Oracle_Admin_表空间的管理方式以及UNDO和临时表空间

一.表空间的管理   数据库表空间的管理主要分为两种: 1.数据字典的表空间管理--当空闲的extents释放了,数据字典中的表会做相应的调整,它相当于中央控制,对全局进行管理 2.本地表空间的管理--tablespace自身来管理空闲的extents:Bitmap位图用来记录extents空闲与否,每一个extent对应位图上的一位,其中1表示extent被占用,0表示没有被占用. 如果SYSTEM是本地管理的,那么该数据库将不支持表空间的数据字典管理方式. 使用数据字典进行中央管理,需要定期

RAC实例 表空间 维护

先配置一下监听,这样我们就可以从客户端进行连接了. 我这里写了三种连接. 第一种是正常方式,一般都采用这种方式,后面的rac1和rac2 是方便测试.因为如果用第一种方式的话,客户端连哪个实例是随机的,不好进行控制,除非手动的关闭某个实例,让Oracle 漂过去,那样有点麻烦. 我就又多添加了2个监听,分别对应实例1和实例2.  配置这2个监听的时候,要注意Service_name 这个参数,也是orcl. 即全局名. 不是对应的实例名. Oracle 实例监听: RAC = (DESCRIPT