在一次测试中,由于导入的数据量过大导致事务一直提交失败因为磁盘空间不够用了,一检查发现是undo表空间不够用,于是重新创建了一个表空间,准备把之前的undo表空间删除,删除时却发现一直删不掉,因为它一直在使用,于是关闭数据库,手动的删掉。然后重启数据库,于是乎各种问题来了

  1 使用SYS 账号登录时报错:ORA-09817: Write to audit file failed

  然后在使用df -h命令系统检查一下,发现Oracle安装目录所对应的磁盘空间已满,于是删除3天以前的trace文件,然后看到之前的undo表空间对应的数据文件也顺便给删了结果就悲剧了

  删除trace文件之后,可以使用 SYS AS SYSDBA命令登录到数据库了,但是启动数据库时报错,在启动到open阶段时报错,能够启动到mount阶段。

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: '/usr/oracle/app/oradata/orcl/undotbs01.dbf'

2 ORA-01157与ORA-01110错误

先查看具体的错误,登录到RAM模式,输入命令: list failure;

RMAN> list failure

using target database control file instead of recovery catalog
List of Database Failures
=========================

Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
42 HIGH OPEN 24-MAY-17 One or more non-system datafiles are missing

报告显示数据文件丢失

查资料输入命令以下即可:

alter database datafile 7 offline drop;

但是这样操作有可能丢失部分数据,慎用

然后shutdown immediate,再startup,数据库成功启动。

3 删除undo表空间报错:ORA_01548

数据库成功启动之后,查询之前的UNDOTBS1还在,于是使用删除语句

drop tablespace UNDOTBS1 including contents; 报错

  ORA-01548: active rollback segment '_SYSSMU6_2443381498$', terminated drop tablespace;

  查询UNDOTBS1处于非offline的segment

select segment_name,tablespace_name,status
from dba_rollback_segs;

修改文件/usr/oracle/app/admin/orcl/pfile/init.ora.95201623739(先备份再修改),如下:
undo_management=manual
undo_retention=10800
undo_tablespace=UNDOTBS2
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU6_2443381498$) -- 此处要将所有处于NEEDS RECOVERY状态的 segment全部放进来

关闭数据库: shutdown immediate

使用修改后的pfile启动数据:startup pfile='/usr/oracle/app/admin/orcl/pfile/init.ora.95201623739';

然后再删除UNDOTBS1 ,成功删除未报之前的错误。

Oracle 不小心删除undo数据文件以及磁盘空间不足导致不能登录的解决办法的更多相关文章

  1. 【Oracle】删除(释放)数据文件/表空间流程

    oracle删除(释放)数据文件/表空间流程 生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G 再alter database datafile '...../niptest ...

  2. 【Oracle】非RMAN恢复数据文件、控制文件

    实验环境:OEL 5.6 oracle 11g(11.2.0.4.0) 注意: system表空间数据文件不能在线recover,需要启动到mount状态再recover: undo表空间数据文件可以 ...

  3. 如何删除offline数据文件/表空间上的分区

    接上一篇"Oracle 10g RAC全库flashback " http://www.cnblogs.com/cqubityj/p/3265552.html 在打开数据库之前把2 ...

  4. Linux文件删除,但是df之后磁盘空间没有释放

    Linux 磁盘空间总是报警,查到到大文件,删除之后,df看到磁盘空间并没有释放. 查找了下发现系统对rm进行了alias   ,因为Linux对删除操作没有回收站机制,对rm操作进行了自定义,对删除 ...

  5. oracle for linux服务器磁盘空间不足,通过过期的文件释放磁盘空间

    --2013-09-16截取的数据-- 使用df-h命令查看系统磁盘空间 [root@erpdbs PROD]# df -h Filesystem Size Used Avail Use% Mount ...

  6. oracle所在磁盘空间不足导致了数据库异常

    oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...

  7. Asp.Net保存session的三种方法 (Dll文件更新导致session丢失的解决办法)

    1. InProc模式(默认值):asp.net将session保存到当前进程中,这种方式最快,但是不能多台服务器共享session,且会话状态数据容易丢失. <sessionState mod ...

  8. 运维笔记--Docker文件占用磁盘空间异常处理

    场景描述: 1. 服务器运行一段时间后,发现系统盘磁盘空间在不断增加,一开始的时候,不会影响系统,随着时间的推移,磁盘空间在不断增加,直到有一天你会发现系统盘剩余空间即将使用完,值得庆幸的是,如果您使 ...

  9. Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法

    Oracle客户端工具出现"Cannot access NLS data files or invalid environment specified"错误的解决办法 方法一:参考 ...

随机推荐

  1. Teradata 批量查找PI字段

    select * from dbc.indicesv where indextype in ('P','Q');

  2. A - Subarrays Beauty gym 位运算 &

    You are given an array a consisting of n integers. A subarray (l, r) from array a is defined as non- ...

  3. XPATH如何选择不包含某一个属性的节点?

    XPATH如何选择不包含某一个属性的节点?今天博主在写一个爬虫的时候就碰到了这个问题. 我们知道选择包含某一特定属性的节点,可以使用例如//tbody/tr[@class]来选择.那么不含某属性的节点 ...

  4. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  5. RocketMQ事务消息-demo

    RocketMQ为4.3.0版本(我这种写法4.2.0不行) 如果你之前用的其他版本,需要去修改下系统的环境变量 maven工程用到的jar包 <dependencies> <!-- ...

  6. UVA116-Unidirectional TSP(动态规划基础)

    Problem UVA116-Unidirectional TSP Accept: 7167  Submit: 56893Time Limit: 3000 mSec Problem Descripti ...

  7. 牛客网训练1--------矩阵 (二份+二维矩阵hash)

    不懂hash的话:https://www.cnblogs.com/ALINGMAOMAO/p/10345850.html 思路:对于一个大矩阵的每一个子矩阵都对应着一个hash值k, 当k出现2次以上 ...

  8. Redo丢失的4种情况及处理方法

    这篇文章重点讨论Redo丢失的几种情况,及每种情况的处理方法. 一.说明:1.以下所说的当前日志指日志状态为CURRENT,ACTIVE,非当前日志指日志状态为INACTIVE2.不用考虑归档和非归档 ...

  9. 区分range() , np.arange() , np.linspace()

    content: range() np.arange() np.linspace() 一.range(start, stop, step) 1.range() 为 python 自带函数 2.生成一个 ...

  10. unique

    作用: 元素去重,即“删除”序列中所有相邻的重复元素(只保留一个) (此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素占领了) (其实就是把多余的元素放到了最后面) 由于它“删除”的是相 ...