本文介绍如何使用 SQL Server Management Studio (SSMS) 和 SqlPackage在 Linux 上的 SQL Server 上导出和导入数据库。 SSMS 和 SqlPackage.exe 是Windows应用程序,因此,如果你有一台可连接到 Linux 上的远程SQL Server实例的Windows计算机,请使用此方法。
应始终按照
有关将数据库从一个SQL Server实例迁移到另一个实例的信息,请参阅使用备份和还原将SQL Server数据库从 Windows 迁移到 Linux。
使用 SSMS 导出数据库
通过在Windows搜索框中键入 Microsoft SQL Server Management Studio,然后选择桌面应用,启动 SSMS。
连接到对象资源管理器中的源数据库。 源数据库可以位于本地或云中、Linux、Windows或 Docker 上运行的Microsoft SQL Server,Azure SQL 数据库或Azure Synapse Analytics。
右键单击 对象资源管理器 中的源数据库,指向 Tasks,然后选择 Export Data-Tier Application...
在导出向导中,选择 Next,然后在 Settings 选项卡上,将导出配置为将 BACPAC 文件保存到本地磁盘位置或Azure blob。
默认情况下,将导出数据库中的所有对象。 选择“高级选项卡”,然后选择要导出的数据库对象。
选择“下一步”,然后选择“完成”。
.bacpac 文件已成功在所选位置创建,并且可以开始将该文件导入目标数据库。
使用 SSMS 导入数据库
通过在Windows搜索框中键入 Microsoft SQL Server Management Studio,然后选择桌面应用,启动 SSMS。
在 对象资源管理器 中连接到目标服务器。 目标服务器可以是在本地或云中运行的 Microsoft SQL Server,也可以在 Linux、Windows 或 Docker 环境中运行,或使用 Azure SQL 数据库 或 Azure Synapse Analytics。
右键单击对象资源管理器中的 Databases 文件夹,然后选择 Import 数据层应用程序...
若要在目标服务器中创建数据库,请从本地磁盘指定 BACPAC 文件,或选择上传 BACPAC 文件的Azure存储帐户和容器。
为数据库提供新的数据库名称。 如果要在Azure SQL 数据库上导入数据库,请设置Microsoft版本Azure SQL 数据库(服务层级)、最大数据库大小和服务目标(性能级别)。
选择“下一步”,然后选择“完成”,将 BACPAC 文件导入目标服务器中的新数据库。
.bacpac 文件已成功导入,以在指定的目标服务器中创建新数据库。
SqlPackage 命令行选项
还可以使用 SQL Server Data Tools (SSDT) 命令行工具(
下面的示例命令导出 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>