db2离线备份_DB2高危操作LOAD命令风险详解

LOAD是 DB2中的一个数据装载工具,它能够直接将格式化的数据写入数据库,而且只记录很少量的日志,因此比批量INSERT或者IMPORT的效率要高得多。但正是由于只写少量日志等特点,一旦LOAD失败可能会导致严重的问题,使得 LOAD命令变成了一个高风险的操作。在我行多年的数据库运维工作中,很多系统采用 LOAD提升了性能,满足了业务需求,但是也经历了很多惨痛的教训。本文结合我行在运维工作中真实遇到的问题,重点梳理了LOAD操作常见的风险点,分析其原因,并给出相应的解决方法。

风险1:LOAD期间表不可访问

问题现象:访问正在进行LOAD操作的表时报错SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001。

原因分析:默认的LOAD命令,比如 db2 load from a.del of del insert into a,是会锁表的,在LOAD期间会在目标表上加Z锁(超级排他锁),导致目标表不可访问。

解决方法: LOAD命令可以加上allow read access,这样在LOAD期间对表可以做查询操作。

风险2:LOAD正常完成后表状态异常

问题现象:LOAD操作正常完成,且没有任何

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值