精华内容
下载资源
问答
  • ORA-00257Oracle释放archivelog空间 主要分两步处理:第一步删除物理文件,注意删除的是早期日志;第二步释放逻辑空间,登录RAMN,释放逻辑空间
  • Oracle释放archivelog空间  plsql登录数据库时候提示ORA-00257,处理过程如下: 思路: 1、 删除物理文件 2、 登录RMAN释放archivelog空间 过程: 删除物理文件 登录oracle服务器 # su – oracle  $...

    Oracle释放archivelog空间                          

    plsql登录数据库时候提示ORA-00257,处理过程如下:

    思路:

    1、  删除物理文件

    2、  登录RMAN释放archivelog空间

    过程:

    删除物理文件

    登录oracle服务器

    # su – oracle    

    $sqlplus /nolog   

    Sql> conn /as sysdba    dba权限操作

    Sql> select* from v$flash_recovery_area_usage;

       //查看archivelog占用空间比例,如下图占用了99.78,占满时候数据抽取任务停止需要删除日志,释放archivelog空间。

    Sql> show parameter recover

       //查看日志存放路径,空间大小等。/backup/flash_recovery_area是日志路径,空间大小是10g。

     

    现在要操作的就是删除该路径下的物理日志文件。

    登录数据库服务器:

    查看文件路径/backup/flash_recovery_area

    删除该路径下的archivelog文件里面的日志文件。2015_06_10   2015_06_11(可选择性删除里面的日志,不要全部删除,文档操作是删除全部日志,因为这是新的数据库服务器,没有其他的操作记录。)

     

    $ rm –rf/backup/…/archivelog

    执行删除操作后,该路径下2015_06_10   2015_06_11这两个文件被删除。

     

     

    登录rman释放逻辑空间。

    $ rman target sys/password@oracle_sid

    RMAN>crosscheck archivelog all;

    进行文件查看,将已删除的日志标识成expired。

     

    RMAN> deleteexpired archivelog all;

     

    提示:如下,输入YES即可。

    释放空间成功。如下图。

     

    在返回dba权限下查看日志空间占用比例,如下图所示:

     

     

     

    展开全文
  • ora-01653表空间不够

    千次阅读 2011-10-10 14:31:44
    问题如下:  用户A 在表空间B下面建了,又删除,反复好多次了, 表空间不够用了?...10g以前,在用户drop掉一张之后,oracle会自动释放drop所在的表空间,但是在10g之后,oracle增加了一个新的功能flashbac

     问题如下:

     用户A 在表空间B下面建了表,又删除,反复好多次了, 表空间不够用了?

    首先来说为什么会导致这种情况。

     

    10g以前,在用户drop掉一张表之后,oracle会自动释放drop表所在的表空间,但是在10g之后,oracle增加了一个新的功能flashback和回收站,目的是当用户误删除一张表时,可以从回收站中回收回来,所以,10g之后的oracle,你即使drop表也会占用所在的表空间,文档上如下:

    When you drop a table, the before image will be writen to recycle bin.  The space WILL NOT BE reclaimed UNLESS you use purge in drop statement.

     

    所以在你删除表时,要么加purge,要么释放回收站

    drop table tablename purge

    或者  purge recyclebin       (当然在这里要排除其他表空间不够用的情况,如表空间自动扩展等其他)

     

     

    展开全文
  • 【IT168 技术文档】摘要:在使用Oracle9i/...本文通过一则案例诊断,介绍如何收缩过度扩展的Undo表空间释放占用空间。环境:OS: Red Hat Enterprise Linux AS release 4 (Nahant)DB: Oracle Database 10g Enter...

    【IT168 技术文档】

    摘要:在使用Oracle9i/Oracle10g的自动Undo管理表空间(AUM)特性时,经常会因为各种原因而导致Undo表空间过度扩展。本文通过一则案例诊断,介绍如何收缩过度扩展的Undo表空间,释放占用空间。

    环境:

    OS: Red Hat Enterprise Linux AS release 4 (Nahant)

    DB: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    某日,一台Oracle10gR2数据库报出如下错误:

    ORA-1653: unable to extend table SYSMAN.MGMT_SYSTEM_ERROR_LOG by 8 in  tablespace SYSAUX

    ORA-1653: unable to extend table SYSMAN.MGMT_SYSTEM_ERROR_LOG by 8 in  tablespace SYSAUX

    ORA-1653: unable to extend table SYSMAN.MGMT_SYSTEM_ERROR_LOG by 8 in  tablespace SYSAUX

    ORA-1653: unable to extend table SYSMAN.MGMT_SYSTEM_ERROR_LOG by 8 in  tablespace SYSAUX

    ORA-1653: unable to extend table SYSMAN.MGMT_SYSTEM_ERROR_LOG by 8 in  tablespace SYSAUX

    数据库无法正常使用。

    登陆检查,发现是SYSAUX表空间空间用尽,不能扩展,尝试手工扩展SYSAUX表空间:

    None.gifalterdatabasedatafile'+ORADG/danaly/datafile/sysaux.266.600173881'resize 800m

    None.gifTue Nov2923:31:382005None.gifORA-1237signalled during:alterdatabasedatafile'+ORADG/danaly/datafile/sysaux.266.600173881'resize 800m...

    出现ORA-1237错误,提示空间不足。这时候我们认识到是磁盘空间可能被用完了.

    是谁“偷偷的”用了那么多空间呢(本来有几十个G的Free磁盘空间的)?

    通过如下脚本检查数据库表空间占用空间情况:

    None.gifSQL>selecttablespace_name,sum(bytes)/1024/1024/1024GB

    None.gif

    2fromdba_data_filesgroupbytablespace_name

    None.gif3unionallNone.gif4selecttablespace_name,sum(bytes)/1024/1024/1024GB

    None.gif5fromdba_temp_filesgroupbytablespace_nameorderbyGB;

    None.gif

    None.gifTABLESPACE_NAME GB

    None.gif------------------------------ ----------None.gifUSERS .004882813None.gifUNDOTBS2 .09765625None.gifSYSTEM .478515625None.gifSYSAUX .634765625None.gifWAPCM_TS_VISIT_DETAIL .9765625None.gifHY_DS_DEFAULT1None.gifMINT_TS_DEFAULT1None.gifMMS_TS_DATA21.375None.gifMMS_IDX_SJH2None.gifMMS_TS_DEFAULT2None.gifIVRCN_TS_DATA2None.gif

    None.gifTABLESPACE_NAME GB

    None.gif------------------------------ ----------None.gifMMS_TS_DATA12None.gifCM_TS_DEFAULT5None.gifTEMP20.5498047None.gifUNDOTBS127.1582031None.gif

    None.gif15rows selected.

    None.gif

    不幸的发现,UNDO表空间已经扩展至27G,而TEMP表空间也扩展至20G,这2个表空间加起来占用了47G的磁盘空间,导致了空间不足。

    显然曾经有大事务占用了大量的UNDO表空间和Temp表空间,Oracle的AUM(Auto Undo Management)从出生以来就经常出现只扩展,不收缩(shrink)的情况(通常我们可以设置足够的UNDO表空间大小,然后取消其自动扩展属性)。

    现在我们可以采用如下步骤回收UNDO空间:

    1.确认文件

    None.gifSQL>selectfile_name,bytes/1024/1024fromdba_data_files

    None.gif2wheretablespace_namelike'UNDOTBS1';

    None.gif

    None.gifFILE_NAMENone.gif--------------------------------------------------------------------------------None.gifBYTES/1024/1024None.gif---------------None.gif+ORADG/danaly/datafile/undotbs1.265.600173875None.gif27810None.gif

    2.检查UNDO Segment状态

    None.gifSQL>selectusn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks

    None.gif2fromv$rollstatorderbyrssize;

    None.gif

    None.gif USN XACTS RSSIZE/1024/1024/1024HWMSIZE/1024/1024/1024SHRINKS

    None.gif---------- ---------- --------------------- ---------------------- ----------None.gif00.000358582.0003585820None.gif20.071517944.0715179440None.gif30.13722229.137222290None.gif90.236984253.2369842530None.gif100.625144958.6251449580None.gif511.229461671.229461670None.gif801.271759031.271759030None.gif411.278953551.278953550None.gif701.567703251.567703250None.gif102.024749762.024749760None.gif602.96719362.96719360None.gif

    None.gif11rows selected.

    None.gif

    3.创建新的UNDO表空间

    None.gifSQL>createundo tablespace undotbs2;

    None.gif

    None.gifTablespace created.

    None.gif

    4.切换UNDO表空间为新的UNDO表空间

    None.gifSQL>altersystemsetundo_tablespace=undotbs2 scope=both;

    None.gif

    None.gifSystem altered.

    None.gif

    此处使用spfile需要注意,以前曾经记录过这样一个案例,Oracle诊断案例-Spfile案例一则。另外,如果使用的RAC环境,请注意,修改spfile时,要指定sid参数。

    5.等待原UNDO表空间所有UNDO SEGMENT OFFLINE

    None.gifSQL>selectusn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks

    None.gif2fromv$rollstatorderbyrssize;

    None.gif

    None.gif

    None.gif USN XACTS STATUS RSSIZE/1024/1024/1024HWMSIZE/1024/1024/1024SHRINKS

    None.gif---------- ---------- --------------- --------------------- ---------------------- ----------None.gif140ONLINE .000114441.0001144410None.gif190ONLINE .000114441.0001144410None.gif110ONLINE .000114441.0001144410None.gif120ONLINE .000114441.0001144410None.gif130ONLINE .000114441.0001144410None.gif200ONLINE .000114441.0001144410None.gif151ONLINE .000114441.0001144410None.gif160ONLINE .000114441.0001144410None.gif170ONLINE .000114441.0001144410None.gif180ONLINE .000114441.0001144410None.gif00ONLINE .000358582.0003585820None.gif

    None.gif USN XACTS STATUS RSSIZE/1024/1024/1024HWMSIZE/1024/1024/1024SHRINKS

    None.gif---------- ---------- --------------- --------------------- ---------------------- ----------None.gif60PENDING OFFLINE2.96719362.96719360None.gif

    None.gif12rows selected.

    None.gif

    等候一段时间,再次查看:

    None.gif11:32:11SQL>/None.gif

    None.gif USN XACTS STATUS RSSIZE/1024/1024/1024HWMSIZE/1024/1024/1024SHRINKS

    None.gif---------- ---------- --------------- --------------------- ---------------------- ----------None.gif151ONLINE .000114441.0001144410None.gif110ONLINE .000114441.0001144410None.gif120ONLINE .000114441.0001144410None.gif130ONLINE .000114441.0001144410None.gif140ONLINE .000114441.0001144410None.gif200ONLINE .000114441.0001144410None.gif160ONLINE .000114441.0001144410None.gif170ONLINE .000114441.0001144410None.gif180ONLINE .000114441.0001144410None.gif190ONLINE .000114441.0001144410None.gif00ONLINE .000358582.0003585820None.gif

    None.gif11rows selected.

    None.gif

    None.gifElapsed:00:00:00.00None.gif

    6.删除原UNDO表空间

    None.gif11:34:00SQL>droptablespace undotbs1 including contents;

    None.gif

    None.gifTablespace dropped.

    None.gif

    None.gifElapsed:00:00:03.13None.gif

    7.检查空间情况

    由于我使用的ASM管理,可以使用10gR2提供的信工具asmcmd来察看空间占用情况.

    None.gif[oracle@danaly ~]$ export ORACLE_SID=+ASM

    None.gif[oracle@danaly ~]$ asmcmd

    None.gifASMCMD>du

    None.gifUsed_MB Mirror_used_MB

    None.gif2162521625None.gifASMCMD>exitNone.gif

    至此空间已经释放。

    展开全文
  • 但是,采用了很多办法才释放掉空间,主要是系统中大量使用分区,而针对分区清除数据,不会释放空间,必须把分区drop掉,才会释放空间。记录一下当时操作时学习和使用的一些语句: 一、drop 执行drop ...

    前些日子,数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G。但是,采用了很多办法才释放掉表空间,主要是系统中大量使用分区表,而针对分区表清除数据,不会释放表空间,必须把分区drop掉,才会释放空间。记录一下当时操作时学习和使用的一些语句:

    一、drop表

    执行drop table xx 语句

        drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

        通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句

                       flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];

                       将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

                       若要彻底删除表,则使用语句:drop table <table_name> purge;

                       清除回收站里的信息

                       清除指定表:purge table <table_name>;

                       清除当前用户的回收站:purge recyclebin;

                       清除所有用户的回收站:purge dba_recyclebin;

        不放入回收站,直接删除则是:drop table xx purge;

    举例如下:

    ===============================================================================

    SQL> select * from test1;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> create table test2 as select * from test1;

    Table created

    SQL> select * from test2;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> drop table test2;

    Table dropped

    SQL> select object_name, original_name, operation, type from user_recyclebin;

    OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

    ------------------------------ -------------------------------- --------- -------------------------

    BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

    SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

    Done

    SQL> select * from test3;

    A B C

    -- -- ----------

    11 5

    11 10  

    2 rows selected

    SQL> select * from test2

    ORA-00942: 表或视图不存在

    --彻底删除表

    SQL> drop table test3 purge;

    Table dropped

    二、清除表中的数据

    truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。

    例如:truncate table  XX

    Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

    truncate table 后,有可能表空间仍没有释放,可以使用如下语句:

    alter table 表名称 deallocate   UNUSED KEEP 0;

    注意如果不加KEEP 0的话,表空间是不会释放的。

    例如:

    alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0;

    或者:

    TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。

    例如: truncate table  test1 DROP STORAGE;

    三、查询分区表存在哪些分区:

    查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

        select 'alter table '||t.table_name ||' truncate   partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'

        清除指定某个分区表的分区数据:

        alter   table  表名称   truncate   partition   分区名称;

    四、清除分区表占用的空间:

    alter table 表名称  DROP    partition 分区名称;

        例如:

        alter table F_HOUR_TD_NET_MPVOICE  DROP    partition P_09121913         ;

    五、查询表空间信息

        可以利用如下语句查询各表在存储空间的使用分情况:

        SELECT  TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')   CNT_MB   FROM   DBA_EXTENTS   WHERE  OWNER='&OWNER'   AND   SEGMENT_NAME='&TABLE_NAME'   AND   SEGMENT_TYPE   LIKE   'TABLE%'   GROUP   BY  TABLESPACE_NAME;

    可以使用如下语句,查询存储空间情况:

    Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

    六、查询用户下的表

        如果你的用户权限不是DBA:  

      那你用  

      select   *   from   user_tables;  

      可以查询到当前用户所拥有的表。  

      如果是DBA用户:  

      select   *   from   dba_tables;

    展开全文
  • 手动释放归档空间解决ORA-00257错误

    千次阅读 2015-03-04 14:29:03
    性能测试时出现持续的数据库连接失败,报ora-00257错误: ora-00257:archiver error. Connect internal only, until freed. 【问题定位】 根据下面的错误描述信息,可以知道问题很明显是由于归档错误导致。 > ...
  • oracle 磁盘空间不足时,如何迁移表空间 当数据库启动报错 ORA-27102: out of memory 查看 cat /proc/sys/kernel/shmall 是否足够大,如果比较小的话,设置比较大的共享内存页 使用 root 命令 echo '8388608' >...
  • 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。 网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到...
  • 查询临时表空间已经分配的空间和可用空间: select tablespace_name ,tablespace_size/1024/1024 mb_size ,allocated_space/1024/...
  • oracle删除数据释放表空间流程

    千次阅读 2020-05-22 11:12:18
    生产环境:数据库里空间不足,niptest表空间251G,只使用了17G 再alter database datafile '...../niptest1' resize 10G;的时候说超出了范围要求 由于变动比较频繁,高水位值比较大 (高水位HWM “High Water ...
  • delete不释放表空间

    2013-09-16 23:35:13
    只是delete行,原来所占用的空间不能被别的对象所用。只有drop了对象之后,才能被别的对象使用。只是删除数据,表空间使用率,不会变化。对象占用的大小也不会变化SQL> create tablespace t_test...
  • 今天某项目的一个Repository的正常CRUD操作,发现报错信息ORA-1653:unable to extend table by 1024 in tablespace,什么意思呢,就是表空间已满,无法扩展. 问题分析 USERS表空间是默认用户表空间,在创建一个用户并没有...
  • 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。 网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到...
  • 有一次朝中插入10万条数据,插入失败,提示空间不足,发现是undotbs01.dbf这个文件太大了。ORA-01654 登录到oracle服务器, 查看磁盘空间命令:df -h ,我这里的结果为 /oradata 使用100%,查看/oradata里面...
  • 日常查询数据库alert日志,发现报错信息ORA-1653: unable to extend table AXJ_REDIS.USSD_UNREPORT_FAIL by 128 in tablespace USERS,users表空间已满,无法扩展。 问题分析: USERS表空间是默认用户...
  • 这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。 1 创建实验环境 1.1 创建ASSM的表空间 SQL> set serveroutput on SQL> create ...
  • oracle释放表空间的方法

    千次阅读 2010-05-10 17:41:31
    目前找到的方法始终只有新建一个表空间,alter表空间指向,再delete原有表空间。 http://www.cnblogs.com/rootq/archive/2009/04/18/1438804.html 这个是比较清晰的一篇文章。 我希望找到的是能直接shrink...
  • 环境:OS:Red Hat Enterprise Linux AS release 4 (Nahant)DB:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production 一台Oracle10gR2数据库报出如下错误:ORA-1653: unable to extend table ...
  • 今天在查数据的时候报错 ORA-01652:无法通过16(在表空间temp1中)扩展 temp 字段 查看表空间使用明细 SELECT b.tablespace,  b.segfile#,  b.segblk#,  b.blocks,  b.blocks ...
  • 由于大量undo数据导致磁盘空间爆满,然后新建一个undo表空间undotbs1。将undo表空间切换过去后,drop掉原来的undo表空间undotbs2,出现ORA-30013错误。 切换后 SYS@prod>...
  • 有些小白在操作数据库时随便新建表空间,并且喜欢直接设置最大值把表空间文件直接设置成32G,而后在导库的时候又没进行正确操作导致新建的表空间并未使用,而把数据又全部导入users表空间了,这样就造成数据库服务器...
  • 在查询一个非常大的运算结果的时候出现了以上情况。...给表空间增加临时文件方法: alter tablespace ts_name add tempfile file_name size n M 例如 alter tablespace temp add tempfile 'E:/oracle/temp/t...
  • 在sys用户下建立了一张大,插入的数据大概几亿条,导致system空间增长了30G左右,后面想删除数据,缩小system空间,因此truncate table,后面又drop table,但是此时只是降低了段的高水位,数据文件还有高水位,因此...
  • ASM磁盘组上对表空间添加数据文件报错ORA-15041基本环境恢复backup as copyasmcmd cprestore,switch 基本环境 SQL> create diskgroup testdg external redundancy disk '/dev/asm_arch01','/dev/asm_arch04' ...
  • 解决ORA-01652(无法扩展表空间)问题

    万次阅读 2015-02-01 10:35:30
    最近几天旧系统发现ORA-01652(unable to extend temp segment by num in tablespace name)的问题,在临时增加数据文件大小后没几天又出现,无赖之... 先查询临时表空间使用情况:  select tablespace_name,  cu
  • 今天把cups海量数据导入到新建的oracle数据库中的时候,出现了RT的错误,上网查查才知道是表空间数据太大了,达到默认最大32G了,所以需要给system表空间增加数据文件来扩充其,具体解决步骤如下: 1、查询所有...
  • 由于ETL在加载的上一周期全量数据时,undotbs2表空间报满,不释放,本想别建一个undo表空间,进行切换,但又没有相应的裸设备,所以错误的没有在共享存储上建undo表空间,导致DBWR不能定位,原因是这个数据文件...
  • ORA-1652: unable to extend temp segment by 128 in tablespace MDSTEMP 显示不能扩展临时段,说明临时表空间已经被使用满了,空间不够。 说明:从metalink上官方解释,没有更多的空闲区分给这个临时段了,可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,884
精华内容 5,153
关键字:

ora释放表空间