博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10G删除空数据文件
阅读量:2496 次
发布时间:2019-05-11

本文共 4031 字,大约阅读时间需要 13 分钟。

sys@ORCL>alter tablespace users drop datafile

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

对于DataGuard,不能使用这个命令,否则redo会坏掉使得备库要重做。到10204还需打上Genernal Bundle。

[@more@]

作者 :【转载时请务必以超链接形式标明文章原始出处和作者信息】

链接:

Oracle 9I、10G都可以采用:Alter database datafile file_name offline drop;来删除数据文件,但当数据文件为非空时,存放在该数据文件上的数据就无法读据了:

SYS@sky> alter database datafile  2  'E:USERS03.DBF' offline drop; 数据库已更改。 SYS@sky> select count(*) from test01;select count(*) from test01                     *ERROR 位于第 1 行:ORA-00376: 此时无法读取文件 6ORA-01110: 数据文件 6: 'E:USERS03.DBF'

采用该命令来删除数据文件,相关数据字典信息是无法清除的:

SYS@sky> select FILE#,TS#,name,status from v$datafile  2  where ts#=4; FILE#  TS# NAME                              STATUS----- ---- --------------------------------- -------    2    4 E:USERS02.DBF                    ONLINE    4    4 E:USERS01.DBF                    ONLINE    6    4 E:USERS03.DBF                    RECOVER

不过这条命令在恢复时还是很挺有用的,比如只恢复某个表空间的数据时,其它表空间的数据文件就可以offline drop了。

从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          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9          8TEST                                    9        128TEST                                    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. 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>

当然如果数据文件是非空的,drop时就有提示了:

sys@ORCL>alter tablespace users drop datafile  2  '/u01/app/oracle/oradata/orcl/users02.dbf';alter tablespace users drop datafile*ERROR at line 1:ORA-03262: the file is non-empty

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/668365/viewspace-1022666/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/668365/viewspace-1022666/

你可能感兴趣的文章
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>