您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

数据库和数据库服务器的连接限制

建立数据库连接时,可以通过数据库服务器进行连接。数据库的最大并发连接数量取决于多个因素。

这些因素包括:

  • 您的许可证。

  • 在数据库服务器上运行的数据库数量。

  • 数据库和数据库服务器接受的连接类型。

  • 指定用于减少应用程序最大连接数量的数据库和数据库服务器选项。

    数据库服务器连接限制

    网络数据库服务器的连接限制等于每存取设备授权允许的最大连接数量,如果拥有每核心授权,则等于无限 (32766) 连接。(实际上,由于操作系统限制,可能无法为单个数据库服务器创建 32766 连接。同时,数据库服务器会在操作期间建立内部临时连接,这也会减少用户可用的连接数量。)

    要减少数据库服务器可接受的最大并发连接数量,请指定 -gm 数据库服务器选项。

    如果您的数据库服务器接受 HTTP/HTTPS 连接,那么可以通过指定 MaxConnections 协议选项来限制可对数据库服务器建立的最大 HTTP/HTTPS 连接数量。还可以通过设置 reserved_connections 数据库选项,仅为标准连接保留数据库连接。

    数据库连接

    如果您的数据库服务器上有多个正在运行的数据库,那么限制特定数据库的连接数量会比限制数据库服务器的连接数量更加有效。例如,一个允许 100 个连接的数据库服务器可能有 90 个连接到同一数据库,这样所有其它数据库的可用连接数就只有 10 个。

    要限制数据库可接受的连接数量,请为此数据库设置 maximum_connections 数据库选项。

    如果您的数据库接受 HTTP/HTTPS 连接而且您必须确保可随时接受标准连接,则可以为标准连接保留连接。指定 reserved_connections 数据库选项以保留标准连接。

    还可以使用登录策略限制具有指定登录策略的用户的连接数量。创建登录策略时,请设置 max_connections 登录策略选项或 max_non_dba_connections 登录策略选项。还可以使用 login_procedure 数据库选项创建自定义登录过程以限制连接数量。

    HTTP/HTTPS 连接排队和限制连接

    数据库服务器令 HTTP/HTTPS 连接排队。当数据库服务器达到其连接限制并且已尝试新的 HTTP/HTTPS 连接之后,将对连接尝试进行排队。连接尝试一直保留在队列中,直到 HTTP/HTTPS 连接可用,或者该尝试在 150 秒后超时。队列最多可容纳 1000 次连接尝试。

    标准连接不参与排队。如果数据库服务器达到其连接限制,则任何新的标准连接尝试都会失败。

    尽管 HTTP/HTTPS 队列中存在连接尝试,标准连接仍然没有机会替代 HTTP/HTTPS 连接。除非为标准连接保留了某些连接,否则要建立标准连接的用户可能会无限期地等待下去。通过为标准连接保留某些数据库连接,可以允许用户连接到数据库以执行管理任务,例如删除连接、执行备份等。

    使用 reserved_connections 数据库选项保留标准连接。网络数据库服务器不会为标准连接保留连接。

    您还可以指定 MaxConnections 协议选项,从而限制可对数据库服务器建立的 HTTP/HTTPS 连接数量。

    连接限制之上的连接

    达到连接限制之后,DBA 用户可以在限制之上建立一个额外的数据库标准连接,从而根据需要强制断开连接。要建立此新连接,必须满以下所有 条件:

  • 用户具有 DROP CONNECTION 或 SERVER OPERATOR 系统特权。

  • 数据库服务器连接(不包括新连接)的总数小于或等于 MaxConnections 数据库服务器属性限制。

  • 数据库连接的总数(不包括新连接)小于或等于 MaxConnections 数据库属性限制。

  • 该连接为标准连接。