尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

PostgreSQL数据库查询表是否被锁,以及解锁表的办法

PostgreSQL数据库查询表是否被锁,以及解锁表的办法
📅 发布时间:2026/6/20 14:44:49

问题现象:

(1)、CDM任务执行时报错:org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.

2025-09-29 10:22:19.663|INFO |cdm-job-submit-pool24|[o.a.s.c.jdbc.GenericJdbcExecutor:596]|Destructive Action Warning: truncate all data: TRUNCATE TABLE "turbo_dev_01"."t_cm_customer_ship_detail"
2025-09-29 10:27:19.763|ERROR|cdm-job-submit-pool24|[org.apache.sqoop.utils.JdbcSandbox:62]|occur exception, actual is :
org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:399)at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:356)at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:341)at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:317)at org.postgresql.jdbc.PgStatement.executeUpdate(PgStatement.java:290)at org.apache.sqoop.connector.jdbc.sql.impl.WrapStatement.lambda$executeUpdate$1(WrapStatement.java:33)at java.security.AccessController.doPrivileged(Native Method)at org.apache.sqoop.utils.JdbcSandbox.doPrivileged(JdbcSandbox.java:53)at org.apache.sqoop.connector.jdbc.sql.impl.WrapStatement.executeUpdate(WrapStatement.java:33)at org.apache.sqoop.connector.jdbc.GenericJdbcExecutor.executeUpdate(GenericJdbcExecutor.java:741)at org.apache.sqoop.connector.jdbc.GenericJdbcExecutor.truncateTable(GenericJdbcExecutor.java:597)at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.sqoop.connector.jdbc.writer.JdbcExecutorProxy$ExecutorInvocationHandler.invoke(JdbcExecutorProxy.java:95)at com.sun.proxy.$Proxy36.truncateTable(Unknown Source)at org.apache.sqoop.connector.jdbc.GenericJdbcToInitializer.clearBeforeLoading(GenericJdbcToInitializer.java:842)at org.apache.sqoop.connector.jdbc.GenericJdbcToInitializer.prepareJob(GenericJdbcToInitializer.java:641)at org.apache.sqoop.connector.jdbc.GenericJdbcToInitializer.prepareJob(GenericJdbcToInitializer.java:86)at org.apache.sqoop.driver.job.JobInitiator.prepareJob(JobInitiator.java:852)at org.apache.sqoop.driver.job.JobSubmissionContext.submitInternal(JobSubmissionContext.java:238)at org.apache.sqoop.driver.job.JobSubmissionContext.submit(JobSubmissionContext.java:183)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:750)
Caused by: java.net.SocketTimeoutException: Read timed outat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)at java.net.SocketInputStream.read(SocketInputStream.java:171)at java.net.SocketInputStream.read(SocketInputStream.java:141)at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192)at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159)at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144)at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76)at org.postgresql.core.PGStream.receiveChar(PGStream.java:476)at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2174)at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)... 28 common frames omitted

(2)重试后,发现执行也会报错

2025-09-29 10:15:14.175|INFO |cdm-job-submit-pool7|[o.a.s.c.jdbc.GenericJdbcExecutor:1446]|execute check sql: SELECT count(1) FROM "turbo_dev_01"."t_cm_customer_ship_detail" WHERE 1 = 2 .
2025-09-29 10:20:14.275|ERROR|cdm-job-submit-pool7|[org.apache.sqoop.utils.JdbcSandbox:62]|occur exception, actual is :
org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:399)at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:356)at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:341)at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:317)at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:312)at org.apache.sqoop.connector.jdbc.sql.impl.WrapStatement.lambda$execute$3(WrapStatement.java:50)at java.security.AccessController.doPrivileged(Native Method)at org.apache.sqoop.utils.JdbcSandbox.doPrivileged(JdbcSandbox.java:53)at org.apache.sqoop.connector.jdbc.sql.impl.WrapStatement.execute(WrapStatement.java:50)at org.apache.sqoop.connector.jdbc.GenericJdbcExecutor.existTable(GenericJdbcExecutor.java:1448)at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.sqoop.connector.jdbc.writer.JdbcExecutorProxy$ExecutorInvocationHandler.invoke(JdbcExecutorProxy.java:95)at com.sun.proxy.$Proxy36.existTable(Unknown Source)at org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.configureTableProperties(GenericJdbcFromInitializer.java:750)at org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.initialize(GenericJdbcFromInitializer.java:206)at org.apache.sqoop.connector.jdbc.GenericJdbcFromInitializer.initialize(GenericJdbcFromInitializer.java:111)at org.apache.sqoop.driver.job.JobInitiator.initializeConnector(JobInitiator.java:787)at org.apache.sqoop.driver.job.JobInitiator.createJobRequest(JobInitiator.java:371)at org.apache.sqoop.driver.job.JobSubmissionContext.submitInternal(JobSubmissionContext.java:235)at org.apache.sqoop.driver.job.JobSubmissionContext.submit(JobSubmissionContext.java:183)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:750)
Caused by: java.net.SocketTimeoutException: Read timed outat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)at java.net.SocketInputStream.read(SocketInputStream.java:171)at java.net.SocketInputStream.read(SocketInputStream.java:141)at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192)at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159)at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144)at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76)at org.postgresql.core.PGStream.receiveChar(PGStream.java:476)at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2174)at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)... 28 common frames omitted

 

问题原因:

  由于重试多次,发现还是报相同的错误。怀疑是表被锁导致。

解决办法:

(1)、查询表是否被锁,获取pid 

SELECTl.locktype,l.MODE,l.GRANTED,A.pid,       --解除锁表使用
    A.usename,A.query,A.STATE,A.application_name 
FROMpg_locks lJOIN pg_stat_activity A ON l.pid = A.pidJOIN pg_class C ON l.relation = C.oid 
WHEREC.relname = 't_cm_customer_ship_detail' -- 将 your_table_name 替换为你的表名AND l.relation IS NOT NULL;

 

(2)解锁表,根据pid解锁表

SELECT pg_terminate_backend(139637009676032); --查询pid接触锁表

 

 



本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/19118351

相关新闻

  • 用信号量机制实现互斥,同步,前驱
  • AxC杂题乱做
  • Apache Hive 如何在大内容中发挥能量

最新新闻

  • 图片格式转换工具怎么选?看这6款小程序对比结果 - 软件工具教程方法
  • PaddleOCR完整指南:从图像到结构化数据的AI文档解析革命
  • 无保卡老旧腕表没人收?南京回收不设门槛,新旧都收 - 讯息早知道
  • Python计算机毕设之基于 Django 的校园二手交易撮合平台设计与实现 高校闲置资源共享交易管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • GitLens配置系统深度解析:高性能分布式Git可视化架构设计与实现原理
  • 孩子近视预防技术全解析 从检测到管控的实操指南 - 起跑123

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号