【DB2】—— 数据库表查询一直查不出来数据

问题描述

近日,数据库的测试环境中有一个打印日志表,一共有将近50w的数据,Java程序在查询的时候一直超时。

在DBvisualizer中查询数据无论是使用select * 还是 select count(*)查询的时候都是一直在执行,就是查询不到结果。

排查方式
  1. 想到最近有修改过一个字段的类型 int > bigint,于是考虑是否因表结构有变化导致的,但根据数据库反馈的信息并没有返回-668等报错信息,排除了这个问题。期间,使用reorg操作试过,但同样不起效果,数据库表依旧没有反应。
  2. 考虑直接使用rename table 后重新建表,但执行后依旧无反应。
  3. drop table 删除数据表,依旧没有反应。

以上操作均不奏效,因没有数据库管理员权限,找到数据库管理员,进行排查。

查看了与该表有关的锁,出现了好多个IX锁,X锁和IS锁。

怀疑是锁表,请管理员force掉对应的application,但是由于数据库所在的服务器IP之前因一些原因重新修改过,导致数据库的注册信息不一致,实例用户无法对数据库进行操作。

最终,决定重启数据库,更新数据库的注册信息。同时在重启数据库的时候,相关的进程也都被force了,在重启结束后数据库表查询无反应问题解决了。

总结

数据库表一直查询无反应,大概率是数据表被锁死了。下次遇到的话需要优先考虑这个问题(排查的时候需要有管理员权限,查看锁相关信息。

shell 复制代码
db2pd -db 数据库名字 -locks show detail | grep 表明
相关推荐
Decay__42 分钟前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁2 小时前
SQL Server 查询数据存在哪个表里
数据库
lusklusklusk3 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW3 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB3 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
曼岛_3 小时前
[图解密码学]第4章 古典密码
java·数据库·密码学
瀚高PG实验室4 小时前
HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理
数据库·postgresql·瀚高数据库
龙腾AI白云5 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
数据库·python·机器学习·知识图谱
KaiwuDB5 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
数字新视界5 小时前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统