执行q volume 一直不出结果
直接查询select * from volumes 也不可以
后来q volume stgpool= xxx,后,可以输出结果
但其中有个copypool 不出结果
请问是什么原因呢?如何处理?
是数据库里发生阻塞了?
————————————————————————2018.08.14 补充-------------------
谢谢大家的帮助,因为评论格式问题,我在这里补充下问题的进展
我是从来没用过的DB2小白,今天尝试排查了下。
因为出现问题的这个存储池是copypool,所以我决定采取最暴力的方法:
把这个存储池删掉重建。
但我在OC中把这个存储池下的volume全部delete,然后delete stgpool ,竟然报ANR2382E DELETE STGPOOL:存储池“COPYPOOL”至少仍包含一个卷。
然后我挨个q volume format=detail 查看,确认已经没有volume在COPYPOOL下了,奇怪了
之后我决定直接连接到DB2数据库,而不是在OC的命令窗口中。
在DB2的命令行中执行查询
db2 => select volume_name from TSMDB1.volumes where stgpool_name='COPYPOOL'
竟然返回了一行 我手工delete 掉,但过来一会,又出现了一行。
所以我现在有点懵了。
请求帮助,谢谢
q其他的呢。 q db q log看看
收起数据库出问题的概率不大,可以进行如下尝试:
问题解决了,在解决问题的过程中也熟悉了TSM 里的表和视图 -_-||
涉及到volume的表和视图有
ss_volume_ids
ss_volume_names
volumes
volumes_sql
最终出现问题的是ss_volume_ids表
里面volume name的竟然前面有其他字符(真想痛扁一顿当时给COPYPOOL新增volume的同事^_^)
通过如下命令删除
db2 => delete from tsmdb1.ss_volume_ids where volname like '%BYZ016L6'
DB20000I SQL 命令成功完成。
再继续删除volumes_sql里
之后在q volume ,终于显示结果了
但解决问题后的疑问,为什么这种不合规的数据竟然能存储到数据库表里?
而且因为这个问题,导致前台查询出现取不出数据的问题
再次谢谢大家的帮助
收起