打开一个达到2G上限的dets文件,结果如下:
1> dets:open_file("task_info_base.DAT.bak0619").
dets: file "task_info_base.DAT.bak0619" not properly closed, repairing ...
{error,{no_more_space_on_file,"task_info_base.DAT.bak0619.TMP"}}
找遍了全网也没有找到解决方法,经过自己摸索,找到了一个不是特别完美的解决方案,但是能挽救大部分数据。
解决方案:截取dets文件前面大部分的数据,放弃之后的数据。
head -c 1800000000 task_info_base.DAT.bak0619 > head_1.8g_output
前1.8G数据导入的文件,可以正常打开:
2> {ok,F} = dets:open_file("head_1.8g_output").
dets: file "head_1.8g_output" not properly closed, repairing ...
{ok,#Ref<0.0.1.4531>}
3> catch dets:info(F).
[{type,set},
{keypos,2},
{size,475024},
{file_size,1797010920},
{filename,"head_1.8g_output"}]
经测试,如果取前面1900000000字节数据,打开则返回{error,{no_more_space_on_file,“head_output.TMP”}},具体的界限是多少,可自行尝试。