管理会话

Vertica 为数据库管理员提供了用于查看和控制会话的强大方法。具体方法因会话类型而异:

  • 外部(用户)会话通过 vsql 或编程式(ODBC 或 JDBC)连接启动,并且具有关联的客户端状态。

  • 内部(系统)会话由 Vertica 启动,但没有客户端状态。

配置最大会话数

每个节点的最大用户会话数由配置参数 MaxClientSessions 设置,默认值为 50。您可以将 MaxClientSessions 参数设置为 0 到 1000 之间的任何值。除了这个最大值外,Vertica 还允许每个节点最多五个管理会话。

例如:

=> ALTER DATABASE DEFAULT SET MaxClientSessions = 100;

查看会话

系统表 SESSIONS 包含有关用户会话的详细信息,每个会话将返回一行。超级用户可以无限制地访问所有数据库元数据。其他用户的访问权限因他们的权限而异。

中断和关闭会话

您可以使用 Vertica 函数 INTERRUPT_STATEMENT 中断正在运行的语句。中断正在运行的语句会将会话返回到空闲状态:

  • 没有语句或事务正在运行。

  • 没有保留任何锁。

  • 数据库不代表会话做任何工作。

关闭用户会话将中断该会话并处置与其相关的所有状态,包括用于目标会话的客户端套接字连接。以下 Vertica 函数关闭一个或多个用户会话:

SELECT 用来调用这些函数的 SELECT 语句在中断或关闭消息传递到所有节点后返回。该函数可能会在 Vertica 完成中断或关闭操作的执行之前返回。因此,在语句返回之后以及在中断或关闭操作在整个群集中生效过程中可能存在一个延迟。若要确定会话或事务是否结束,请查询 SESSIONS 系统表。

为了关闭数据库,您必须首先关闭所有用户会话。有关数据库关闭的更多信息,请参阅停止数据库