2017-06-21 45 views
0

要將144GB SQL Server數據庫移動到Azure SQL,我想將其導出爲.bacpac格式。防止SqlPackage在導出期間寫入主分區

要做到這一點我用SQL版本130的SQL包裝:

C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin>SqlPackage.exe /Action:Export /ssn:MY_MSSQL_INSTANCE /sdn:MY_DATABASE /tf:d:\export.bacpac /p:Storage=file 

然而,這種失敗,因爲我的主分區(C:與39GB免費),在操作過程中運行的磁盤空間。正如你可以在命令中看到的,我嘗試導出到D :.看來導出腳本在C:上做了一些臨時的工作。

我該如何預防? (我已經檢查了默認的SQL Server Temp路徑,它也在D上:)

回答

0

我已經在300GB甚至600GB的可用磁盤空間的虛擬機上再次嘗試過,它仍然無法工作。我現在要去嘗試其他方法:Microsoft數據遷移助理或首先傳輸模式,然後使用SQL Server導入導出嚮導來移動數據。

1

SqlPackage.exe使用磁盤上的三個位置:所選輸出路徑,臨時文件夾和isolated storage folder

默認情況下,臨時文件夾和獨立存儲文件夾位於主驅動器上。我相信你可以通過改變環境變量,然後(在相同的命令提示符)運行SqlPackage.exe更改臨時文件夾的位置,就像這樣:

set TMP=d:\temp 
SqlPackage.exe /a:export ... 

這可能是不夠的,但是,因爲使用的孤立的存儲。