场景:kettle数据抽取节点A、B,Postgresql集群数据管理节点C。A和B上同时跑着数据抽取任务,有两个任务运行过程中卡住。于是打算重启抽取任务,先truncate这两个表(一个任务对应一个表),问题出现了,有一个表truncate执行卡住,delete卡住,drop table也不行,但是可以insert和select。一定是表锁住了!
解决办法:
1.查询表中存在的锁
select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname
from pg_locks a
join pg_class b on a.relation = b.oid
where upper(b.relname) = 'TABLE_NAME';
查到后发现确实存在锁,如下:
locktype | database | pid | mode | relation | relname
----------+----------+-------+-----------------+----------+---------
relation | 439791 | 26752 | AccessShareLock | 2851428 |table_name
relation | 439791 | 26752 | ExclusiveLock | 2851428 |table_name
2.再根据上面查出来的pid去表pg_stat_activity查询一下该锁对应的SQL语句:
select usename,current_query ,query_start,procpid,client_addr from pg_stat_activity where procpid=17509;
如下:
usename | current_query | query_start | procpid | client_addr
-----------+---------------------------------------------------------------------------------------------------------------+-------------------------------+---------+----------------
gpcluster | DELETE FROM TABLE_NAME WHERE A = 1 | 2011-05-14 09:35:47.721173+08 | 17509 | 192.168.165.18
(1 row)
3.杀掉方法:在Postgresql数据库管理服务器中,查询这个进程PID然后Kill掉。
注意在A和B节点上是查不到该进程的,因为A和B组织的copy语句是要在数据库里执行的,一个copy语句对应一个进程。
> ps -ef|grep 17509
postgres 17509 4868 1 Nov18 ? 00:11:19 postgres: postgres mydb 192.168.165.18(56059) SELECT
postgres 30838 30800 0 15:19 pts/3 00:00:00 grep 17509
> kill -9 17509
相关推荐
【Kettle012】Kettle访问FTP服务器文件并处理数据至PostgreSQL是关于使用Kettle(也称为Pentaho Data Integration,简称PDI)工具进行数据集成的一个具体实例。Kettle是一个开源的数据集成工具,它允许用户通过图形...
### Kettle全量多表数据同步 #### 一. 建立资料库 在进行全量多表数据同步之前,首先需要建立一个资源库来存放所有的转换和作业。资源库是Kettle的一个核心概念,它用于存储和管理转换、作业和其他与数据处理相关...
源数据为Oracle,目标数据库为PostgreSQL. 增量记录表.SQL 用来生成 edp_etl_record 表 记录每次更新数据的执行记录过程。 更新时先取出edp_etl_record 表中 最新一条数据中的 data_range_to 列的值,同时 取出 ...
通过Kettle,你可以灵活地处理各种数据同步场景,无论是简单的单表同步还是涉及多表关联的复杂同步,它都能提供强大的支持。同时,Kettle的图形化界面使得配置和调试过程相对直观,降低了操作难度。 请参考提供的...
Kettle的数据处理流程文件名为`kettle访问PostgreSQL数据库并处理数据至execl文件.ktr`,这是一个Kettle的转换文件(Transformation)。在这个转换中,我们可以预期看到以下几个步骤: 1. **数据库输入**:使用...
在这个场景中,我们将探讨如何使用Kettle将XML文档转换为数据表结构。 XML是一种通用的数据交换格式,广泛用于存储和传输结构化信息。然而,很多数据库和分析工具更倾向于以表格形式存储数据。Kettle提供了解决这个...
在Kettle中,资源库表(Repository)是存储元数据和工作流的重要组成部分,它提供了版本控制、项目管理以及团队协作的功能。下面我们将详细探讨Kettle资源库表的相关知识点。 1. **资源库的概念** Kettle资源库是...
Kettle可以帮助用户处理各种数据源,并将数据提取、转换和加载到数据库系统、数据仓库或者数据湖中。它的主要特点包括易于使用、对大数据的高效率处理、丰富的转换组件和插件支持。Kettle支持多种操作系统平台,如...
在Kettle中,可以通过多种方式实现数据采集,如使用"表输入"步骤连接到数据库提取数据,或者使用"文件输入"步骤读取CSV、Excel、XML等文件。在Web版的数据集成平台上,用户无需编写代码,只需通过拖放操作就能设定...
在IT领域,数据库连接是数据集成过程中的关键环节,特别是在使用工具如Kettle(也称为Pentaho Data Integration,简称PDI)时。Kettle是一款强大的ETL(Extract, Transform, Load)工具,用于从各种数据源抽取数据,...
通过Kettle的数据表复制或者SQL查询执行,可以实现数据的高效迁移。 2. 数据清洗与转换: 在数据迁移过程中,Kettle提供了丰富的转换步骤,如过滤重复记录、空值处理、类型转换、数据格式化等,以确保数据质量。...
5. 支持的DB种类:Kettle支持大多数主流数据库,包括但不限于MySQL、PostgreSQL、Oracle、SQL Server等。 6. 支持的操作系统和文件类型:Kettle支持的操作系统和文件类型众多,确保了其高度的兼容性和灵活性。 知识...
【标题】"kettle连接各种数据库所需jar包资源"提供了Kettle进行数据提取、转换和加载(ETL)过程中与多种常见数据库交互所必需的Java类库(JAR包)。Kettle,又称Pentaho Data Integration(PDI),是一款强大的开源...
Kettle,全称为Pentaho Data Integration(PDI),是一款强大的ETL(Extract, Transform, Load)工具,用于数据整合和迁移。它以其图形化的界面、灵活的数据处理能力和跨平台的特性深受用户喜爱。在9.2这个版本中,...
kettle快速加载到oracle之oracle批量加载-Oracle Bulk Loader
3. **编写SQL语句**:在创建了数据库连接后,你可以使用Kettle的各种步骤(如"表输入"、"表输出")来执行SQL查询或者操作,这些步骤会利用到数据库驱动来执行相应的数据库操作。 4. **数据抽取和转换**:Kettle的...
### Kettle社区版、商业版与傲飞数据整合平台比较 #### 一、概述 Pentaho Data Integration(简称Kettle)是一款广受好评的开源ETL(Extract, Transform, Load)工具,它具备强大的数据抽取、转换及加载功能。随着...
作为一个功能强大的大数据 ETL 工具,Kettle 支持多种输入和输出格式,包括文本文件、数据表和数据库引擎。本文将对 Kettle 的输入输出进行详细的介绍。 文本文件输入步骤 ---------------- 文本文件输入步骤是 ...
在Java编程中,连接到PostgreSQL数据库通常需要特定的驱动程序,这个驱动程序通常是以JAR(Java Archive)文件的形式存在。"连接postgresql数据库需要的jar包"指的是用于建立Java应用程序与PostgreSQL数据库之间通信...
每个特定的JDBC驱动程序都是针对某个数据库供应商的,它们实现了JDBC接口,使得Kettle能够通过标准的Java代码执行SQL查询、操作表和管理事务。 1. **通用JDBC驱动**:这些驱动程序允许Kettle连接到多种数据库系统,...