文档解释
ORA-26843: Local propagation “string” found for capture queue “string”.”string”.
Cause: The combined capture and apply optimization could not be used because a local propagation was attached to the capture queue.
Action: Remove the local propagation and restart capture.
官方解释
ORA-26843表明数据库捕获队列有本地传播。
这类错误出现时,说明一个错误数据库捕获队列有本地传播发生。 该队列是一个RAC数据库的实例的归档日志捕获队列,用来跟踪某个实例上的redo日志传播给其他实例,以保持所有实例的数据库一致性。
常见案例
在多实例的RAC环境下,由于网络故障等原因,可能会出现本地传播,因此会出现ORA-26843。
一般处理方法及步骤
1. 检查capture队列在库实例上是否已经正常处理:
(1)查看各个实例上是否拥有相同的monarch进程;
(2)查看是否有集群相关的network文件;
(3)查看每个实例是否有同样的capture队列,以及其中是否有正确的message未被重新处理;
(4)查看每个实例上是否有同样的capture队列,并检查是否出现消息错误或延迟;
(5)检查是否有本地传播通道;
2. 网络故障检查:
(1)检查两个实例之间网络是否连通;
(2)检查RAC间的心跳通信状态;
(3)检查DDL和DML的访问权限;
(4)查看是否有其它RAC节点出现网络不稳定或端口、服务名连接错误等问题导致没有传播到其它节点。
3. 获取并校验Capture队列数据:
(1)检查Capture队列是否有正确的REDO LOG MESSAGE;
(2)检查REDO的状态是否有异常,是否消息未处理完成;
(3)如果有内存和I/O问题,及时校验并清理这些数据。
4. 如果ORA-26843错误仍然出现,尝试重建Capture队列
(1)更新capture queue:确保实例间消息正常接收;
(2)查看队列文件:由于本地传播,队列文件数据可能不正确;
(3)强制重建capture队列: 可能需要清空或修改capture队列,以确保队列只能被自身实例处理,而不会被其它实例处理。