下面按“从其他数据库迁移到 Debian 上的 SQL Server”来理解,并给你一套可行步骤。如果你其实是想问“把 SQL Server 从 Windows 迁移到 Debian”或“从 MySQL/PostgreSQL 迁到 SQL Server on Debian”,我也可以再细化。
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
sudo apt update
sudo apt install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
选择版本(Express / Developer / Standard 等),设置 sa 密码。
sudo apt install -y mssql-tools unixodbc-dev
✅ 最简单
-- 在 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';
✅ 使用 sqlpackage 或 SSMA
# PostgreSQL
COPY table TO 'table.csv' CSV;
# 导入 SQL Server
bcp MyDB.dbo.table in table.csv -S localhost -U sa -P password -c
Server=debian-ip,1433;Database=MyDB;User Id=sa;Password=xxx;
SELECT name, state_desc FROM sys.databases;
sudo systemctl status mssql-server
sudo ufw allow 1433/tcp
如果你能告诉我:
我可以直接给你最适合的迁移方案。