适用于:Linux 上的 SQL Server
本文展示了如何使用 SQL Server Management Studio(SSMS)或 SqlPackage 在 Linux 上的 Linux 上的 SQL Server 上导出和导入数据库。 SSMS 是一个 Windows 应用程序。 SqlPackage 可在 Windows、macOS 和 Linux 上运行。 要使用 SSMS,你需要一台能连接到 Linux 远程 SQL Server 实例的 Windows 机器。
应始终安装和使用最新版本的 SSMS,如使用 Windows 上的 SQL Server Management Studio 管理 Linux 上的 SQL Server 中所述。
有关将数据库从一个 SQL Server 实例迁移到另一个实例的信息,请参阅使用备份和还原将 SQL Server 数据库从 Windows 迁移到 Linux。
使用 SSMS 导出数据库
通过在Windows搜索框中键入 Microsoft SQL Server Management Studio,然后选择桌面应用,启动 SSMS。
在对象资源管理器中连接到源数据库。 源数据库可以托管在运行于 Linux、Windows 上的 Microsoft SQL Server,或托管在本地或云端的 Docker 容器中。 也可以在 Azure SQL 数据库 或 Azure Synapse Analytics 中。
在 对象资源管理器 中右键点击源数据库,指向任务,选择导出数据层应用程序......
在导出向导中,选择 Next,然后在 Settings 选项卡上,将导出配置为将 BACPAC 文件保存到本地磁盘位置或Azure blob。
默认情况下,将导出数据库中的所有对象。 选择 高级 标签,选择你想导出的数据库对象。
选择“ 下一步 ”,然后选择“ 完成”。
.bacpac 文件已成功在所选位置创建,并且可以开始将该文件导入目标数据库。
使用 SSMS 导入数据库
通过在Windows搜索框中键入 Microsoft SQL Server Management Studio,然后选择桌面应用,启动 SSMS。
在 对象资源管理器 中连接到目标服务器。 目标可以是运行在Linux、Windows或Docker容器中的Microsoft SQL Server,无论是本地部署还是云端。 也可以是 Azure SQL 数据库 或 Azure Synapse Analytics。
在对象资源管理器中右键单击“数据库”文件夹,然后选择“导入数据层应用程序...”
若要在目标服务器中创建数据库,需指定本地磁盘中的 BACPAC 文件,或选择已将 BACPAC 文件上传到的 Azure 存储帐户和容器。
为数据库提供新的数据库名称。 如果要在 Azure SQL 数据库上导入数据库,请设置 Microsoft Azure SQL 数据库的版本(服务层级)、最大数据库大小和服务目标(性能级别)。
选择“下一步”,然后选择“完成”,将 BACPAC 文件导入目标服务器中的新数据库。
.bacpac 文件已成功导入,以在指定的目标服务器中创建新数据库。
SqlPackage 命令行实用工具
你也可以使用 SqlPackage 命令行工具导出和导入 BACPAC 文件。
下面的示例命令导出 BACPAC 文件:
SqlPackage /a:Export /ssn:tcp:<your_server> /sdn:<your_database> /su:<username> /sp:<password> /tf:<path_to_bacpac>
使用以下命令从 .bacpac 文件导入数据库架构和用户数据:
SqlPackage /a:Import /tsn:tcp:<your_server> /tdn:<your_database> /tu:<username> /tp:<password> /sf:<path_to_bacpac>