`
yinchunjian
  • 浏览: 283076 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

误删Oracle dbf 文件后的补救措施

阅读更多
  • scenario

oracle主机上磁盘空间为0了,我查了一下,发现oracle的文件夹占用了 10g以上的空间,又发现有3个我以前创建的早就不用的.dbf文件占据了将近2G的空间,以前好像曾经做过删除,怎么现在还在?二话不说,删!系统报告 说这三个文件还在使用中。这还了得?不容置疑停止oracle服务,删除了这三个文件,然后重启oracle服务。。。。天塌了!!!oraclelistener虽然还能起来,但是别人远程连接,都是ORA-01033: ORACLE initialization or shutdown in progress的错误。

糟了糟了,这下死翘翘了,QA们打电话说他们的service manager连不上了,因为这个oracleSM7DB所在。我的心跳频率一下子升高为平常的两倍(据同事后来说,我当时连给他们的office communicator发的消息都是胡言乱语了…)。匆匆忙忙找了资料,就开始动手了。

  • solution

lsnrctl stop
sqlplus internal
SQL> shutdown abort
SQL> startup
mount
SQL
> alter database datafile 'ovsd45.dbf' offline drop;
SQL> alter database open;
SQL> drop tablespace ovsd45.dbf;
lsnrctl start

(以上忽略屏幕输出的内容)

 

  • action

lsnrctl stop
sqlplus internal
SQL> shutdown abort
SQL> startup
mount

这几个steps都挺正常的,但是我删除的datafile name是什么呢?我想不起来了L,近乎绝望的时候,突然想起来该去找log文件,说不定能找到呢。抱着一丝----真的是一丝的希望,天不绝人啊,果然让我找到\admin\ora10g(数据库名)\bdump\alert.ora10g.log,里面就有这么一段错误:

Thu Feb 12 15:45:56 2009

Errors in file c:\oracle\product\10.1.0\admin\ora10g\bdump\ora10g_dbw0_2784.trc:

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

ORA-01110: data file 5: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\TEAM\ORA10G\OVSDOVSD45_DATA.DBF'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) The system cannot find the file specified.

 

Thu Feb 12 15:45:56 2009

Errors in file c:\oracle\product\10.1.0\admin\ora10g\bdump\ora10g_dbw0_2784.trc:

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

ORA-01110: data file 6: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\TEAM\ORA10G\OVSDOVSD45_INDEX.DBF'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) The system cannot find the file specified.

 

Thu Feb 12 15:45:56 2009

Errors in file c:\oracle\product\10.1.0\admin\ora10g\bdump\ora10g_dbw0_2784.trc:

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

ORA-01110: data file 202: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\TEAM\ORA10G\OVSDOVSD45_TEMP.DBF'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) The system cannot find the file specified.

C:\ORACLE\PRODUCT\10.1.0\ORADATA\TEAM\ORA10G下分别创建3个空文件,名字分别为“OVSDOVSD45_DATA.DBF”、“OVSDOVSD45_INDEX.DBF”、“OVSDOVSD45_TEMP.DBF”,接下来的就是执行:

SQL> alter database datafile ' OVSDOVSD45_DATA.DBF ' offline drop;

SQL> alter database datafile ' OVSDOVSD45_INDEX.DBF ' offline drop;

SQL> alter database datafile ' OVSDOVSD45_TEMP.DBF ' offline drop;

SQL> alter database open;

tablespace?我的tablespace叫啥名字了。。。不管了,跳过这一步

SQL> drop tablespace ovsd45.dbf;

直接执行

lsnrctl start

然后,从PL/SQL再登陆,咦,可以了!赶紧以sys身份登陆以后,赶紧drop掉刚才找回来的那些dbf文件的tablespace,然后check其他连接,心跳总算又恢复正常了。

分享到:
评论

相关推荐

    oracle导出成dbf文件工具

    自己用python写的工具。 支持根据sql语句查询出的结果,导出到dbf文件中。要求是查询出的结果顺序,必须...前提是必须提供dbf模板文件,以确定dbf文件各个字段的长度等信息。 目前支持10g,11g 的oracle client版本。

    Oracle通过DBF恢复数据

    本文将详细介绍在没有备份的情况下,如何通过数据文件(DBF)来恢复Oracle数据库。 #### 二、准备工作 在开始恢复工作之前,我们需要做一些必要的准备工作: 1. **确认数据文件(DBF)存在**:首先确认原始数据库中的...

    DBF格式的数据导入oracle的流程

    在“传到 Oracle 的数据”(Data to Oracle)标签下,我们需要选择要导入的表,并注意字段是否对应正确,Fields 中前一列是 DBF 表中的字段,对应着的后一列是要导入到的 Oracle 表中的字段,注意区分,不要发生错误...

    Oracle根据DBF文件恢复.rar

    本篇将详细讲解如何使用Oracle数据库的数据文件(DBF)进行恢复。 首先,我们要了解Oracle数据库的结构。在Oracle中,数据以数据块(Data Blocks)的形式存储在数据文件(Database Files,简称DBF)中,这些文件...

    oracle移动DBF文件

    文档详细的介绍了oracle数据库如何实现dbf文件从一个盘迁移到另一个盘。

    Oracle11g 崩溃后-dbf数据库文件恢复

    当Oracle 11g数据库遭遇崩溃时,如何有效地恢复数据,特别是dbf(数据文件)变得尤为关键。Oracle 11g版本,即11.2.0,提供了多种恢复策略来应对这种情况。在这个过程中,log文件(redo logs)和ctl控制文件起着决定...

    oracle数据文件被误删除后的灾难处理

    #### 二、Oracle 数据文件误删后的初步应对措施 1. **检查错误日志**:误删除数据文件后,通常会在 Oracle 的 alert 日志中记录相关的错误信息。这些信息对于后续的恢复操作至关重要。 - 示例错误信息: ``` ORA...

    误删除了Oracle的dbf文件后的解决方法

     误删除Oracle数据库的dbf文件,在启动和关闭数据库是会提示错误。  startup启动数据库时提示:  ORA-01157:无法标识/锁定数据文件  ORA-01110:数据文件:‘……/X1000_1.dbf' 未找到  解决方法:  1...

    读dbf文件的例程

    `DBF.EXE` 可能是一个编译后的可执行文件,它是`dbf.c`源代码经过编译和链接后的产物。用户可以通过运行这个程序,将`tt.dbf`文件作为参数,查看程序读取DBF文件的效果。这有助于在TC环境下验证程序的功能和性能。 ...

    Oracle的UNDOTBS01.DBF文件太大的解决办法

    ### Oracle的UNDOTBS01.DBF文件太大的解决办法 在Oracle数据库管理过程中,可能会遇到UNDOTBS01.DBF文件过大的问题。这个问题通常出现在数据库执行了大量的DML(数据操纵语言)操作后,例如更新(UPDATE)、插入...

    Oracle11g通过DBF恢复数据

    首先,DBF文件在Oracle数据库中扮演着核心角色,它们存储了数据库的所有表、索引和其他对象的数据。当数据库遇到问题,如硬件故障、逻辑错误或人为失误导致的数据丢失,DBF文件的备份和恢复能力就显得至关重要。 ...

    Oracle dbf文件移动的方法

    在Oracle数据库环境中,dbf文件(数据文件)是存储数据库数据和对象的主要文件。当遇到空间不足的问题时,有时需要将这些文件移动到其他更大的存储位置。本篇将详细介绍如何安全地移动Oracle dbf文件。 1. **背景...

    C++ 操作dbf文件(深入剖析dbf文件)

    DBF(dBase File)是一种流行的、基于磁盘的表格文件格式,最初由dBase II系统引入。这些文件被广泛用于早期的桌面数据库管理系统,如Visual FoxPro。在本文中,我们将深入探讨如何使用C++来操作DBF文件,无需依赖...

    DBF数据导入oracle表处理方法

    6. 完成表创建后,切换到 Data to Oralce 选项页,选择 Owner 和 Table,然后点击 Import 按钮以将 DBF 文件中的数据导入到新创建的表中。 验证数据导入 使用 Oracle SQL 窗口执行以下命令以验证数据导入结果: `...

    java解析dbf文件方案.pdf

    Java 解析 DBF 文件方案 Java 解析 DBF 文件方案是使用 Java 语言来读取和解析 DBF 文件的方法。DBF 文件是一种常见的数据库文件格式,广泛应用于许多行业。为了读取和解析 DBF 文件,需要使用 Java 语言中的数据库...

    使用Java实现对dbf文件的简单读写

    使用 Java 实现对 dbf 文件的简单读写 Java 是一种广泛使用的编程语言,对于读写 dbf 文件具有重要的应用价值。本文将介绍使用 Java 实现对 dbf 文件的简单读写,包括读写 dbf 文件的基本步骤、相关类的介绍、代码...

    DBF文件格式 DBF文件格式

    DBF文件格式,全称是dBase File Format,是由dBase系列数据库管理系统创建的一种数据库文件格式。这种格式在1980年代至1990年代初期非常流行,尤其是在个人计算机上进行数据管理时。DBF文件是基于表格的数据存储方式...

    读取.xls、.dbf文件信息并录入oracle数据库

    在这个实验中,我们将探讨如何利用Oracle数据库管理系统来读取和处理两种不同类型的数据文件:`.xls`(Excel)和`.dbf`(dBase文件)。这些文件通常用于存储表格数据,广泛应用于数据分析、报表生成和其他业务操作。...

    c++ DBF 读取数据库DBF格式,实例代码

    DBF(dBASE File)是一种流行的、基于文件的数据库格式,尤其在早期的桌面应用程序中广泛使用。C++是一种强大的编程语言,能够处理各种任务,包括与数据库的交互。本文将深入探讨如何在C++中读取DBF格式的数据库,...

    只剩下oracle 文件恢复全过程

    在IT领域,尤其是在数据库管理与恢复方面,Oracle数据库的文件恢复是一个极其关键且技术含量较高的过程。根据给定的文件信息,“只剩下oracle 数据文件恢复以前数据库全过程”这一标题明确指向了Oracle数据库的数据...

Global site tag (gtag.js) - Google Analytics