此部分包含 Vertica 专用的会话管理函数。
另请参阅 SQL 系统表 V_MONITOR.SESSIONS。
此部分包含 Vertica 专用的会话管理函数。
另请参阅 SQL 系统表 V_MONITOR.SESSIONS。
取消 START_REFRESH 和 REFRESH 启动的刷新相关内部操作。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
CANCEL_REFRESH()
无
刷新任务在内部会话的后台线程中运行,因此不能使用 INTERRUPT_STATEMENT 取消这些语句。相反,使用 CANCEL_REFRESH 取消通过刷新相关内部会话运行的语句。
在启动 START_REFRESH() 的同一节点上运行 CANCEL_REFRESH()。
CANCEL_REFRESH() 取消在节点上运行的刷新操作,等待完成取消并返回 SUCCESS。
任何时候,一个节点上都只能运行一组刷新操作。
取消后台执行的刷新操作。
=> SELECT START_REFRESH();
START_REFRESH
----------------------------------------
Starting refresh background process.
(1 row)
=> SELECT CANCEL_REFRESH();
CANCEL_REFRESH
----------------------------------------
Stopping background refresh process.
(1 row)
关闭所有外部会话(除发布此函数的外部会话以外)。关闭 Vertica 数据库之前调用此函数。
Vertica 异步关闭会话,因此可以在返回此函数之前打开其他会话。在这种情况下,请重新发出此函数。要查看所有打开会话的状态,请查询系统表
SESSIONS
。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
CLOSE_ALL_SESSIONS()
非超级用户:设置为“无 (None)”以关闭自己的会话
在单独的节点上打开两个用户会话:
=> SELECT * FROM sessions;
-[ RECORD 1 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (select * from sessions;)
statement_start | 2011-01-03 15:36:13.896288
statement_id | 10
last_statement_duration_us | 14978
current_statement | select * from sessions;
ssl_state | None
authentication_method | Trust
-[ RECORD 2 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0002
user_name | dbadmin
client_hostname | 127.0.0.1:57174
client_pid | 30117
login_timestamp | 2011-01-03 15:33:00.842021-05
session_id | stress05-27944:0xc1a
client_label |
transaction_start | 2011-01-03 15:34:46.538102
transaction_id | -1
transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/mart_Fact.tbl'
DELIMITER '|' NULL '\\n';)
statement_start | 2011-01-03 15:34:46.538862
statement_id |
last_statement_duration_us | 26250
current_statement | COPY Mart_Fact FROM '/data/Mart_Fact.tbl' DELIMITER '|'
NULL '\\n';
ssl_state | None
authentication_method | Trust
-[ RECORD 3 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0003
user_name | dbadmin
client_hostname | 127.0.0.1:56367
client_pid | 1191
login_timestamp | 2011-01-03 15:31:44.939302-05
session_id | stress06-25663:0xbec
client_label |
transaction_start | 2011-01-03 15:34:51.05939
transaction_id | 54043195528458775
transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/Mart_Fact.tbl'
DELIMITER '|' NULL '\\n' DIRECT;)
statement_start | 2011-01-03 15:35:46.436748
statement_id |
last_statement_duration_us | 1591403
current_statement | COPY Mart_Fact FROM '/data/Mart_Fact.tbl' DELIMITER '|'
NULL '\\n' DIRECT;
ssl_state | None
authentication_method | Trust
关闭所有会话:
=> \x
Expanded display is off.
=> SELECT CLOSE_ALL_SESSIONS();
CLOSE_ALL_SESSIONS
-------------------------------------------------------------------------
Close all sessions command sent. Check v_monitor.sessions for progress.
(1 row)
发出 CLOSE_ALL_SESSIONS
之后的会话内容:
=> SELECT * FROM SESSIONS;
-[ RECORD 1 ]--------------+----------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (SELECT * FROM sessions;)
statement_start | 2011-01-03 16:19:56.720071
statement_id | 25
last_statement_duration_us | 15605
current_statement | SELECT * FROM SESSIONS;
ssl_state | None
authentication_method | Trust
中断指定的外部会话,回退当前事务(如果有),并关闭套接字。您只能关闭自己的会话。
关闭会话可能需要花费一些时间。要查看所有打开会话的状态,请查询系统表
SESSIONS
。
有关会话管理选项的详细信息,请参阅 管理会话。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
CLOSE_SESSION ( 'sessionid')
无
用户会话已打开。记录 2 显示运行 COPY DIRECT
语句的用户会话。
=> SELECT * FROM sessions;
-[ RECORD 1 ]--------------+-----------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (SELECT * FROM sessions;)
statement_start | 2011-01-03 15:36:13.896288
statement_id | 10
last_statement_duration_us | 14978
current_statement | select * from sessions;
ssl_state | None
authentication_method | Trust
-[ RECORD 2 ]--------------+-----------------------------------------------
node_name | v_vmartdb_node0002
user_name | dbadmin
client_hostname | 127.0.0.1:57174
client_pid | 30117
login_timestamp | 2011-01-03 15:33:00.842021-05
session_id | stress05-27944:0xc1a
client_label |
transaction_start | 2011-01-03 15:34:46.538102
transaction_id | -1
transaction_description | user dbadmin (COPY ClickStream_Fact FROM
'/data/clickstream/1g/ClickStream_Fact.tbl'
DELIMITER '|' NULL '\\n' DIRECT;)
statement_start | 2011-01-03 15:34:46.538862
statement_id |
last_statement_duration_us | 26250
current_statement | COPY ClickStream_Fact FROM '/data/clickstream
/1g/ClickStream_Fact.tbl' DELIMITER '|' NULL
'\\n' DIRECT;
ssl_state | None
authentication_method | Trust
关闭用户会话 stress05-27944:0xc1a
=> \x
Expanded display is off.
=> SELECT CLOSE_SESSION('stress05-27944:0xc1a');
CLOSE_SESSION
--------------------------------------------------------------------
Session close command sent. Check v_monitor.sessions for progress.
(1 row)
再次查询会话表以了解当前状态,您可以看到第二个会话已被关闭:
=> SELECT * FROM SESSIONS;
-[ RECORD 1 ]--------------+--------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (select * from SESSIONS;)
statement_start | 2011-01-03 16:12:07.841298
statement_id | 20
last_statement_duration_us | 2099
current_statement | SELECT * FROM SESSIONS;
ssl_state | None
authentication_method | Trust
停止用户会话,回退当前正在运行的任何事务,并关闭连接。要确定要关闭的会话的状态,请查询
SESSIONS
表。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
CLOSE_USER_SESSIONS ( 'user‑name' )
此示例将关闭用户 u1
的所有活动会话:
=> SELECT close_user_sessions('u1');
返回在当前会话的上一个已完成加载中加载到数据库的行数。GET_NUM_ACCEPTED_ROWS 是一个 元函数。请勿将其用作 INSERT 查询中的值。
对于当前正在处理的加载,无法获得已接受的行数。在 LOAD_STREAMS 系统表中检查其状态。
此元函数支持来自 STDIN 的负载、来自 Vertica 客户端的 COPY LOCAL 或发起程序上的单个文件。对于多节点加载,无法使用 GET_NUM_ACCEPTED_ROWS。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
GET_NUM_ACCEPTED_ROWS();
无
此示例显示了 vmart_load_data.sql 元命令接受的行数。
=> \i vmart_load_data.sql;
=> SELECT GET_NUM_ACCEPTED_ROWS ();
GET_NUM_ACCEPTED_ROWS
-----------------------
300000
(1 row)
返回在当前会话的上一个已完成加载期间拒绝的行数。GET_NUM_REJECTED_ROWS 是一个 元函数。请勿将其用作 INSERT 查询中的值。
对于当前正在运行的加载,已拒绝的行的信息不可用。对于当前正在处理的加载,无法获得拒绝的行数。在 LOAD_STREAMS 系统表中检查其状态。
此元函数支持来自 STDIN 的负载、来自 Vertica 客户端的 COPY LOCAL 或发起程序上的单个文件。对于多节点加载,无法使用 GET_NUM_REJECTED_ROWS。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
GET_NUM_REJECTED_ROWS();
无
此示例显示了 vmart_load_data.sql 元命令拒绝的行数。
=> \i vmart_load_data.sql
=> SELECT GET_NUM_REJECTED_ROWS ();
GET_NUM_REJECTED_ROWS
-----------------------
0
(1 row)
中断用户会话中的指定语句,回滚当前事务,把成功/失败消息写入日志文件。
执行语句过程中可以中断会话。中断只可针对用户会话运行的语句。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
INTERRUPT_STATEMENT( 'session‑id', statement‑id)
INTERRUPT_STATEMENT
将返回成功消息。否则,系统将返回错误消息:超级用户
你可能会遇到的消息列表见下文:
两个用户对话是打开状态。RECORD 1 表示用户会话正在运行 SELECT FROM SESSION
,RECORD 2 表示用户会话正在运行 COPY DIRECT
:
=> SELECT * FROM SESSIONS;
-[ RECORD 1 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (select * from sessions;)
statement_start | 2011-01-03 15:36:13.896288
statement_id | 10
last_statement_duration_us | 14978
current_statement | select * from sessions;
ssl_state | None
authentication_method | Trust
-[ RECORD 2 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0003
user_name | dbadmin
client_hostname | 127.0.0.1:56367
client_pid | 1191
login_timestamp | 2011-01-03 15:31:44.939302-05
session_id | stress06-25663:0xbec
client_label |
transaction_start | 2011-01-03 15:34:51.05939
transaction_id | 54043195528458775
transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/Mart_Fact.tbl'
DELIMITER '|' NULL '\\n' DIRECT;)
statement_start | 2011-01-03 15:35:46.436748
statement_id | 5
last_statement_duration_us | 1591403
current_statement | COPY Mart_Fact FROM '/data/Mart_Fact.tbl' DELIMITER '|'
NULL '\\n' DIRECT;
ssl_state | None
authentication_method | Trust
中断会话 stress06-25663:0xbec
中运行的 COPY DIRECT
语句:
=> \x
Expanded display is off.
=> SELECT INTERRUPT_STATEMENT('stress06-25663:0x1537', 5);
interrupt_statement
------------------------------------------------------------------
Statement interrupt sent. Check v_monitor.sessions for progress.
(1 row)
确认语句已被成功中断,不再处于激活状态。可检查 SESSIONS
系统表中的 current_statement
列。语句被中断后,该列为空:
=> SELECT * FROM SESSIONS;
-[ RECORD 1 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (select * from sessions;)
statement_start | 2011-01-03 15:36:13.896288
statement_id | 10
last_statement_duration_us | 14978
current_statement | select * from sessions;
ssl_state | None
authentication_method | Trust
-[ RECORD 2 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0003
user_name | dbadmin
client_hostname | 127.0.0.1:56367
client_pid | 1191
login_timestamp | 2011-01-03 15:31:44.939302-05
session_id | stress06-25663:0xbec
client_label |
transaction_start | 2011-01-03 15:34:51.05939
transaction_id | 54043195528458775
transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/Mart_Fact.tbl'
DELIMITER '|' NULL '\\n' DIRECT;)
statement_start | 2011-01-03 15:35:46.436748
statement_id | 5
last_statement_duration_us | 1591403
current_statement |
ssl_state | None
authentication_method | Trust
强制所有会话释放其 Java 虚拟机 (JVM) 所用的内存。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
RELEASE_ALL_JVM_MEMORY();
必须为 超级用户。
以下示例演示了查看所有打开的会话中的 JVM 内存使用情况,然后调用 RELEASE_ALL_JVM_MEMORY() 释放内存的过程:
=> select user_name,external_memory_kb FROM V_MONITOR.SESSIONS;
user_name | external_memory_kb
-----------+---------------
dbadmin | 79705
(1 row)
=> SELECT RELEASE_ALL_JVM_MEMORY();
RELEASE_ALL_JVM_MEMORY
-----------------------------------------------------------------------------
Close all JVM sessions command sent. Check v_monitor.sessions for progress.
(1 row)
=> SELECT user_name,external_memory_kb FROM V_MONITOR.SESSIONS;
user_name | external_memory_kb
-----------+---------------
dbadmin | 0
(1 row)
终止 Java 虚拟机 (JVM),使 JVM 所用的内存变为可用状态。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
RELEASE_JVM_MEMORY();
无。
用户会话已打开。RECORD 2 将显示运行 COPY DIRECT 语句的用户会话。
=> SELECT RELEASE_JVM_MEMORY();
release_jvm_memory
-----------------------------------------
Java process killed and memory released
(1 row)
保留 General 资源池中的内存资源,以仅供 Vertica 备份和还原进程使用。其他任何 Vertica 进程都不能访问保留的资源。如果可用的资源量不足,Vertica 会将保留请求排入队列。
此元函数是会话级别的保留。当会话结束时,Vertica 会自动释放该会话中保留的任何资源。由于该元函数在会话级别运行,因此多个会话之间的资源名称无需唯一确定。
可通过查询 SESSIONS 表来查看保留的资源。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
RESERVE_SESSION_RESOURCE ( 'name', memory)
无
将 1024 KB 的内存保留用于备份和还原进程:
=> SELECT reserve_session_resource('VBR_RESERVE',1024);
-[ RECORD 1 ]------------+----------------
reserve_session_resource | Grant succeed