SqlPackage 导入最大数据库大小

问题描述

我想将数据库.bacpac 文件导入 Azure 中的 sql Server。我在这里阅读了文档:https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-import?view=sql-server-ver15

它说有一个名为 DatabaseMaximumSize=(INT32) 的标志。我想知道 sqlpackage 是否有限制可以支持?例如,如果我有 8 GB 的可用 RAM,sqlpackage 是否能够加载比这更大的 .bacpac,这意味着它不会将其全部加载到内存中?

解决方法

SQLPACKAGE.exe 不需要对您的系统 RAM 做任何事情。

Sqlpackage.exe 将导出和导入比您的系统内存更大的数据库。

当您在 Azure 中使用 sqlpackage.exe 导入 bacpac 文件并且您没有预先创建目标数据库时,默认情况下将在目标服务器中创建一个最大数据库大小仅为 32gb 的数据库。

因此,如果您导出为 bacpac 的数据库大于 32gb,那么您应该在导入 bacpac 文件之前创建目标数据库(保持为空)。此外,bacpac 的大小并不代表 db 的实际大小,bacpac 是高度压缩的对象,与实际 db 大小无关。

现在导入参数 /p 数据库最大大小,我相信它可以指定目标数据库的最大限制。