oracle 小议如何从表空间 删除 数据文件

简介: Oracle不提供如删除表。 视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。 在对表空间/数据文件进行任何脱机、删除之前,首先对数据库进行一个全备份。

Oracle不提供如删除表。

视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。

在对表空间/数据文件进行任何脱机、删除之前,首先对数据库进行一个全备份。

如果数据文件是所在表空间的唯一的数据文件,你只要简单地删除表空间即可:

DROP TABLESPACE INCLUDING CONTENTS;

你可以运行下面的命令来查询表空间包含多少数据文件。

select file_name, tablespace_name

from dba_data_files

where tablespace_name ='';

DROP TABLESPACE命令从Oracle数据字典删除表空间、数据文件和表空间的内容。Oracle不会再访问该表空间中的任何内容。物理地删除文件需要使用操作系统命令(Oracle从不物理地删除文件注:本文是针对8i或者之前,9i可以使用including datafile选项来删除物理文件>),依赖你的操作系统平台,有的操作系统需要Oracle完全关闭才才可以删除(例如在WINDOWS NT 中需要关闭数据库,停掉相应的服务,在有的情况下Oracle还可能持有文件锁)。

如果你的表空间有多个数据文件,而你不需要表空间中的内容,或者你可以很容易重新生产表空间的内容,你可以使用DROP TABLESPACE INCLUDING CONTENTS;命令来从Oracle数据字典删除表空间、数据文件和表空间的内容。Oracle不会再访问该表空间中的任何内容。然后重新创建表空间并重新导入数据。

如果你的表空间有多个数据文件,而你还需保留该表空间中的其它数据文件中的内容,则你必须首先export出该表空间中的所有内容。为了确定表空间中包含那些内容,运行:

select owner,segment_name,segment_type

from dba_segments

where tablespace_name=''

export出你想保留的内容。如果export结束,你可以使用DROP TABLESPACE tablespace INCLUDING CONTENTS. 这样永久删除表空间的内容,使用操作系统命令物理删除数据文件,按所需数据文件重新创建表空间,把数据import至表空间。

注意:

ALTER DATABASE DATAFILE OFFLINE DROP命令不能允许你删除数据文件,它的目的是脱机该数据文件以删除表空间。如果在归档模式下,使用ALTER DATABASE DATAFILE OFFLINE DROP来代替OFFLINE DROP。一旦数据文件脱机,Oracle不会再访问该数据文件的内容,但它仍然是表空间的一部分。这个数据文件在控制文件中标记OFFLINE,在数据库启动时不会对它与控制文件进行SCN的比较。在控制文件中保留这个数据文件的入口是方便以后的恢复。

如果你不想按照上述方法来删除表空间,还有其它一些解决方法。

1.         如果你想删除数据文件的原因是因为分配了不合适的文件大小,你可以考虑RESIZE命令。

2.         如果你不小心增加了一个数据文件,而这个文件还没有分配空间,你可以使用

ALTER DATABASE DATAFILE RESIZE;命令使其小于5个 Oracle块大小,如果数据文件的大小小于这个,Oracle将不会进行扩展数据文件。在以后,Oracle可以重建的时候来剔除这个不正确的文件。

目录
相关文章
|
6天前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
47 2
|
6天前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
12 0
|
6天前
|
SQL Oracle 关系型数据库
Oracle 数据泵导出导入(映射表空间、Schema)
Oracle 数据泵导出导入(映射表空间、Schema)
|
6天前
|
运维 Oracle 安全
Oracle的三重奏:密码文件、警告文件与跟踪文件
【4月更文挑战第19天】Oracle数据库的三大守护者:密码文件保护系统免受未经授权访问,如同宝藏的“密码锁”;警告文件似“哨兵”,记录错误信息,助于及时解决问题;跟踪文件扮演“侦探”角色,详尽记录操作,便于性能优化和故障排查。这三份文件共同确保数据王国的安全与稳定。作为管理员,重视并善用它们是关键。
|
6天前
|
运维 Oracle 关系型数据库
Oracle服务器参数文件:数据王国的“调控大师”
【4月更文挑战第19天】Oracle服务器参数文件,数据库的“调控大师”,掌控着内存管理、进程调度等关键设置。通过参数调整如SGA_MAX_SIZE和PROCESSES,实现性能优化和故障防控。虽然挑战重重,但成功的性能调优带来无尽成就感。它在备份恢复中也扮演重要角色,保障数据一致性与可用性。成为真正的“调控大师”,为数据王国效力!
|
6天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。
|
6天前
|
存储 Oracle 安全
Oracle控制文件:数据王国的导航仪
【4月更文挑战第19天】Oracle控制文件是数据库的关键组件,存储结构信息和元数据,用于数据库启动、恢复。它指引数据库找到所需文件,保证数据完整性。控制文件的多重备份和定期更新确保其安全可靠。作为数据库导航仪,它对管理员理解和维护数据库至关重要,为数据存储和恢复提供关键支持。
|
6天前
|
存储 监控 Oracle
Oracle数据文件:数据王国的秘密藏宝图
【4月更文挑战第19天】Oracle数据文件是数据库物理存储的核心,存储实际数据,犹如数据王国的宝藏。它们对数据库性能至关重要,影响数据分布和访问效率。有效管理数据文件涉及合理规划大小、数量,监控使用情况,利用自动扩展功能,并能实现跨磁盘存储和高可靠性。理解数据文件原理有助于优化数据库性能和资源利用,发掘更多数据潜力。
|
6天前
|
Oracle 关系型数据库
oracle 修改表空间文件路径方法
oracle 修改表空间文件路径方法
|
6天前
|
Oracle 关系型数据库 数据库
Oracle系列之五:Oracle表空间
Oracle系列之五:Oracle表空间