`

解决回滚表空间太大或回滚表空间丢失情况(下)

阅读更多
接上篇

一切顺利的话,以上步骤就可以实现减小回滚表空间大小的目的。但是可能在第7步出现:
ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间 问题。


解决方案:
   这个一般是由于原回滚表空间还存在些回滚段未被回收(这个说法待确定)
1. 查看原回滚表空间状态
  select file#,status from v$datafile;

  FILE# STATUS
---------- -------
         1 SYSTEM
         2 ONLINE
         3 RECOVER  

发现原回滚表空间出在recover状态。这个是因为我们已经将表空间文件删除了

2. 查看回滚段信息
  segment_name,status,tablespace_name from dba_rollback_segs;

SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM                         ONLINE           SYSTEM
_SYSSMU35_1277269112$          OFFLINE          UNDOTBS1
_SYSSMU34_1277269112$          OFFLINE          UNDOTBS1
_SYSSMU33_1277269112$          OFFLINE          UNDOTBS1
_SYSSMU32_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU31_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU30_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU29_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU28_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU27_1277269111$          OFFLINE          UNDOTBS1
_SYSSMU26_1277269111$          NEEDS RECOVERY   UNDOTBS1

SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU25_1277269111$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU24_1277269111$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU23_1277269111$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU22_1277269111$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU21_1277119714$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU20_1277119714$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU19_1273814895$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU18_1269840500$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU17_1269840500$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU16_1269840500$          NEEDS RECOVERY   UNDOTBS1
_SYSSMU15_1269840500$          NEEDS RECOVERY   UNDOTBS1

发现很多回滚段的数据需要RECOVERY, 这个时候需要改动oracle启动文件
sql>cd /opt/oracle/product/11.1/dbs
sql> vi initSID.ora
在末尾添加:
undo_management=manual
undo_retention=10800
undo_tablespace=undotbs2
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU26_1277269111$,_SYSSMU25_1277269111$,_SYSSMU24_1277269111$,_SYSSMU23_1277269111$,_SYSSMU22_1277269111$,_SYSSMU21_1277119714$,_SYSSMU20_1277119714$,_SYSSMU19_1273814895$,_SYSSMU18_1269840500$,_SYSSMU17_1269840500$,_SYSSMU16_1269840500$,_SYSSMU15_1269840500$,_SYSSMU14_1269840500$,_SYSSMU13_1269840500$,_SYSSMU12_1269840500$,_SYSSMU11_1269840500$,_SYSSMU10_1259671438$,_SYSSMU9_1259671438$,_SYSSMU8_1259671438$,_SYSSMU7_1259671438$,_SYSSMU6_1259671438$,_SYSSMU5_1259671438$,_SYSSMU4_1259671438$,_SYSSMU3_1259671438$,_SYSSMU2_1259671438$,_SYSSMU1_1259671438$)

_CORRUPTED_ROLLBACK_SEGMENTS 其中就是些需要recover的回滚段


3. 重启oracle
sql>shutdown abort
sql>startup pfile="/opt/oracle/product/11.1/dbs/initSID.ora";

4. 删除原回滚表空间
sql>drop tablespace undotbs1 including contents and datafiles;

5. 顺利删除重启oracle
sql>shutdown abort
sql>startup
分享到:
评论

相关推荐

    Oracle回滚表空间数据文件误删除处理

    回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障,则数据库不能正常启动,导致数据库瘫痪,...本文将为大家介绍Oracle回滚表空间数据文件误删除处理。

    oracle 创建表空间、回滚段、用户、表的详细语法

    Oracle 创建表空间、回滚段、用户、表的详细语法 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。创建表空间、回滚段、用户、表是 Oracle 中最基本的操作之一,本文将详细介绍这四个操作的语法和步骤。 ...

    SQL 事务回滚解决 回滚无效的情况

    SQL 事务回滚解决回滚无效的情况 BEGIN TRY END TRY CAHTH

    oracle回滚段使用率过高之解决方法

    oracle回滚段使用率过高之解决方法 推荐针对不同的情况有多种解决.

    Oracle7.X 回滚表空间数据文件误删除处理方法

    Oracle 7.X 回滚表空间数据文件误删除处理方法 作为一名 IT 行业大师,我将从给定的文件信息中生成相关知识点,以下是详细的知识点说明: 一、 回滚表空间的重要性 在数据库中,回滚表空间是一部分,它记录数据库...

    Oracle7.X 回滚表空间数据文件的误删除

    回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障,则数据库不能正常启动,导致数据库瘫痪,用户无法读写数据。本文介绍了排除该误删除的处理步骤。

    \Oracle 表空间与数据文件

    表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象:永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空间分类:系统表空间(system、sysaux),...

    轻松解决Oracle8i回滚段表空间的坏块

    本文介绍了当数据库出现坏块,回滚段里的部分数据不能读取时的解决办法。

    回滚段参数修改

    oracle 回滚段参数的管理,特别是orale 8i版本前的应用。

    SQL写了回滚无效 回滚没用

    SQL写了回滚无效 回滚没用 写了事务回滚无效

    oracle 事务 回滚 存储过程

    oracle 事务 回滚 存储过程 自用

    回滚数据到指定时间

    修改相关内容,回滚数据表到指定时间,表名称自己修改,时间点自己按需修改

    redis事务回滚工具

    基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。...

    Spine回滚工具.exe

    可以把导出的json文件从3.8回滚3.7,程序的spine库就不需要更新了

    git 删除分支和回滚的实例详解

    git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...

    简单的c#事务回滚实例代码

    执行多条SQL语句对数据库进行操作,如果某个SQL语句执行中出错,那么要对之前的操作进行回滚,代码比较简单。

    ORACLE回滚段的概念、用法和规划及问题解决

    回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念

Global site tag (gtag.js) - Google Analytics