Oracle10gR2如何删除误添加的空文件Oracle认证考试
文章作者 100test 发表时间 2009:05:07 18:20:03
来源 100Test.Com百考试题网
如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。
但是从Oracle10gR2开始,Oracle允许我们彻底删除一个空文件,不留痕迹。
但是注意:如果你向SYSTEM表空间错误的添加了一个文件,那么就让它在哪里好了,不要动。
对于普通表空间,则可以参考以下步骤处理。
数据库版本Oracle10gR2:
SQL>. 0select * from v$version.
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
向USERS表空间增加一个数据文件:
SQL>. alter tablespace users add datafile /opt/oracle/oradata/eygle/users02.dbf size 10M.
Tablespace altered.
SQL>. 0select file#,name from v$datafile.
FILE# NAME
---------- --------------------------------------------------
1 /opt/oracle/oradata/eygle/system01.dbf
2 /opt/oracle/oradata/eygle/undotbs01.dbf
3 /opt/oracle/oradata/eygle/sysaux01.dbf
4 /opt/oracle/oradata/eygle/users01.dbf
5 /opt/oracle/oradata/eygle/users02.dbf
5 rows 0selected.
确认表空间文件信息:
SQL>. 0select file_name,file_id from dba_data_files where tablespace_name= USERS .
FILE_NAME FILE_ID
-------------------------------------------------- ----------
/opt/oracle/oradata/eygle/users02.dbf 5
/opt/oracle/oradata/eygle/users01.dbf 4
确认表空间未被存储占用:
SQL>. 0select segment_name,file_id,blocks from dba_extents where file_id=5.
no rows 0selected
删除表空间中的空数据文件:
SQL>. alter tablespace users 0drop datafile /opt/oracle/oradata/eygle/users02.dbf .
Tablespace altered.
检查数据字典,这个空文件的信息已经被彻底清除了:
SQL>. 0select file_name,file_id from dba_data_files where tablespace_name= USERS .
FILE_NAME FILE_ID
-------------------------------------------------- ----------
/opt/oracle/oradata/eygle/users01.dbf 4
不过删除文件时一定注意反复确认,拒绝误操作!
补充一点:要删除的数据文件不能是所在表空间的第一个数据文件,还有就是如果该数据文件不为空的话,做删除操作时会失败,提示不能被删除,也就是说不会误删除存在数据的数据文件。
更多优质资料尽在百考试题论坛 百考试题在线题库