今天尝试了一把10g的新功能drop empty datafile。Primary上dop datafile成功后,发现standby数据库无法自动drop datafile。在standby上,删除数据文件的archive log被应用后,仍然能够从v$datafile看到被删除的数据文件;但日志恢复和应用能够继续。

过后,当主库上增加数据文件的时候,新的数据文件重用了被删除文件的File#;这样在standby恢复的时候就出了问题,要创建新的文件,可以新文件号File#在standby的控制文件信息中还存在着,被本应该是删除掉的数据文件霸占着。恢复便发生600错误,停止了。

ORA-00600: internal error code, arguments: [3689], [10], [], [], [], [], [], []
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail

需要重新建立standby的控制文件才能解决这个问题。不知道大家在使用drop empty datafile的时候有没有碰到类似问题?

数据库版本10.2.0.3