温馨提示×

怎样迁移到debian sqlserver

小樊
47
2026-10-04 14:38:50
栏目: 云计算

下面按“从其他数据库迁移到 Debian 上的 SQL Server”来理解,并给你一套可行步骤。如果你其实是想问“把 SQL Server 从 Windows 迁移到 Debian”或“从 MySQL/PostgreSQL 迁到 SQL Server on Debian”,我也可以再细化。


一、先在 Debian 上安装 SQL Server

1. 系统要求

  • Debian 11 / 12(64 位)
  • 至少 2 GB 内存(生产建议 4 GB+)
  • 不支持桌面版 GUI

2. 添加 Microsoft 仓库

curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

echo "deb [signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod stable main" | sudo tee /etc/apt/sources.list.d/mssql-release.list

3. 安装 SQL Server

sudo apt update
sudo apt install -y mssql-server

4. 初始化

sudo /opt/mssql/bin/mssql-conf setup

选择版本(Express / Developer / Standard 等),设置 sa 密码。

5. 安装命令行工具

sudo apt install -y mssql-tools unixodbc-dev

二、迁移数据到 SQL Server(常见场景)

场景 A:从 SQL Server(Windows) 迁移

✅ 最简单

方法 1:备份还原

-- 在 Windows 上
BACKUP DATABASE MyDB TO DISK = 'C:\MyDB.bak'

复制到 Debian:

scp MyDB.bak debian:/var/opt/mssql/backup/

在 Debian 上还原:

RESTORE DATABASE MyDB
FROM DISK = '/var/opt/mssql/backup/MyDB.bak'
WITH MOVE 'MyDB' TO '/var/opt/mssql/data/MyDB.mdf',
MOVE 'MyDB_log' TO '/var/opt/mssql/data/MyDB_log.ldf';

场景 B:从 MySQL / PostgreSQL 迁移

✅ 使用 sqlpackage 或 SSMA

方式 1:Microsoft SSMA(Windows 端)

  • 下载 SQL Server Migration Assistant
  • 连接源库 → 转换 Schema → 同步到 Debian SQL Server

方式 2:导出为 CSV / INSERT

# PostgreSQL
COPY table TO 'table.csv' CSV;

# 导入 SQL Server
bcp MyDB.dbo.table in table.csv -S localhost -U sa -P password -c

场景 C:从 应用层直接迁移

  • 修改连接字符串为:
Server=debian-ip,1433;Database=MyDB;User Id=sa;Password=xxx;
  • 重新初始化数据库(EF / Django / Hibernate)

三、迁移后检查

SELECT name, state_desc FROM sys.databases;
sudo systemctl status mssql-server

四、注意事项

  • Debian 上 不支持 SQL Server Agent(完整版)
  • 文件路径区分大小写
  • 防火墙开放 1433:
sudo ufw allow 1433/tcp

如果你能告诉我:

  • 原数据库类型(Windows SQL / MySQL / PG)
  • 数据量
  • 是否允许停机

我可以直接给你最适合的迁移方案。

0 踩