我们先来看一下这个现象:

[oracle@djp ora12]$ pwd
/u01/app/oracle/oradata/ora12
[oracle@djp ora12]$ mv undotbs01.dbf undotbs01.dbfbak
这里,我们把unto表空间对应的数据文件作了一个更改,表面该文件已经丢失。
 
下面,我们使用SQL*Plus,进行对数据库的启动:
idle> conn / as sysdba
Connected to an idle instance.
idle> startup mount;
ORACLE instance started.
 
Total System Global Area  835104768 bytes
Fixed Size                  2293880 bytes
Variable Size             469766024 bytes
Database Buffers          356515840 bytes
Redo Buffers                6529024 bytes
Database mounted.
idle> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: '/u01/app/oracle/oradata/ora12/undotbs01.dbf'
 
 
idle>
这时,发现启动失败。对于该现象, 我们可以进行如下的处理:
(1)设置undo_management为auto,由自动(auto)设置为手动(manual)。这因为,当设置为auto时,系统采用undo表空间管理回滚段,当设置manual时,系统使用回滚段。这里,相当于是禁用undo tablespace。
idle> alter system set undo_management = manual scope=spfile;
 
System altered.
 
idle>
(2)再次启动数据库,使用其生效
idle> shutdown immediate;
ORA-01109: database not open
 
 
Database dismounted.
ORACLE instance shut down.
idle> startup;
ORACLE instance started.
 
Total System Global Area  835104768 bytes
Fixed Size                  2293880 bytes
Variable Size             444600200 bytes
Database Buffers          381681664 bytes
Redo Buffers                6529024 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: '/u01/app/oracle/oradata/ora12/undotbs01.dbf'
 
 
idle>
(3)对丢失的数据库文件进行一个离线删除,如下:
idle> alter database datafile '/u01/app/oracle/oradata/ora12/undotbs01.dbf'
  2  offline drop
  3  /
 
Database altered.
 
idle>
(4)打开数据库,并对undo tablespace重新创建。
idle> alter database open;
 
Database altered.
 
idle> drop tablespace undotbs
  2  /
 
Tablespace dropped.
 
idle> create undo tablespace undotbs
  2  datafile '/u01/app/oracle/oradata/ora12/undotbs01.dbf'
  3  size 100M
  4  autoextend on
  5  next 50M
  6  maxsize unlimited
  7  /
 
Tablespace created.
 
idle>
(5)再次设置undo_management为auto,并重启数据库:
idle> alter system set undo_management = auto scope=spfile
  2  /
 
System altered.
 
idle> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
idle> startup;
ORACLE instance started.
 
Total System Global Area  835104768 bytes
Fixed Size                  2293880 bytes
Variable Size             469766024 bytes
Database Buffers          356515840 bytes
Redo Buffers                6529024 bytes
Database mounted.
Database opened.
idle> desc dba_objects;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                              VARCHAR2(128)
 OBJECT_NAME                                        VARCHAR2(128)
 SUBOBJECT_NAME                                     VARCHAR2(128)
 OBJECT_ID                                          NUMBER
 DATA_OBJECT_ID                                     NUMBER
 OBJECT_TYPE                                        VARCHAR2(23)
 CREATED                                            DATE
 LAST_DDL_TIME                                      DATE
 TIMESTAMP                                          VARCHAR2(19)
 STATUS                                             VARCHAR2(7)
 TEMPORARY                                          VARCHAR2(1)
 GENERATED                                          VARCHAR2(1)
 SECONDARY                                          VARCHAR2(1)
 NAMESPACE                                          NUMBER
 EDITION_NAME                                       VARCHAR2(128)
 SHARING                                            VARCHAR2(13)
 EDITIONABLE                                        VARCHAR2(1)
 ORACLE_MAINTAINED                                  VARCHAR2(1)
 
idle>
到此,该问题成功解决。

ORA-01157错误,丢失undo tablespace中数据文件的解决方法的更多相关文章

  1. 不能往Windows Server 2008 R2 Server中复制文件的解决方法

    目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度找到了解决方法,特此记录(记忆). 1.在任务管理器中找到“rdpclip.e ...

  2. Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。

    Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法. 在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首 ...

  3. 表空间tablespace,数据文件datafiles,和控制文件control files介绍

    https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm#i5919 本文系翻译 表空间tablespace,数据文件da ...

  4. 错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application

    错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)否则 JavaFX 应用程序类必须扩展ja ...

  5. (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

    早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...

  6. ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法

    ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 (2016-10-21 16:49:53)   今天在做一个查询的时候,报了一个"ORA-01652无法通过 ...

  7. Oracle中的 UPDATE FROM 解决方法

    转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...

  8. 错误Name node is in safe mode的解决方法 (转)

    原文链接:错误Name node is in safe mode的解决方法 将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode 这是因为在分布式文件系统启动的 ...

  9. C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法

    最近在做项目的时候需要操作ftp进行文件的上传下载,但在调用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的时候总 ...

随机推荐

  1. Oracle中把一个DateTime的字符串转化成date类型。to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'),

    Oracle中把一个DateTime或者该形态字符串转化成date类型. to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'), 或者: sele ...

  2. Centos下Tomcat 安装Apache Portable Runtime

    APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心. APR有很多用途,包括访问高级IO功能(例如sendfile,epo ...

  3. 洛谷 U4792 Acheing 单调队列

    U4792 Acheing 5通过 43提交 题目提供者Acheing 标签 难度尚无评定 提交 最新讨论 暂时没有讨论 题目背景 题目并没有什么含义,只是想宣传一下自己的博客,Acheing.com ...

  4. HTML5商城开发三 jquery 星星评分插件

    展示:

  5. JAVA JPA - 示例用法

    JPA(Java Persistence API)是JSR(Java Specification Requests)的一部分,定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate. ...

  6. 【算法之美】你可能想不到的归并排序的神奇应用 — leetcode 327. Count of Range Sum

    又是一道有意思的题目,Count of Range Sum.(PS:leetcode 我已经做了 190 道,欢迎围观全部题解 https://github.com/hanzichi/leetcode ...

  7. [Python]新手写爬虫全过程(已完成)

    今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...

  8. 自己存档:table 的css

    border:0;margin:0;border-collapse:collapse;border-spacing:0;

  9. IT人员如何保护视力

    最近感觉眼比较难受,有点干,估计是因为用上老婆淘汰的iPhone5C后屏幕太小,而我又是一个手机瘾重点患者的原因.为了保持自己5.0+的视力,做了以下工作,分享给各位朋友: Win7电脑将字体放大到1 ...

  10. Mysql与Redis的同步实践

    一.测试环境在Ubuntu kylin 14.04 64bit 已经安装Mysql.Redis.php.lib_mysqludf_json.so.Gearman. 点击这里查看测试数据库及表参考 本文 ...