ORA-28387: Could not acquire an enqueue for wallet operation in Oracle RAC

文档解释

ORA-28387: Could not acquire an enqueue for wallet operation in Oracle RAC

Cause: Enqueue to block TDE operations in Oracle RAC database could not be obtained.

Action: Retry the wallet operation.

ORA-28387 是一个 Oracle RAC 环境中出现的一个报错,它指的是在Oracle RAC环境中无法获取事务的流程保护功能(enqueue)。

官方解释

ORA-28387 是一个在Oracle RAC环境中出现的错误消息,指的是不能获取enqueue(事务的流程保护功能)来执行wallet操作。ORA-28387的原因是在RAC中,dbms_xdb所需的存储以及相应的enqueue都有可能来自不同的实例,并且由于连接数量限制同一个实例只能被一个session所访问。

常见案例

ORA-28387一般由以下访问dbms_xdb会产生:

1. 开启EZCONNECT模式

2. 执行dbms_xdb.getXML会话时

一般处理方法及步骤

1. 检查Oracle Real Application Clusters (RAC) 组件是否正确安装,并保证流程保护功能(enqueues)可用。

2. 如果安装正确,则检查RAC系统的连接数限制。 调整connect_string的结构以及包括instance_name参数允许访问更多实例。

3. 将_always_segment_free_locks开关设置uncertain,如果原来已设置该开关,则增加oracle系统分派给该开关的权重。

4. 如果上述方法仍然未能恢复这个报错,则可以考虑引入XML文件的外部副本,以便不需要在XDB中存储任何东西(file_level_storage=true)。

5. 如果是oracle 10.2以下的版本,可以试试UNIFIRST,会去除可能的竞争访u问。

你可能感兴趣的