如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

  本文信息适用于:   症状   你在归档日志模式下脱机drop了一个数据文件 你知道一旦drop了一个数据文件,你需要重建包含该数据文件的表空间 因为这是一个大型表空间,你无法这么做 你想要该数据文件再次成为数据库的一部分 即使你不想要该数据文件包含任何对象   更改   你能恢复脱机数据文件然后使其联机 因为你不想要任何对象被分配到该数据文件 你可以将其重新调整为非常小(记得仅当数据文件为空时它才能完成 ......... 你无法重新调整数据文件大小在它的高水位之下)     例如 ==========     SQL> archive log list Database log mode              Archive Mode Automatic archival             Enabled Archive destination            /h01/app/oracle/product/9.2.0/dbs/arch Oldest online log sequence     207 Next log sequence to archive   209 Current log sequence           209   ======================= 显示数据库在归档日志模式下 =======================   SQL> alter database datafile 44 offline drop;   Database altered.     SQL> select file#,status from v$datafile where file#=44;   FILE# STATUS ---------- ------- 44 RECOVER  ======> status in controlfile is recover   SQL> c/datafile/datafile_header 1* select file#,status from v$datafile_header where file#=44 SQL> /   FILE# STATUS ---------- ------- 44 OFFLINE  ========>  status in file_header is offline     切换一些日志文件 sql> alter system switch logfile ; system altered   . . . 应用日志(它仅会请求在那时联机的日志/相应的归档日志 它不会请求你应用任何其他归档日志   SQL> recover datafile 44; ORA-00279: change 8252199007514 generated at 10/18/2004 14:21:47 needed for thread 1 ORA-00289: suggestion : /h01/app/oracle/product/9.2.0/dbs/arch1_216.dbf ORA-00280: change 8252199007514 for thread 1 is in sequence #216     Specify log: {<RET>=suggested | filename | AUTO | CANCEL}   Log applied. Media recovery complete. SQL> select * from v$log;   GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS      FIRST_CHANGE# FIRST_TIM ---------- ---------- ---------- ---------- ---------- --- ----------- ------------- --------- 1          1        248  104857600          1 YES INACTIVE       8.2522E+12 18-OCT-04 2          1        250  104857600          1 NO  CURRENT        8.2522E+12 18-OCT-04 3          1        249  104857600          1 YES ACTIVE         8.2522E+12 18-OCT-04       SQL> select file#,status from v$datafile where file#=44;   FILE# STATUS ---------- ------- 44 OFFLINE   SQL> select file#,status from v$datafile_header where file#=44;   FILE# STATUS ---------- ------- 44 OFFLINE   SQL> alter database datafile 44 online;   Database altered.   SQL> select file#,status from v$datafile_header where file#=44;   FILE# STATUS ---------- ------- 44 ONLINE   SQL> select file#,status from v$datafile where file#=44;   FILE# STATUS ---------- ------- 44 ONLINE     所以数据文件是联机的   脱机dropped数据文件无法联机的唯一情况是 当你在脱机drop后在数据库中添加了过多数据文件when you have added to many datafiles in the database after offline drop     原因   来自文档 ====================   如果数据库在NOARCHIVELOG 模式,你必须指定DROP子句使一个数据文件脱机。但DROP子句不会从数据库中删除数据文件。 要这么做,你必须drop数据文件所在的表空间。直到你这么做,数据文件仍以RECOVER或OFFLINE的状态保留在数据字典中。   如果数据库在ARCHIVELOG模式下,Oracle忽略DROP关键字。