I was helping a co-worker troubleshoot drive space issues with ‘Transfer SQL Server Objects Task’ in SSIS. What we basically do is prepare the data in staging area, transfer that to our production servers via log shipping, populate production databases from that database, and replicate the same database across multiple production servers. When replicating, we use ‘Transfer SQL Server Objects Task’ from where we copy all the data from one server to another.
When pumping any data from SSIS, whenever BLOBs are involved, SSIS starts writing those to disk and then load the data. While doing ETL via Data Flows, the task exposes some settings called:
- BLOBTempStoragePath
- BufferTempStoragePath
and allowing you to change the path, or change the max size for those properties.
However, ‘Transfer SQL Server Objects Task’ does not expose these settings. After running out of space, and watching the available space go beyond 0 on C, we decided to move the TEMP and TMP variables on a different drive. You can change the System Variables, or variable per user by following:
Be sure to logout from your userprofile and log back in after you change the settings. Also, %UserProfile% is a system variable that refers to your profile directory. You want to change that completely to something like:
D:\Temp\
Hope that saves a few hours of work for someone. Not sure if creating temp variable in SSIS variables would overwrite the System Variables.