DB2数据库load问题:SQL2036N

最近在做数据库历史数据清理,由于表内数据量较大,业务要求表内数据保留1年即可。所以设计清理方案为:先将一年内数据导出至数据文件中。将表清空。将数据文件内数据load进表。

load语句如下:

db2 "load from filename of del modified by coldel, delprioritychar codepage=1386 insert into tabname nonrecoverable".

但是load时一直出现如下问题:

SQL2036N  The path for the file, named pipe, or device "/home/rpt_usr/bak/temp/tbl_test_20180927.del" is not valid.

字面意思就是路径不对,但是本人检查过文件路径是正确的,而且同样一个文件,用import命令是可以将数据导入的,说明数据文件是没有问题的,因此百思不得其解。无奈求助于百度,但是始终找不到答案。看到有文章写的解决方案是需要加client参数,但是我的脚本是直接运行在数据库服务器上的,所以不需要client参数。因此,还得从文件权限上边找问题。

查看export生成的文件的权限:-rw-r-----

文件所有者的权限为可读可写,文件所属组的权限为可读。

这样的权限对于import来说足够了。但是load却不行,接着对文件的权限进行更改,经过测试发现,chmod 744可以满足load的权限要求,低于744的均不满足。即-rwxr--r--文件所有者必须可读可写可执行,文件所属组和其他用户需有可读权限。

否则会报错显示:

SQL2061N An attempt to access media "/home/rpt_usr/bak/temp/tbl_test_20180927.del" is denied.

总结下来就是文件的权限问题,load时不仅仅需要读的权限。

工作中遇到问题,解决后写下记录,问题解决了,但是具体的更深层的原理还需要继续研究。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值