当前位置: 首页 > ops >正文

ORA-01157 cannot identify/lock data file n 故障一例

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

    最近在使用swingbench的时候碰到了ORA-01157故障,下面是其具体描述与解决。

1、故障现象--查询视图dba_data_files时出现ORA-01157故障SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='SOE';select file_name,tablespace_name from dba_data_files where tablespace_name='SOE'                                      *ERROR at line 1:ORA-01157: cannot identify/lock data file 6 - see DBWR trace fileORA-01110: data file 6: '/u01/oracle/db/dbs/soe.dbf'--尝试drop tablespace 收到同样的错误SQL> drop tablespace soe including contents and datafiles;drop tablespace soe including contents and datafiles*ERROR at line 1:ORA-01157: cannot identify/lock data file 6 - see DBWR trace fileORA-01110: data file 6: '/u01/oracle/db/dbs/soe.dbf'2、分析--从错误号后的文字可判断DBWR不能识别或锁定文件号6,后面的ORA-01110给出了具体的文件位置--下面是错误号对应的具体描述SQL> ho oerr ora 0115701157, 00000, "cannot identify/lock data file %s - see DBWR trace file"// *Cause:  The background process was either unable to find one of the data//         files or failed to lock it because the file was already in use.//         The database will prohibit access to this file but other files will//         be unaffected. However the first instance to open the database will//         need to access all online data files. Accompanying error from the//         operating system describes why the file could not be identified.// *Action: Have operating system make file available to database. Then either//         open the database or do ALTER SYSTEM CHECK DATAFILES.--上面的描述指出了后台进程不能寻找到数据文件或者是因为文件在被其他进程使用而DBWR无法对其锁定。--对于象这类文件数据库将禁止对其进行访问,而其他数据文件则不受影响。--给出的决办法是确认错误号后的数据文件是否存在或可用,以及在open状态下执行ALTER SYSTEM CHECK DATAFILES命令3、解决--尝试执行alter system check datafilesSQL> alter system check datafiles;System altered.--执行后故障依旧如下SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='SOE';select file_name,tablespace_name from dba_data_files where tablespace_name='SOE'                                      *ERROR at line 1:ORA-01157: cannot identify/lock data file 6 - see DBWR trace fileORA-01110: data file 6: '/u01/oracle/db/dbs/soe.dbf'--查看数据字典记录的信息表明当前的表空间为online状态SQL> select tablespace_name,status,contents from dba_tablespaces where tablespace_name='SOE';TABLESPACE_NAME                STATUS    CONTENTS------------------------------ --------- ---------SOE                            ONLINE    PERMANENT--查看alert日志文件,也给出了该错误提示,提示给出了tarce文件oracle@v2048db01p:/u01/oracle/admin/SYISDB/bdump> tail -8 alert_SYISDB1.logAdditional information: 3Tue Nov 13 09:43:17 2012Errors in file /u01/oracle/admin/SYISDB/bdump/syisdb1_dbw0_5925.trc:ORA-01186: file 6 failed verification testsORA-01157: cannot identify/lock data file 6 - see DBWR trace fileORA-01110: data file 6: '/u01/oracle/db/dbs/soe.dbf'Tue Nov 13 09:43:17 2012File 6 not verified due to error ORA-01157--查看表空间soe对应的数据文件是否存在oracle@v2048db01p:~> export ORACLE_SID=+ASM1oracle@v2048db01p:~> asmcmdASMCMD> cd +DG2/SYISDB/DATAFILEASMCMD> lsCCDATA.289.799174049SYSAUX.260.796819341SYSTEM.259.796819335UNDOTBS1.261.796819339UNDOTBS2.257.796819343USERS.256.796819343X.290.799234531ccdata.dbfASMCMD> ls *soe*   --#没有任何含soe的数据文件asmcmd: entry '*soe*' does not exist in directory '+DG2/SYISDB/DATAFILE/'ASMCMD> ls *SOE*   --#没有任何含soe的数据文件,由此可知表空间soe对应的数据文件已经丢失asmcmd: entry '*SOE*' does not exist in directory '+DG2/SYISDB/DATAFILE/'--因此直接删除该表空间及数据文件,注,生产环境不建议此操作SQL> alter database datafile 6 offline drop;Database altered.--再次查看数据字典信息,依然处于Online状态--Author : Robinson--Blog   : http://blog.csdn.net/robinson_0612SQL> select tablespace_name,status,contents from dba_tablespaces where tablespace_name='SOE';TABLESPACE_NAME                STATUS    CONTENTS------------------------------ --------- ---------SOE                            ONLINE    PERMANENT--下面的查询貌似也有问题,对应的数据文件在上一命令中已经清除了,而此时依旧显示AVAILABLESQL> col file_name format a55SQL> set linesize 160SQL> select file_name,tablespace_name,status  from dba_data_files where tablespace_name='SOE';FILE_NAME                                TABLESPACE_NAME                STATUS---------------------------------------- ------------------------------ ---------/u01/oracle/db/dbs/soe.dbf               SOE                            AVAILABLE--尝试在该表空间创建对象,收到了ORA-01658错误SQL> create table t tablespace soe as select * from dba_objects;create table t tablespace soe as select * from dba_objects                                               *ERROR at line 1:ORA-01658: unable to create INITIAL extent for segment in tablespace SOE--查看对应的错误信息--错误信息表明没有足够的连续空间分配初始extent.SQL> ho oerr ora 0165801658, 00000, "unable to create INITIAL extent for segment in tablespace %s"// *Cause:  Failed to find sufficient contiguous space to allocate INITIAL//          extent for segment being created.// *Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the//          tablespace or retry with a smaller value for INITIAL--再次查看状态,发现此时对应的数据文件为RECOVERSQL> col file_name format a40SQL> select file_name,tablespace_name,status,ONLINE_STATUS from dba_data_files where tablespace_name='SOE';FILE_NAME                                TABLESPACE_NAME                STATUS    ONLINE_---------------------------------------- ------------------------------ --------- -------/u01/oracle/db/dbs/soe.dbf               SOE                            AVAILABLE RECOVER--查看v$recover_file视图,给出文件未找到OFFLINE FILE NOT FOUNDSQL> select * from v$recover_file;     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME---------- ------- ------- ----------------------------------------------------------------- ---------- ------------------         6 OFFLINE OFFLINE FILE NOT FOUND                                                             0--查看对应的数据文件也不存在SQL> ho ls -hltr /u01/oracle/db/dbs/soe.dbfls: /u01/oracle/db/dbs/soe.dbf: No such file or directory--删除整个表空间及数据文件SQL> drop tablespace soe including contents and datafiles;Tablespace dropped.--下面的查询表示表空间soe已经被彻底清除SQL> select * from v$recover_file;no rows selectedSQL>  select file_name,tablespace_name,status,ONLINE_STATUS from dba_data_files where tablespace_name='SOE';no rows selected

总结:
  ORA-01157通常由后台进程DBWR锁定而产生。
  如果在恢复期间,如数据库已经mount,而一个或多个数据文件不能打开导致数据库不能open时会出现该提示。
  数据文件丢失,数据文件的许可问题,如数据文件oracle用户没有写权限等都会产生ORA-01157。
  如果open状态的情形下,ORA-01157未列出的数据文件不会受到影响。

 

补充说明:
  细心的朋友应该可能已经发现当时在检查对应的数据文件的时候,只检查了ASM磁盘是否存在对应的数据文件。
  由于出错数据库为RAC,因此忽略了检查提示中的文件系统对应的数据文件。说来还是不够仔细,狂汗......
  就其原因应该是这样,在使用swingbench时,创建soe表空间时直接一路next,导致将数据文件创建到了文件系统,而文件系统是非共享的。(RAC环境)

 

更多参考:

ORA-01157错误解决

有关Oracle 网络配置相关基础以及概念性的问题请参考:
        配置ORACLE 客户端连接到数据库
        配置非默认端口的动态服务注册
        配置sqlnet.ora限制IP访问Oracle
       Oracle 监听器日志配置与管理
       设置 Oracle 监听器密码(LISTENER)
       Oracle RAC 监听配置
       ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

       Oracle RAC 客户端连接负载均衡(Load Balance)

       配置RAC负载均衡与故障转移

   

有关基于用户管理的备份和备份恢复的概念请参考

    Oracle 冷备份

    Oracle 热备份

    Oracle 备份恢复概念

    Oracle 实例恢复

    Oracle 基于用户管理恢复的处理

   SYSTEM 表空间管理及备份恢复

    SYSAUX表空间管理及恢复

   Oracle 基于备份控制文件的恢复(unsing backup controlfile)

 

有关RMAN的备份恢复与管理请参考

    RMAN 概述及其体系结构

    RMAN 配置、监控与管理

    RMAN 备份详解

    RMAN 还原与恢复

    RMAN catalog 的创建和使用

    基于catalog 创建RMAN存储脚本

    基于catalog 的RMAN 备份与恢复

    RMAN 备份路径困惑

 

有关ORACLE体系结构请参考

    Oracle 表空间与数据文件

    Oracle 密码文件

    Oracle 参数文件

    Oracle 联机重做日志文件(ONLINE LOG FILE)

    Oracle 控制文件(CONTROLFILE)

    Oracle 归档日志

    Oracle 回滚(ROLLBACK)和撤销(UNDO)

    Oracle 数据库实例启动关闭过程

    Oracle 10g SGA 的自动化管理

    Oracle 实例和Oracle数据库(Oracle体系结构)      

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
http://www.xdnf.cn/news/11252.html

相关文章:

  • 2021年,用更现代的方法使用PGP(下)
  • 日志格式规范
  • Web服务器群集:LVS负载均衡群集
  • 层次分析法原理及实例(AHP)
  • 微信接入AI 机器人方法大全,全网最细教程
  • visual studio-wdk8.1+vs2013中使用winusb模版开发usb设备驱动
  • linux:services服务器配置
  • 23种PHP开发工具PHP IDE集合
  • CURL命令 : GET、POST请求、文件下载等常用命令
  • 我们的生日花
  • 【Linux】Ubuntu12.04的下载与安装
  • appfuse是什么
  • 将字符串切割成数组 componentsSeparatedByString
  • C语言程序设计:学生成绩管理系统(附代码以及编写逻辑)
  • SAP 金税接口介绍
  • 文件快速定位神器(C++小项目实战)
  • 【Maven学习】Nexus OSS私服仓库的安装和配置
  • 从osCommerce到Zen Cart,再到CubeCart
  • java环境变量
  • 区块链的介绍和应用场景以及发展趋势
  • TP-link路由器如何进行端口映射?
  • 程序设计模式
  • jdk 命令大全
  • iText输出中文的三种字体选择方式
  • 常用邮箱的 IMAP/POP3/SMTP 设置
  • 回溯经典-m图着色问题(和地图4色问题的区别)
  • php+html+mysql实现购物商城在线购物系统服装购物系统计算机源码获取php+mysql电子商务系统电商系统php毕业设计课程设计大作业
  • VC皮肤库SkinSharp 1 0 6 6的使用
  • Servlet基础详解)
  • 共享打印机无法打印?常见的12种解决方法【详解】