0

要将 144GB SQL Server 数据库移动到 Azure SQL,我想将其导出为 .bacpac 格式。

为此,我使用 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 临时路径,它也在 D 上:)

4

4 回答 4

1

SqlPackage.exe 使用磁盘上的三个位置:选定的输出路径、临时文件夹和隔离的存储文件夹

默认情况下,临时文件夹和独立存储文件夹位于主驱动器上。我相信您可以通过更改环境变量然后(在同一命令提示符中)运行 SqlPackage.exe 来更改临时文件夹位置,如下所示:

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

但是,这可能还不够,因为使用了隔离存储。

于 2017-06-21T22:36:34.277 回答
0

在 18.7 版中,有一个可用的新参数/p:TempDirectoryForTableData=(STRING)

于 2021-05-06T07:30:03.390 回答
0

我在具有 300GB 甚至 600GB 可用磁盘空间的 VM 上再次尝试过,它仍然无法工作。我现在将尝试其他方法:Microsoft 数据迁移助手,或者先传输架构,然后使用 SQL Server 导入导出向导来移动数据。

于 2017-06-27T15:58:24.040 回答
-1

增加 C 盘大小并执行。

于 2020-10-05T06:22:28.223 回答