在 Debian 上“迁移 SQL Server”通常有两种常见含义,我分别说明,你可以对号入座:
场景:原来 SQL Server 跑在 Windows,现在要搬到 Debian 上的 SQL Server(Linux 版)
Microsoft 官方支持:
# 添加 Microsoft 源
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/debian/11/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt update
sudo apt install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
安装 SQL Server 命令行工具:
curl https://packages.microsoft.com/config/debian/11/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt update
sudo apt install -y mssql-tools unixodbc-dev
在 Windows 上:
BACKUP DATABASE dbname TO DISK = 'C:\db.bak'
拷贝到 Debian 后:
RESTORE DATABASE dbname FROM DISK = '/var/opt/mssql/backup/db.bak'
⚠️ 注意:
mssql 用户)sqlpackage / DACPAC适合 CI/CD、结构+数据迁移
适合小库、跨版本
systemctl stop mssql-server
cp -r /var/opt/mssql /备份目录
新机器:
systemctl stop mssql-server
cp -r /备份目录/mssql /var/opt/
chown -R mssql:mssql /var/opt/mssql
systemctl start mssql-server
❌ SQL Server Linux 不支持:
❌ 文件权限问题最常见
✅ 所有数据文件必须属于 mssql:mssql
我可以给你更精确的方案,只需要:
我可以直接给你一步步命令。