对于我们的 10g Oracle 数据库,我有一个脚本,它会定期创建批处理文件来对所有数据文件运行 DBVerify。这样,如果我需要检查损坏,我只需运行批处理文件即可。升级到 Oracle 11g 后,我的批处理文件无法正常工作。我将问题追溯到 dbv 本身。以下是脚本生成的命令:
dbv FILE=F:\ORACLE\ORADATA\CD\CAMPUSCHURCH1.DBF BLOCKSIZE=4096
LOGFILE='c:\DBVerify_COREDEV\CAMPUSCHURCH1_55.txt'
当我运行这个程序时,它给出一个 DBV-00100:指定的文件(C:\Windows\system32/F:\ORACLE\ORADATA\CD\CAMPUSCHURCH1.DBF)无法访问。 注意:我所在的文件夹是C:\Windows\system32。 我可以通过切换到 F:\ 并从我的 dbv 调用中删除 F:\ 来使其工作,但我不喜欢这样,因为这样我就必须更改我的脚本以在每次 dbv 调用之前切换到正确的驱动器。
有人可以验证我的发现和/或提供解决方案吗?
答案1
这似乎是一个错误,从 10g 回归而来...在 metalink 中快速查找了一下,没有发现任何东西...打开一个 SR,测试 10g vs 11g 的用例怎么样?如果这是一个已知问题,您可能会得到一个补丁。如果不是,他们希望(最终)修复它。
在相关说明中,您可以考虑使用 RMAN 检查数据库中的物理和逻辑损坏。我相信这是更好、更全面的检查。例如,运行 rman VALIDATE CHECK LOGICAL DATABASE 点击此处查看文档。如果 rman 发现块损坏,它会填充 v$database_block_corruption,然后您就可以使用 rman 来恢复特定的损坏块。您可以通过打开多个通道来并行执行 RMAN VALIDATE...
答案2
我在 Windows 2008 x64 上的 11gR1 上也遇到了同样的问题!!