>  기사  >  데이터 베이스  >  oracle数据库之删除数据文件[物理地删除一个数据文件但它的信息

oracle数据库之删除数据文件[物理地删除一个数据文件但它的信息

WBOY
WBOY원래의
2016-06-07 15:46:121204검색

没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):因为使用alter database datafile 'name' offline drop,也可以物理的删除一个数据文件但它的信息仍然记录在数据字典中(不影响

没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):因为使用alter database datafile 'name' offline drop,也可以物理的删除一个数据文件但它的信息仍然记录在数据字典中(不影响数据库的运行)。

如果数据库运行在非归档模式:

1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline drop
3. 打开(OPEN)数据库 - alter database open
4. 查看属于该表空间的所有对象:
       select owner, segment_name, segment_type
       from dba_segments
       where tablespace_name='tbs_name'
5. 导出该表空间的所有对象------用exp命令来做
6. 删除表空间 - drop tablespace tbs_name including contents
7. 删除这个表空间的所有物理的数据文件Delete the physical datafiles belonging to the tablespace
8. 重建表空间,导入前面导出的DMP文件.


如果数据库是运行在归档模式:

1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline
(Note: offline这个数据文件,此数据文件还是属于这个数据库的一部分,只是在控制文件中将它的状态标记为offline.)
3. 在操作系统一级删除物理的数据文件
4. 打开(OPEN)数据库 - alter database open
5. 后面的可以做下面操作:
导出该表空间的对象
删除表空间
重建表空间并导入对象

如果数据库运行在归档模式下,并且数据文件有备份:

1.MOUNT数据库
2.OFFLINE数据文件:alter database datafile xxx offline;
3.将备份的数据文件拷贝到原来数据文件的位置.
4.将备份数据文件到目前的所有归档日志放到归档目录.
5.恢复数据文件:recover automatic datafile xxx(要输入全路径名)
6.然后ONLINE数据文件:alter database datafile xxx online;
7.打开(OPEN)数据库:alter database open;
8.做一次数据库的关机全备份.


注释:

用于异地冷恢复


参考:

www5.1616.net/

删除数据文件 oracle  谷歌

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.