EsgynDB(Trafodion)数据库中执行大数据集的加载或基于大数据集创建索引等情景下,报以下错误:
*** ERROR[10007] Sort failed while writing to a scratch file with error 28. Details: SQScratchFile::executeVectorIO
在执行大数据集的加载时,数据在加载到目标表前经常需要先进行排序,排序需要把中间结果写到一个临时的scratch file文件,scratch file的路径一般在数据库安装的时候指定,默认路径为MYSQROOT/tmp;
如果数据集很大,默认的MY_SQROOT/tmp空间可能不足,就会报以上错误提示,此时需要修改scratch file文件路径;
以下/data1,/data2,/data3为不同的数据磁盘,每块磁盘下面均有/tmp目录,且属主为trafodion:trafodion;
session级别:设置cqd保证目前执行加载或者索引的会话指定一个临时的排序目录;
cqd scratch_dirs '/data1/tmp:/data2/tmp/:data3/tmp';
数据库级别:修改集群中每个节点的ms.env文件配置,重启数据库,永久生效;
# su – trafodion $ cd $MY_SQROOT/etc $ vi ms.env -- 修改 STFS_HDD_LOCATION=$MY_SQROOT/tmp 为STFS_HDD_LOCATION=/data1/tmp:/data2/tmp/:data3/tmp -- 同步ms.env到每个节点,pdcp $MY_NODES ms.env $PWD/ -- 重启数据库,sqstop; sqstart
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985104/viewspace-2727920/ ,如需转载,请注明出处,否则将追究法律责任。