我们在 RHEL 5.4 64 位上运行 Oracle。我们最近从 10.2.0.1 升级到了 10.2.0.4。在升级过程中产生了许多错误(下面列出了来自 trace.log 的示例),但在之后的应用程序测试过程中,一切似乎都很好(干净的 EXP、插入、更新、删除等)。这些错误看起来都与高级排队表和视图有关。我们根本不使用复制,这是一个简单的单实例数据库。
ORA-24002: QUEUE_TABLE SYS.AQ_EVENT_TABLE does not exist
ORA-24032: object AQ$_AQ_SRVNTFN_TABLE_T exists, index could not be created
ORA-24032: object AQ$_ALERT_QT_S exists, index could not be created for queue
ORA-06512: at "SYS.DBMS_AQADM_SYSCALLS", line 117
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 5116
这值得担心吗?如果是,我该如何清理/重新创建损坏和/或丢失的对象?
我的建议是不要忽视它。
从 Interpreted PL/SQL 更改为 Native Compiled PL/SQL 后,我最近遇到了与 AQ 相关的问题。我的 AQ 表被修改了,我们有一些数据字典损坏。我们没有为我们的产品明确使用任何 AQ 功能,但看起来 Oracle 确实将它用于他们的某些功能。
对我们来说主要问题是我们无法使用 DataPump 导出,因为它们出现了与 AQ 相关的错误。此外,OEM 对这一数据库的访问非常不稳定。所有用户操作似乎都可以正常工作。
如果您检查警报日志,您可能会因为 AQ 子系统不可用而得到一些奇怪的 ORA-600。
我的建议是与 Oracle 建立一个 SR 并从那里开始。他们有一个未发布的过程,他们可以为您提供删除和重新创建 AQ 表的过程。如果您没有任何数据字典损坏,那应该很简单……但请确保您有能力吸收一些停机时间,因为在用户登录时无法运行他们的程序。还要确保你有一些好的备份——由于这一切,我们最终不得不回滚 1 周(幸运的是只是一个开发数据库)。