查看完整版本: 使用DB2 LOAD 把TABLESPACE LOCK住的一点教训

依依和陌生人 2008-8-15 14:42

使用DB2 LOAD 把TABLESPACE LOCK住的一点教训

本贴是想和大家分享一点教训.

有一批数据约1000+条,要倒入到TABLE. 本人使用CONTROL CENTRE 中的LOAD WIZARD,也没有细看选项,就这样 CLICK NEXT AND NEXT, 很快数就倒完了. 一查TABLE, 数据完好. 但进行修改时报错. 大意是TABLESPACE 被LOCAK 住了.

使用LIST TABLESPACE, 发现两个TABLESPACE (DATA 和 INDEX)的状态是: 0X0020, 既 BACKUP PENDING. 在这种状态下,还可以继续LOAD DATA, 但不能UPDATE./INSERT.

GOOGLE 了下, 解决方法好象只有BACKUP TABLESPACE. 本人在TASK CENTER 中,建了任务去BACKUP TABLESPACE, 并马上执行.

过了好长时间, 该JOB 一直显示运行状态. 查一下[url=http://storage.ctocio.com.cn/tt-storage-bfrz/]备份[/url]文件, 文件已不增长.估计备份已结束. 再使用LIST TABLESPACE, 状态已有0X0020 改为 0X0000, 即正常状态. 可以UPDATE/INSERT 了. 下次启动[url=http://whatis.ctocio.com.cn/searchwhatis/144/5947644.shtml]DB2[/url]后, 把原JOB 删除.

如果不想LOCK TABLESPACE, 应选上NONRECOVABLE. LOAD WIZARD 的确省值是未选中. 本以为是选中的.

教训是, 对[url=http://database.ctocio.com.cn/]数据库[/url]的任何操作要细心,不能想当然.另外,一但有问题,也不要慌, 尽量选找解决办法.

依依和陌生人 2008-8-15 14:43

以前没有用过COPY 选项. 根据本人理解, 尽管COPY不LOCK TABLE SPACE, 但好象是COPY自动做BACKUP. 假如BACKUP TABLE SPACE 要2个小时, 那LOAD 1000+ 数据是否也要花2个多小时?

:0012:

依依和陌生人 2008-8-15 14:44

搜索到的相关知识。

load不记日志,数据变化无法在后续的rollforward中进行重做,无法保证数据一致性,所以db2默认你想保证数据一致性和数据库表的可恢复性,使用copy no。
如果你不担心这个表会在后来的数据库rollfoward后变成drop pending状态,那么你就显示的告诉db2使用norecoverable
页: [1]
查看完整版本: 使用DB2 LOAD 把TABLESPACE LOCK住的一点教训