在多长时间内 Oracle 中的登录尝试失败?

Failed login attempts in Oracle within what time frame?

我正在尝试配置 C3P0 JDBC connection pool 以避免锁定 Oracle 数据库。似乎 acquireRetryAttemptsacquireRetryDelay 很重要。

查看 Oracle 12c 文档,我看到:

FAILED_LOGIN_ATTEMPTS  
Specify the number of consecutive failed attempts to log in to the user account before the account is locked. If you omit this clause, then the default is 10 times.

10 次尝试在什么时间范围内适用? IE。如果我将 acquireRetryAttempts 设置为 9acquireRetryDelay 的什么值可以避免锁定数据库?

您问的是一个时间范围,在此之后 Oracle 将忘记以前的无效登录尝试?有none.

Oracle 在 SYS.USER$ table 中维护一个列 lcount,其中包含连续无效登录尝试的次数。只有在成功登录后才会重置为零。

如果您不想因密码尝试失败次数过多而锁定数据库帐户,为什么不将连接池使用的配置文件的 failed_login_attempts 设置为 UNLIMITED

Oracle 具有 Universal Connection Pool (UCP) 功能丰富且开箱即用的 HA 功能。所以,你可以考虑使用 UCP。

另外,RETRY_DELAY 和 RETRY_COUNT 可以用作连接描述符,如图所示。

(描述= (CONNECT_TIMEOUT=90) (RETRY_COUNT=20)(RETRY_DELAY=3) (TRANSPORT_CONNECT_TIMEOUT=3) (ADDRESS_LIST = (LOAD_BALANCE=开启) (地址=(协议=TCP)(主机=主扫描)(端口=1521))) (ADDRESS_LIST = (LOAD_BALANCE=开启) ( ADDRESS = (PROTOCOL = TCP)(HOST=secondary-scan)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = 金云)))

RETRY_COUNT:它指定在向客户端返回失败消息之前网络连接重试的次数。在上面的示例中,Oracle Net 在向客户端返回错误消息之前重试了 3 次。这有助于增加获得连接的可能性,从而提高性能。
RETRY_DELAY:This 参数指定重新连接之间的等待时间(以秒为单位) 尝试。它与 RETRY_COUNT 结合使用。所以,建议 RETRY_DELAY 和 RETRY_COUNT 一起使用,以避免不必要的 CPU 循环