问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

delete sql 怎么恢复 postgre

发布网友 发布时间:2022-04-26 19:05

我来回答

2个回答

懂视网 时间:2022-04-12 15:24

先看下两个函数的官方解释: pg_cancel_backend() 取消后台操作,回滚未提交事物 pg_terminate_backend() 中断session,回滚未提交事物 这里和oracle类似kill session的操作是pg_terminate_backend() pg_cancel_backend() 举例: session A: postgres=# creat

先看下两个函数的官方解释:

pg_cancel_backend() pg_cancel_backend()

pg_cancel_backend() 取消后台操作,回滚未提交事物 pg_terminate_backend() 中断session,回滚未提交事物 这里和oracle类似kill session的操作是pg_terminate_backend() pg_cancel_backend() 举例:

session A:

postgres=# create table tb1 (a int); CREATE TABLE postgres=# begin;

postgres=# insert into tb1 select generate_series(1,100000000);

session B:

postgres=# select * from pg_stat_activity; datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query -------+----------+---------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------- -----------+-------------------------------+---------+------------------------------------------------------ 12699 | postgres | 10305 | 10 | postgres | psql | | | -1 | 2013-12-03 14:38:05.887116+08 | 2013-12-03 15:12:17 .773935+08 | 2013-12-03 15:14:31.454816+08 | f | insert into tb1 select generate_series(1,100000000);

postgres=# select pg_cancel_backend(10305); pg_cancel_backend ------------------- t

session A: ERROR: canceling statement due to user request postgres=# commit; ROLLBACK postgres=# select * from tb1; a --- (0 rows)

session B:

postgres=# select * from pg_stat_activity; datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query -------+----------+---------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------- -----------+-------------------------------+---------+--------------------------------- 12699 | postgres | 10305 | 10 | postgres | psql | | | -1 | 2013-12-03 14:38:05.887116+08 |

pg_terminate_backend() 举例:

session A:

postgres=# create table tb2 (a int); CREATE TABLE postgres=# begin; BEGIN postgres=# insert into tb2 select generate_series(1,100000000);

session B:

postgres=# select * from pg_stat_activity; datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query -------+----------+---------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------- -----------+-------------------------------+---------+------------------------------------------------------ 12699 | postgres | 10305 | 10 | postgres | psql | | | -1 | 2013-12-03 14:38:05.887116+08 | 2013-12-03 15:24:22 .45073+08 | 2013-12-03 15:24:33.362185+08 | f | insert into tb2 select generate_series(1,100000000);

postgres=# select pg_terminate_backend(10305); pg_terminate_backend ---------------------- t (1 row)

session A:

postgres=# insert into tb2 select generate_series(1,100000000); FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded. postgres=# commit; WARNING: there is no transaction in progress COMMIT postgres=# select * from tb2; a --- (0 rows)

postgres=# select * from pg_stat_activity;

datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query -------+----------+---------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------- -----------+-------------------------------+---------+--------------------------------- 12699 | postgres | 10918 | 10 | postgres | psql | | | -1 | 2013-12-03 15:25:12.613672+08 | 2013-12-03 15:30:29 .544088+08 | 2013-12-03 15:30:29.544088+08 | f | select * from pg_stat_activity;

通过以上实验理解起来应该 很简单了,procpid=10305在pg_cancel_backend()下,session还在,事物回退,在pg_terminate_backend()操作后,session消失,事物回退。如果在某些时候pg_terminate_backend()不能杀死session,那么可以在os层面,直接kill -9 pid

热心网友 时间:2022-04-12 12:32

kill方式是杀掉进程,但是有时候需要取消相关SQL语句,采用以下方式:

查看哪些SQL语句正在执行,语句如下:

SELECT datname,procpid,query_start, current_query,waiting,client_addr FROM pg_stat_activity WHERE waiting='t';
说明:
datname表示数据库名
procpid表示当前的SQL对应的PID
query_start表示SQL执行开始时间
current_query表示当前执行的SQL语句
waiting表示是否正在执行,t表示正在执行,f表示已经执行完成
client_addr表示客户端IP地址

kill有两种方式,第一种是:
SELECT pg_cancel_backend(PID);
这种方式只能kill select查询,对update、delete 及DML不生效)

第二种是:
SELECT pg_terminate_backend(PID);
这种可以kill掉各种操作(select、update、delete、drop等)操作
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivox9和x9i有什么区别 ...设置原则跟构造要求。构造柱的设置原则跟构造要求是什么_百度... ...的U型钢筋锚环要几道?在哪里可以找到依据啊 ...月末不含税库存金额1065000元,请计算门店库存天数 公蟹吃什么 公蟹吃什么东西 爬行健身操功能和原理 锻炼爬行的好处有哪些呢 爬行健身法有什么优缺点 檀木如何粘合 成田剑先生还为哪些日本动漫配音,有名一点滴。谢谢了,大神帮忙啊 postgresql中delete语句恢复 如何对postgres的数据库进行覆盖式地恢复 postgresql误删数据如何恢复 postgresql卸载后之前的数据怎么恢复 postgresql 其中的一个数据库删除如何恢复 梦见两颗大板牙(即 门牙)掉了,没有什么血,但是很疼!!是代表什么?急! 梦见两颗大门牙掉了怎么破? 梦见两颗门牙被打掉了一半,有什么寓意???在线等 梦见两颗门牙断了一截(不是牙齿整个掉落) 不祥之兆? 这写异体字是怎样打出来得啊?? 在百度贴吧中如何打出繁体字和异体字? 有什么输入法能打出来异体字? 特殊字符,繁体字,异体字,拼音(带音节)怎么打出来? 怎样打出qq聊天异体字吖 什么输入法可以打出拼音和异体字 一些异体字、古体字和特殊字符运用智能ABC输入法应该怎样才能打出来? 怎么打异体字啊? 怎么用搜狗输入法打异体字 什麽输入法可以打繁体字和异体字? 这个异体字怎么打出来 postgresql 恢复 还原 区别 如何在PostgreSQL中备份和恢复一张表(包含表结构) postgresql数据库恢复出错,急急急!!! postgresql数据库恢复出错, 需要将postgresql的数据库 备份 恢复到sql server中去 pgadmin是否可以... 我的postgresql怎么连接不到数据库 跳水比赛中的得分是怎么计算出来的? 跳水比赛为什么要头朝下入水,而不是脚先入水? 竞技跳水分几种? 跳水运动一般可分为竞赛性跳水和非竞赛性跳水两大类,对于它你了解有多少? 如何欣赏跳水比赛? 跳水运动,是什么时候成为奥运会比赛项目的? 有多少种竞技跳水动作? “跳水”比赛中池子里的水有多深? 体育项目中跳水项目的由来是怎样的? 无敌干锅,干锅鸡翅、干锅千叶豆腐、干锅麻辣蟹、干锅土豆片怎么做好吃? 你吃过有哪些比肉还好吃的素菜? 在哪里可以学钵钵鸡 李干可以炖鸡肉吗? 政府预算会计要素有哪些?