我是靠谱客的博主 平常水壶,最近开发中收集的这篇文章主要介绍记一次Oracle启动报错问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因为之前直接删除了表空间,重启oracle后报错ORA-01157,以下记录解决方法。

ORA-01157:无法识别/锁定数据文件字符串 - 请参阅DBWR跟踪文件
原因:后台进程无法找到其中一个数据文件或未能锁定它,因为该文件已被使用。该数据库将禁止访问此文件,但其他文件将不受影响。但是,打开数据库的第一个实例需要访问所有在线数据文件。来自操作系统的伴随错误描述了无法识别文件的原因。
操作:将操作系统make文件提供给数据库。然后打开数据库或执行ALTER SYSTEM CHECK DATAFILES。

参考: http //docs.oracle.com/cd/B28359_01/server.111/b28278/e900.htm#ORA-01157 

ORA-01157数据库写入程序(DBWR)无法找到并锁定数据文件时引发此错误。这可能是由于各种原因,如
- 数据文件被删除或损坏
- 数据文件被重命名或移动
- 挂载点不正确
- 数据文件的读/写权限问题

要解决ORA-01157,我们可以使用以下步骤之一:
- 如果数据文件被删除或损坏,而不是TEMP或UNDO表空间,那么我们需要使用有效的备份来恢复它。
- 如果数据文件被删除或损坏,并且不是TEMP或UNDO表空间,但该表空间不包含重要的段,可以脱机删除
- 如果数据文件被重命名或移动,那么我们需要将其保存在原始位置
- 如果挂载点不正确,只需重新创建挂载点
- 如果它是由于权限引起的,那么

当我恢复冷备份时,我们需要在我的本地环境中在操作系统级别授予我面对ORA-01157 的权限。它是为了测试目的而添加的表空间,并不重要。所以我简单地使用“OFFLINE DROP”子句删除数据文件并打开数据库。

C:>sqlplus sys/sys as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 30 19:07:16 2013
Copyright (c) 1982, 2011, Oracle.
All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area
778387456 bytes
Fixed Size
1384856 bytes
Variable Size
520097384 bytes
Database Buffers
251658240 bytes
Redo Buffers
5246976 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 11 – see DBWR trace file
ORA-01110: data file 16: 'E:oracleappnimish.gargoradataorcltest_ts.dbf'
SQL> select NAME from v$datafile where file#=16;
NAME
--------------------------------------------------------------------------------
E:ORACLEAPPNIMISH.GARGORADATAORCLTEST_TS.DBF
SQL> alter database datafile 16 OFFLINE DROP;
Database altered.
SQL> alter database open;
Database altered.


我希望这个解决方案有助于解决您的问题。

参考:http://nimishgarg.blogspot.com/2014/01/ora-01157-cannot-identifylock-data-file.html

转载于:https://www.cnblogs.com/killall007/p/8671144.html

最后

以上就是平常水壶为你收集整理的记一次Oracle启动报错问题解决的全部内容,希望文章能够帮你解决记一次Oracle启动报错问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部