使用 Windows 上的 SSMS 或 SqlPackage.exe 在 Linux 上导出和导入数据库

适用于:SQL Server - Linux

本文章说明如何使用 SQL Server Management Studio (SSMS)SqlPackage.exe 在 Linux 的 SQL Server 上导出和导入数据库。 SSMS 和 SqlPackage.exe 是 Windows 应用程序,因此请在 Windows 计算机可连接到 Linux 上的远程 SQL Server 实例时使用此方法。

应始终安装和使用最新版本的 SQL Server Management Studio (SSMS),如使用 Windows 上的 SSMS 连接到 Linux 上的 SQL Server 中所述。

注意

如果要将数据库从一个 SQL Server 实例迁移到另一个实例,请使用备份和还原功能。

使用 SSMS 导出数据库

  1. 在 Windows 搜索框内键入 Microsoft SQL Server Management Studio 以启动 SSMS,然后选择桌面应用。

    Screenshot of SQL Server Management Studio.

  2. 在对象资源管理器中连接到源数据库。 源数据库可以位于在本地或云中、在 Linux、Windows 或 Docker 上以及在 Azure SQL 数据库或 Azure Synapse Analytics 中运行的 Microsoft SQL Server 中。

  3. 在对象资源管理器中右键单击源数据库,指向“任务”,然后选择“导出数据层应用程序...”

  4. 在导出向导中选择“下一步”,然后在“设置”选项卡上配置导出,将 BACPAC 文件保存到本地磁盘位置或 Azure blob。

  5. 默认情况下,将导出数据库中的所有对象。 选择“高级选项卡”,然后选择要导出的数据库对象。

  6. 选择“下一步”,然后选择“完成”。

.bacpac 文件已成功在所选位置创建,并且可以开始将该文件导入目标数据库。

使用 SSMS 导入数据库

  1. 在 Windows 搜索框内键入 Microsoft SQL Server Management Studio 以启动 SSMS,然后选择桌面应用。

    Screenshot of SQL Server Management Studio again.

  2. 在对象资源管理器中连接到目标服务器。 目标服务器可以是在本地或云中、在 Linux、Windows 或 Docker 上以及在 Azure SQL 数据库或 Azure Synapse Analytics 中运行的 Microsoft SQL Server。

  3. 在对象资源管理器中右键单击“数据库”文件夹,然后选择“导入数据层应用程序...”

  4. 若要在目标服务器中创建数据库,需指定本地磁盘中的 BACPAC 文件,或选择已将 BACPAC 文件上传到的 Azure 存储帐户和容器。

  5. 为数据库提供新的数据库名称。 如果要在 Azure SQL 数据库上导入数据库,请设置 Microsoft Azure SQL 数据库的版本(服务层级)、最大数据库大小和服务目标(性能级别)。

  6. 选择“下一步”,然后选择“完成”,将 BACPAC 文件导入目标服务器中的新数据库。

.bacpac 文件已成功导入,以在指定的目标服务器中创建新数据库。

SqlPackage 命令行选项

还可以使用 SQL Server Data Tools (SSDT) 命令行工具 SqlPackage.exe 来导出和导入 BACPAC 文件。

下面的示例命令导出 BACPAC 文件:

SqlPackage.exe /a:Export /ssn:tcp:<your_server> /sdn:<your_database> /su:<username> /sp:<password> /tf:<path_to_bacpac>

使用以下命令从 .bacpac 文件导入数据库架构和用户数据:

SqlPackage.exe /a:Import /tsn:tcp:<your_server> /tdn:<your_database> /tu:<username> /tp:<password> /sf:<path_to_bacpac>