在我们详细介绍之前,我们必须说清楚一点: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 file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除:

sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files

2  where tablespace_name='USERS';

FILE_ID  FILE_NAME                        TABLESPACE_NAME

-------    --------------------------------------------       ------------------

4        /u01/app/oracle/oradata/orcl/users01.dbf    USERS

sys@ORCL>alter tablespace users add datafile

2  '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;

Tablespace altered.

sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files

2  where tablespace_name='USERS';

FILE_ID  FILE_NAME                          TABLESPACE_NAME

-------    --------------------------------------------        -------------------

4        /u01/app/oracle/oradata/orcl/users01.dbf     USERS

9        /u01/app/oracle/oradata/orcl/users02.dbf     USERS

sys@ORCL>drop table test;

Table dropped.

sys@ORCL>create table test tablespace users

2  as

3  select * from dba_objects;

Table created.

sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

2  where file_id=9;

SEGMENT_NAME                      FILE_ID     BLOCKS

------------------------------                  ----------      ----------

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9          8

TEST                                    9        128

TEST                                    9        128

17 rows selected.

sys@ORCL>alter table test move tablespace PERFSTAT; --把表移动到其它表空间

Table altered.

sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

2  where file_id=9;

no rows selected

sys@ORCL>alter tablespace users drop datafile

2  '/u01/app/oracle/oradata/orcl/users02.dbf';

Tablespace altered.

2  where tablespace_name='USERS';

FILE_ID  FILE_NAME                       TABLESPACE_NAME

-------    --------------------------------------------      ---------------------

4        /u01/app/oracle/oradata/orcl/users01.dbf   USERS

三、oracle 10g可以删除临时表空间的文件

alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;

Oracle 删除数据后释放数据文件所占磁盘空间

测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小.经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办 ...

linux删除数据文件无备份恢复

参考 : http://www.lunar2013.com/2013/06/linux-%E8%AF%AF%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E6%81%A2%E ...

oracle删除日志文件

oracle删除日志文件 删除日志文件的语法例如以下: alter database drop logfile member logfile_name; 删除日志文件须要注意例如以下几点: 1.该日志 ...

Oracle-11g 从表空间删除数据文件

从表空间删除数据文件前提条件 如果欲从表空间中删除数据文件,那么该数据文件必须为空,否则将报出"ORA-03262: the file is non-empty"的错误.   从表 ...

Oracle单个数据文件超过32G后扩容

Oracle单个数据文件超过32G后扩容   表空间数据文件容量与DB_BLOCK_SIZE的设置有关,而这个参数在创建数据库实例的时候就已经指定.DB_BLOCK_SIZE参数可以设置为4K.8K. ...

oracle删除数据后表空间仍过大问题解决方法

-----亲测有效------- --一.备份原始数据库库--1.备份空表--在plsql里面执行一下这句话 然后把结果集 再执行一把 再导数据select 'alter table '||table ...

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不 ...

Oracle误删数据文件后出现oracle initialization or shutdown in progress解决

一.错误分析 1.首先本人在出现这种情况的背景是执行如下SQL语句后生成的表空间 --自定义表空间 数据表空间 临时表空间 CREATE TEMPORARY TABLESPACE HOUSE_TEMP ...

随机推荐

计算Div标签内Checkbox个数或已被disabled的个数

先看下面的html: 计算div内的checkbox个数:$('#divmod input[type="checkbox"]').length 计算div内checkbox被dis ...

UVA10325 The Lottery(容斥原理)

题意: 给n,m,和m个数(k1~km).求1~n中有多少个数不是(k1~km)中任意一数的倍数. 题解: 容斥模板题.反面考虑,a的倍数有n/a个:既是a,也是b的倍数,即lcm(a,b)的倍数有n ...

PHP 图片上传工具类(支持多文件上传)

====================ImageUploadTool======================== <?php class ImageUploadTool { private ...

工厂食堂3D指纹考勤系统解决方案

指纹考勤就餐管理系统利用3D活体指纹技术完成对正式员工就餐管理.就餐者只需办理完入职手续,并登记考勤指纹,就可通过考勤指纹在工厂食堂领餐. 大多数工厂食堂就餐是福利性的,只准员工就餐,不准员工带亲戚朋 ...

轻量级ORM框架 Dapper快速学习

好在有师兄师姐一起带着做,所以开始没那么困难,但是由于大学涉猎范围有限,往往有很尴尬的时候,不懂构造方法重载,去“请教”,本来以为师兄会帮忙写好,结果“我念,你来写”,被深深的激励了一把,后来就早出晚 ...

WordPress翻译中 &lowbar;&lowbar;&lpar;&rpar;、&lowbar;e&lpar;&rpar;、&lowbar;x、&lowbar;ex 和 &lowbar;n 的用法及区别

编译函数 WordPress使用了下面几个函数来方便语言本地化. __() _e() _x() _ex() _n() 以上所列的函数是用来包含所需翻译的字符串的,根据字符串的不同参数和输出类型,需要使 ...

java读取properties配置文件信息

一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...

SpringContextHolder 静态持有SpringContext的引用&lpar;如何取得Spring管理的bean &rpar;

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

重新安装Ubuntu12&period;04

重新安装Ubuntu12.04 之所以我重新安装Ubuntu,因为我第一次给根目录分配的空间过小,好像是20GB吧~结果编译Android的时候,编译了3个小时候直接中止掉了.郁闷.这个也告诉我们一定 ...

C&num;代码实现,确保windows程序只有一个实例(instance)

static class Program { /// /// 应用程序的主入口点. /// [STAThread] static vo ...

oracle怎么将数据删除文件,oracle删除数据文件相关推荐

  1. oracle 如何添加数据文件,Oracle教程 误添加数据文件删除方法

    如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除. 但是从Oracle10gR2开始,Oracle允许我们彻底删 ...

  2. Oracle入门(七B)之表空间删除数据文件未删除

    转载自 oracle表空间删除数据文件未删除 清理老旧数据的时候,不太熟悉操作,直接把表空间删了,未删除数据文件, HIS20170927此表空间已删除但数据文件还在,这时新创建一个表空间直接指定到这 ...

  3. oracle物理文件删除如何恢复,Oracle数据文件物理删除后的恢复

    做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭) 建立测试表空间 创建测试用户 插入测试数据 删除数据文件 恢复数据 ...

  4. oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...

    天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...

  5. oracle 之删除表空间及数据文件方法

    -删除空的表空间,但是不包含物理文件 drop tablespace tablespace_name; --删除非空表空间,但是不包含物理文件 drop tablespace tablespace_n ...

  6. php删除oracle数据记录日志文件,Oracle手动切换日志文件和清空日志文件

    日志文件组是循环使用的,当一组日志文件被写满时,Oracle系统自动的切换到下一组日志文件.在需要的时候,数据库管理员也可以手 Oracle切换日志文件组 日志文件组是循环使用的,当一组日志文件被写满 ...

  7. AIX LV删除后,ORACLE数据库文件全部恢复成功

    [数据恢复故障描述] IBM AIX系统,破坏前存储由4个500G的PV组成1个VG,VG中划分了5个文件系统:2个JFS2,2个JFS2LOG,1个JFS,两个JFS2中重要的一个由2组LV条带化后 ...

  8. ORACLE实例控制文件删除恢复,Oracle案例:损坏控制文件的恢复方法

    一: 损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了. 1.控制文件损坏, ...

  9. oracle procedures批量删除带索引条件数据很慢_见微知著,数据库应用设计优化浅谈...

    作者简介 刘晨 中航信研发中心 运维经理 前言:众所周知对于 OLTP 的交易系统最重要的操作就是数据库的CRUD,数据库层面或者SQL优化的程度,对于整个系统的并发处理能力起到至关重要的作用. 很多 ...

  10. Oracle查询优化-04插入、更新与删除数据

    4.1 插入新记录 问题 向表中插入一条新的记录. 解决方案 使用带有values子句的insert语句来插入一行. insert into dept(deptno,dname,loc) values ...

最新文章

  1. Java项目:在线婚纱摄影预定系统(java+javaweb+SSM+springboot+mysql)
  2. docker ps 列出容器 命令简介
  3. 【数据挖掘笔记四】数据仓库和联机分析处理
  4. DL之Attention:Attention注意力机制的简介、应用领域之详细攻略
  5. 网易试题——关于箭头函数与this和arguments的关系
  6. php asserttrue,PHP8.0的新特性:错误处理方面已经改进
  7. html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸
  8. MYSQL PGA SGA设置
  9. 2021华为杯数学建模获奖经验分享
  10. 文员常用的8个excel函数
  11. HaaS低功耗IP Camera解决方案
  12. JS数组ES3-ES6常用方法
  13. linux内核态访问串口,linux内核中串口驱动注册过程(tty驱动)[转]
  14. 1月1号开始租房一年期到几号_先承认我迷糊。现在请帮忙,租房合同中从7月1日起到次年的几月几日是一年日期?是6月31日还是7月31日...
  15. 学生党如何拿到阿里技术offer
  16. 根据脸部毛孔生长方向去护肤
  17. Linux下Apache服务的部署和配置
  18. think-swoole简易使用教程--websocket
  19. Word中的插入页眉 ?Word中页眉横线如何删除?
  20. Authentication和Authrization(下)

热门文章

  1. 如何按行政区划下载谷歌卫星地图并裁剪
  2. 运营商级ICT项目建设之雪亮工程方案,提升群众安全感
  3. 使用stress,压力测试K8S的POD cpu
  4. JDY-19蓝牙模块介绍及主、从机调试演示
  5. flash制作文字笔顺_用FLASH制作汉字笔顺动画
  6. laravel较优雅的分表关联查询(性能较好,SQL的数量=表的数量,涵盖了较多laravel手册推荐的方法)...
  7. 【中山大学】【东校区】【无线路由】【wr703n】【openwrt】电脑客户端的iptv网络电视在无线路由下不能打开的解决方法
  8. JavaWeb开发——JSP技术
  9. VMware安装esxi6.7
  10. Ubuntu 20.04桌面美化