`
likesky
  • 浏览: 31759 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

数据文件未成功创建时删除

阅读更多
数据文件在未创建成功时
alter database datafile '......' offline drop
然后手工删除数据文件
但是这样,可能存在隐患


在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表、视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。(表空间是作为一个整体存在的)

一、使用offline数据文件的方法
非归档模式使用:alter database datafile '...' offline drop;
归档模式使用:  alter database datafile '...' offline;
说明:
1)         以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。
2)         归档模式下offline和offline drop效果是一样的
3)         offline后,存在此datafile上的对象将不能访问
4)         noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作

实际使用案例:
直接删除数据文件后无法进入系统的解决方案

正常情况下,删除表空间的正确方法为:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。

如果直接删除了数据文件
普通用户登录时,则报错:
ORA-01033: ORACLE initialization or shutdown in progress
sys用户可以正常登录
但进行操作时(SELECT count(1) from user_tables),则会报错:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
如果执行命令alter database open以打开数据库时,又报如下错:
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 12: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF'

说明数据库没找到这个数据文件
因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.
通过以下方法即可解决

解决方法:
sqlplus sys/orcl@orcl as sysdba;
SQL> alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF' offline drop;
SQL> alter database open;
SQL> drop tablespace CTBASEDATA;

二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile fi ......
分享到:
评论

相关推荐

    如何正确的删除Oracle表空间数据文件

    在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...

    Android文件创建删除

    无论是保存用户数据、缓存资源还是存储应用程序内部数据,都需要对文件进行创建、读取、更新和删除等操作。本篇文章将详细探讨Android中的文件和文件夹创建以及如何进行批量删除。 ### 文件与文件夹创建 在Android...

    ASP.NET 创建文件、删除文件及写入数据

    本文详细介绍了在ASP.NET中如何进行文件创建、读取和删除的基本操作,并提供了相应的示例代码。通过学习这些基础操作,开发者可以更好地掌握ASP.NET中的文件处理技术,为构建更强大的应用程序打下坚实的基础。希望...

    vb做的创建文件,删除文件脚本

    在VB(Visual Basic)编程环境中,创建和删除文件是常见的操作,...具体到提供的压缩包文件“创建删除查看文件”,可能包含了实现这些功能的VB源代码,通过学习和理解这些代码,你可以进一步掌握VB文件操作的实践技巧。

    Qt文件操作详解(创建、写入、删除、INI、XML文件等) - 左霖风的博客 - CSDN博客1

    在Qt框架中,进行文件操作是非常常见的任务,包括创建、写入、删除文件以及处理特定格式如INI和XML文件。以下是对这些操作的详细说明: 1. 创建文件夹: 要创建一个新的文件夹,可以使用`QDir`类。首先包含头文件`...

    linux创建只读文件系统。用root也无法创建,无法删除文件.zip

    在Linux操作系统中,创建一个即使是root用户也无法修改或删除文件的只读文件系统是一个安全措施,可以保护系统的重要数据免受意外更改。这样的设置通常用于关键系统或存储关键信息的分区,以确保数据的完整性。以下...

    Oracle 表空间与数据文件

    创建表空间时需要指定数据文件的路径和名称,数据文件的大小和存储方式等。创建表空间时还需要指定表空间的 extent 管理方式,包括 DICTIONARY 和 LOCAL 两种方式。 Oracle 表空间的管理包括表空间的创建、修改和...

    c语言文件创建,删除等

    1. **文件创建**: 在C语言中,`fopen()` 函数用于打开或创建文件。如果文件不存在,`"w"` 模式会创建一个新的文件用于写入;`"a"` 模式会在文件末尾追加内容,如果文件不存在,也会创建新文件。例如: ```c FILE...

    归档模式恢复数据文件

    - 如果数据文件被物理删除,则需要创建一个新的数据文件来代替旧文件。例如,在给定内容中,尝试使用`alter database create datafile 7 as 'D:\ORACLE\ORADATA\ORA92\TEST01.DBF'`创建数据文件7,但是由于文件已被...

    js实现创建和删除系统文件

    然而,通过一些技巧和特定的API,如Node.js环境中的fs模块,我们可以实现创建和删除系统文件的功能。以下将详细介绍如何在不同环境下使用JavaScript来完成这一任务。 1. **Node.js环境**: - **fs模块**:在Node....

    Qt文件操作详解(创建、写入、删除、INI、XML文件等) - 左霖风的博客1

    在Qt框架中,进行文件操作是常见的任务,包括创建、写入、删除文件以及处理特定格式如INI和XML文件。以下是对这些知识点的详细说明: 1. 创建文件夹: 在Qt中,我们可以使用`QDir`类来管理文件夹。`QDir::exists()...

    数据文件恢复

    数据文件恢复涉及到一系列技术和工具,用于检索因各种原因(如硬件故障、软件错误、病毒攻击、误删除或格式化)而丢失的数据。 首先,Partition Magic是一款知名的磁盘分区管理工具,它允许用户创建、删除、调整和...

    文件索引的创建 文件索引的创建 文件索引的创建

    文件索引的创建是优化数据检索速度的重要手段,它使得用户或系统能够快速定位到所需的数据,大大减少了搜索时间。下面我们将深入探讨文件索引的创建及其相关概念。 首先,理解“索引”这一概念至关重要。索引就像是...

    数据库的创建与管理实验报告

    - 删除数据文件:删除未使用的数据文件“图书管理系统_data3”。 - 数据表创建:在“国脉图书管理系统”中创建名为“books”的表,包含 book_id(int 类型)、book_name(char(4) 类型)和 book_price(int 类型)...

    java 创建文件夹或文件

    临时文件通常用于存储一些程序运行时需要的数据,它们通常会在程序结束时被自动删除。创建临时文件可以使用`File.createTempFile()`方法,也可以手动创建并指定删除时间。 代码示例如下: ```java public static ...

    创建与删除本地文件,对手机的外部存储进行操作

    4. 删除文件时要小心,确保不会丢失重要数据。 5. 对于用户可访问的文件,应考虑文件的安全性和隐私保护,不要在外部存储中存储敏感信息。 总结来说,Android应用可以方便地对手机外部存储进行读写操作,但需注意...

    使用C++创建(打开)文件编程实例

    5. **错误处理**:使用条件判断检查文件创建及写入是否成功,并给出相应的反馈信息。 #### 四、扩展知识 - **文件操作模式**:除了`CREATE_ALWAYS`外,还可以使用`OPEN_EXISTING`(仅打开已存在的文件)、`CREATE_...

    基于文件微过滤驱动的文件创建监控程序 - MzfFileMon

    MzfFileMon项目通过实现文件微过滤驱动,提供了强大的文件创建监控能力,不仅展示了Windows驱动编程的技术深度,还为系统安全、数据管理和软件调试提供了实用工具。R0和R3层的结合使得监控既高效又直观,是学习和...

    创建包含个人数据的zip文件

    "创建包含个人数据的zip文件"这个话题就是关于如何高效且安全地将用户的个人信息整理并打包成可下载的压缩文件。这里主要涉及到PHP编程语言,特别是利用PHP的扩展功能来实现这一目标。我们将探讨PHP中的文件操作、...

    C#动态创建TXT文件并写入内容

    // 文件创建后,你可以在这里写入内容 } ``` 2. **写入内容**: 创建文件后,我们通常会使用StreamWriter类写入文本。`Write`或`WriteLine`方法可用于此目的。例如: ```csharp using (StreamWriter writer ...

Global site tag (gtag.js) - Google Analytics