电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

没有RMAN备份的情况下,误删数据文件undotbs01.dbf,如何恢复?

来源:金蝶云社区作者:金蝶2024-09-228

没有RMAN备份的情况下,误删数据文件undotbs01.dbf,如何恢复?

1.问题描述

没有RMAN备份的情况下,误删UNDOTBS表空间的数据文件后,sqlplus / as sysdba进入数据库,报错如下信息

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

ORA-01110: data file 3: '/u01/app/oracle/oradata/easdb/undotbs01.dbf'

查看数据库状态为mounted



2.解决方法

2.1.手动杀死数据库进程

方法如下:

2.1.1.查询数据库pmon进程的PID号

[oracle@easdb dbs]$ ps -ef |grep pmon

oracle    2536     1  0 09:36 ?        00:00:00 ora_pmon_easdb

oracle   12032 11195  0 12:04 pts/1    00:00:00 grep --color=auto pmon

2.1.2.杀死pmon进程

[oracle@easdb dbs]$ kill -9 2536

此时数据库已经关闭。

2.2.绕过检查点登录

2.2.1.先shutdown,以restrict模式打开数据库


2.2.2以OFFLINE DROP选项删除丢失或损坏的数据文件,再打开数据库



2.2.3.修改pfile参数文件,添加隐藏参数

vi initeasdb.ora

加入如下两行:

*._allow_resetlogs_corruption=TRUE

*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

这个参数应当包含ROLLBACK_SEGMENTS中损坏的表空间的所有的回滚段,查询方式如下;

select tablespace_name, owner, segment_name, status from dba_rollback_segs where TABLESPACE_NAME='UNDOTBS3';


2.2.4.以RESTRICT模式指定pfile打开数据库

startup restrict pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora';

此时数据库已经是open状态了

查看spfile为空值。create spfile from pfile;


重新登录后再次查看spfile。


2.3.删除原来

没有RMAN备份的情况下,误删数据文件undotbs01.dbf,如何恢复?

1.问题描述没有RMAN备份的情况下,误删UNDOTBS表空间的数据文件后,sqlplus / as sysdba进入数据库,报错如下信息ORA-01157: cannot i...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信