早上好,给您新鲜的问候,温暖的祝福,清晨,美好的开端,祝您今天精神振奋,精力充沛,心情愉快,一切都很好!
如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。
但是从Oracle10gR2开始,Oracle允许我们彻底删除一个空文件,不留痕迹。
但是注意:如果你向SYSTEM表空间错误的添加了一个文件,那么就让它在哪里好了,不要动。
对于普通表空间,则可以参考以下步骤处理。
数据库版本Oracle10gR2:
SQL>select*fromv$version; BANNER ---------------------------------------------------------------- OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Prod PL/SQLRelease10.2.0.1.0-Production CORE10.2.0.1.0Production TNSforLinux:Version10.2.0.1.0-Production NLSRTLVersion10.2.0.1.0-Production |
向USERS表空间增加一个数据文件:
SQL>altertablespaceusersadddatafile'/opt/oracle/oradata/eygle/users02.dbf'size10M; Tablespacealtered. SQL>selectfile#,namefromv$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 5rowsselected. |
确认表空间文件信息:
SQL>selectfile_name,file_idfromdba_data_fileswheretablespace_name='USERS'; FILE_NAMEFILE_ID ------------------------------------------------------------ /opt/oracle/oradata/eygle/users02.dbf5 /opt/oracle/oradata/eygle/users01.dbf4 |
SQL>selectsegment_name,file_id,blocksfromdba_extentswherefile_id=5; norowsselected |
删除表空间中的空数据文件:
SQL>altertablespaceusersdropdatafile'/opt/oracle/oradata/eygle/users02.dbf'; Tablespacealtered. |
检查数据字典,这个空文件的信息已经被彻底清除了:
SQL>selectfile_name,file_idfromdba_data_fileswheretablespace_name='USERS'; FILE_NAMEFILE_ID ------------------------------------------------------------ /opt/oracle/oradata/eygle/users01.dbf4 |
本文Oracle好代码教程误添加数据文件删除方法到此结束。梦想需要反思,但更需要坚持、小编再次感谢大家对我们的支持!