1、DB2导入几千万条数据到一个表中,数据文件达5G之多,但是由于疏略没有查看表空间就直接LOAD数据。后来系统提示磁盘空间不足。
2、二话不说,清理磁盘的垃圾文件。
3、磁盘空间清理完毕,想重新load数据道表中。可是发现数据库有异常,执行select等系统一直在执行,没反应,也不出错。
4、连接同实例下面的数据库,都是正常的。
怎么办,
1、查询日志吧,错误出在哪里,哪里呢。DB2的日志并没有什么异常。查询windows系统的日志,也没有出错数据库的错误提示。
2、重启数据库,重新执行select语句,select 一直在执行,还是没有反应。
3、重新启动系统吧,也许能够解决问题。希望神能保佑。呵呵。
4、重启后,问题依旧。
5、进入DB2cmd,连接数据库吧,db2 connect ……,系统还是没反应。数据库连接不上。错误看不到,参数改不成功。
我该怎么办?首先想到的办法是抓耳挠腮。
1、求助场外热线,把公司的有经验的者请来,他看看说,其他的数据库都正常,只是这个数据库不正常,删掉数据库重建吧。数据库没有备份,有备份也是比较早的了,重建起来有一定难度。早知道及时备份一下数据库多好。打自己两巴掌吧对自己不严谨的奖励。
我到底该怎么办?
1、重建数据库吗,还是不太好,遇到困难就走捷径不是我的作风(吹谁不会呀)。
2、网上去查,看看有没有显示数据连接的状态。首先,有没应用程序的连接 db2 list application,没有应用程序连接。
3、查看数据库的活动状态,db2 list active databases. 显示结果中出错的数据库不是活动状态。
4、激活数据db2 activate db dB,不知道要多久,不知道是否成功。第2天早上来看。
5、二日来看,看数据库已经激活。数据库一些表可以打开了。只是Load数据那张表还是打不开。打开时提示:[IBM][CLI Driver][DB2/6000] SQL0911N 因为死锁或超时,当前事务已被回滚。原因码为 "68"。 SQLSTATE=40001
6、查看网上的解决办法,可以适当调整数据库参数 LOCKLIST,MAXLOCKS,LOCKTIMEOUT,DLCHKTIME,在数据库中查看
LOCKLIST,参数值50,太小了改大点5000。
7、再次打开Load数据那张表还是打不开,系统提示:SQL0668N,原因码为:3
8、看网上的解决办法是备份表空间,但是份表空间时,提示数据库“dB” 还是有问题。还有的办法是重新load出错表,可以load空表。于是load少量数据。
9、load完成,打开出问题的表,可以打开了。问题解决了
10、估计磁盘空间足够,重新load大数据。成功。
总结:
1、数据库出现问题,要痛苦的面对,但要冷静面对。
2、数据库要及时备份,尤其是有危险操作前要备份。
3、出错时,日志很重要,有错误代码很容易找到错误原因。
4、DB2常用命令还不是很熟练。
5、以上都是瞎说,算是充实自己的记忆而已。
本文描述了在DB2中加载大量数据时遇到的表死锁问题。由于磁盘空间不足,数据导入过程中导致数据库异常,无法正常执行SELECT语句。尝试清理磁盘、重启数据库和系统后问题仍未解决。通过一系列排查,包括检查应用程序连接、数据库活动状态、调整数据库参数等,最终发现并解决了死锁问题。总结中强调了面对数据库问题时的冷静处理、定期备份以及熟悉DB2命令的重要性。
5013

被折叠的 条评论
为什么被折叠?



