DB2 load大数据量导致表死锁

来源:互联网 发布:mac怎么清理缓存垃圾 编辑:程序博客网 时间:2024/06/11 23:10

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、以上都是瞎说,算是充实自己的记忆而已。

 

 

原创粉丝点击