云数据库 GaussDB-ALTER SYSTEM KILL SESSION:示例

时间:2025-02-12 15:07:58

示例

 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
--开启两个会话,在第一个会话中建表并开启事务插入数据。gaussdb=# CREATE TABLE tbl_test(id int);gaussdb=# BEGIN;gaussdb=# INSERT INTO tbl_test VALUES (1);--在第二个会话中查询会话信息。state为“idle in transaction”表示事务等待提交。gaussdb=# SELECT t1.datname,       t1.usename,       t1.pid,       t2.serial#,       t1.state FROM pg_stat_activity t1,     dv_sessions t2 WHERE t1.query LIKE 'INSERT INTO tbl_test%'   AND t1.sessionid = t2.sid; datname  | usename |       pid       | serial# |        state        ----------+---------+-----------------+---------+--------------------- postgres | omm     | 139802072635136 |       0 | idle in transaction(1 row)--结束会话,不带IMMEDIATE参数,将会强制结束会话,该会话中的事务也会被强制结束。gaussdb=# ALTER SYSTEM KILL SESSION '139802072635136,0'; pg_terminate_backend ---------------------- t(1 row)--重新连接,查询表tbl_test的数据会发现事务被强制结束后数据回滚。gaussdb=# SELECT * FROM tbl_test; id ----(0 rows)--删除表。gaussdb=# DROP TABLE tbl_test;
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0508.html