在Ubuntu环境下进行SQL Server数据迁移,常用方法如下:
-
备份还原法
- Windows端备份:用SSMS连接源数据库,选择“任务→备份”,保存为.bak文件。
- 传输文件:通过SCP/SFTP将备份文件从Windows传至Ubuntu服务器。
- Ubuntu端还原:安装
sqlcmd工具,执行命令:
RESTORE DATABASE [目标库名] FROM DISK '/path/to/backup.bak' WITH MOVE '逻辑数据名' TO '/var/opt/mssql/data/目标库.mdf', MOVE '逻辑日志名' TO '/var/opt/mssql/data/目标库_log.ldf'。
-
SQL Server Integration Services (SSIS)
- 适用于复杂迁移(如数据转换、自动化流程),需在Windows端创建SSIS包并部署到Ubuntu。
-
第三方工具
- Navicat:支持跨平台图形化迁移,需安装Linux版本并配置SSH连接。
- SQLines:开源工具,支持数据库结构迁移,需在Ubuntu终端执行命令。
-
命令行工具(bcp/SQLCMD)
- bcp:适合大规模数据导出/导入,需在Ubuntu安装
mssql-tools后使用bcp命令。 - SQLCMD:可执行T-SQL脚本,用于备份/还原或直接数据操作。
- bcp:适合大规模数据导出/导入,需在Ubuntu安装
注意事项:
- 迁移前备份源数据库,确保目标服务器有足够存储空间。
- 检查Ubuntu的SQL Server版本与源端兼容性,必要时调整配置(如字符集、排序规则)。
- 远程连接时需开放SQL Server端口(默认1433)并配置防火墙。
参考来源: