文档解释
ORA-16816: incorrect database role
Cause: The Data Guard broker detected that the specified database had a different database role than that recorded in the Data Guard broker configuration. This could be the result of a failed switchover or failover operation, or a switchover or failover operation performed with SQL*Plus.
Action: Check the Data Guard broker documentation to see how to recover from failed role change operations, or from role changes that were performed using SQL*Plus for databases managed by Data Guard broker.
ORA-16816:incorrect database role 的诊断信息是:
因为数据库角色(如primary或shadow)不正确,所以当前操作失败。
官方解释
ORA-16816:在当前操作中,数据库角色不正确。
确保用于流量控制特性和控制文件同步的数据库角色,在primay或shadow双节点配置中,有准确的定义。
常见案例
ORA-16816错误常常发生在在数据库双节点环境中,特别是在使用控制文件同步技术PRFCD中。此时,当用户将Prime节点更改为Shadow节点或Shadow节点更改为Primary节点时,可能会发生此错误。
一般处理方法及步骤
1、向Oracle客户支持团队报告此错误以进行进一步调查。
2、检查datagaurd brokger状态日志文件,以了解关于要解决此问题的进一步信息。ARLOG__文件用于跟踪节点之间的流量状态信息和传输信息。
3、检查primary及其对应shadow节点上的控制文件中的primary_db_unique_name及secondary_db_unique_name参数值,以确保它们正确得到设置。
4、确保primary_role及secondary_role参数正确设置,并确保每个节点的值与它的真实角色(如主要或次要)匹配。
5、检查Data Guard Broker配置完整性,并根据需要进行进一步排查。
6、如果Primary节点的SRL已滚动,可能需要调整它以重新启动该控制文件的发送和接收,以解决此问题。
7、将Controlfile Reuse参数更改为Y,以便拆卸和重新连接缺少同步的节点。
8、此外,如果需要重新连接无效的节点,使用“Dataguard Broker Enable In Connection Mode”模式进行操作。