• 【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了,在重启结束后数据库表查询无反应问题解决了。

    总结

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

    db2pd -db 数据库名字 -locks show detail | grep 表明
    
    • 1
  • 相关阅读:
    Java面向对象,全程无废话,偏实战
    docker 配置与使用
    单例模式有几种写法?
    kuka示教器嵌套UR界面操作ros中rviz的UR机器人
    Pinely Round 1 (Div. 1 + Div. 2) A B C
    Vue3 企业级优雅实战 - 组件库框架 - 4 组件库的 CSS 架构
    学习笔记-JAVA反序列化
    十大字体设计网站年终盘点:顶级设计师独家推荐
    SpringMvc 之crud增删改查应用
    JS 字符串转 GBK 编码超精简实现
  • 原文地址:https://blog.csdn.net/qq_41062572/article/details/133770637