运行SSIS包遇到的怪事
前阵子,运行一个执行ETL处理的SSIS包时一直报错:“The buffer manager cannot create a temporary storage file on any path in the BufferTempStoragePath property. There is an incorrect file name or no permission.”,“ A buffer failed while allocating 4062864 bytes.”,“Error 0x8007000E while loading package file “D:\SSIS\ETL.dtsx” into an XML document. 存储空间不足,无法完成此操作。”,“Error 0x800705AA while loading package file “D:\SSIS\ETL.dtsx”. 系统资源不足,无法完成请求的服务。”但该服务器无论是内存还是磁盘都绰绰有余。重启服务器,给sql server 2005打sp3补丁也都无济于事。
在网上搜索了一下,发现BufferTempStoragePath默认使用windows临时文件目录,于是打开%temp%,将里面内容全部清空,重新提交作业,结果奇迹般的成功了。
随后继续在网上搜索,找到这么一篇文章http://www.bimonkey.com/2008/04/blobtempstoragepath-and-buffertempstoragepath/,文中提到可以通过在SSIS中将BufferTempStoragePath和BLOBTempStoragePath指向改为一个新的目录的方法来解决,同时要注意这个新的目录不应与虚拟内存交换文件在同一个盘中。试试吧,希望这个问题不要再发生。