在 Debian 上直接安装与管理 Microsoft SQL Server 并非官方支持路径,生产环境更推荐在 Windows 或受支持的 Linux(如 Ubuntu) 上部署 SQL Server,并在该环境中完成备份与恢复;若必须在 Debian 上操作,通常通过容器或远程连接的方式进行。恢复的核心工具为 sqlcmd 与 SSMS,备份介质多为 .bak 文件,必要时配合 WITH MOVE 指定新路径。
场景一 有完整备份时的恢复步骤
准备与校验
确认 SQL Server 服务已启动,备份文件(如 /var/backups/db.bak)可读,且你有 SA 或具备还原权限的账户。
使用 sqlcmd 还原(推荐)
连接实例:sqlcmd -S localhost -U SA -P YourPassword
基本还原(若数据与日志文件路径与备份一致):
RESTORE DATABASE [YourDB] FROM DISK = ‘/var/backups/db.bak’ WITH RECOVERY, STATS = 5;
指定新文件路径(使用 MOVE,逻辑文件名可用 RESTORE FILELISTONLY 查询):
RESTORE FILELISTONLY FROM DISK = ‘/var/backups/db.bak’;
RESTORE DATABASE [YourDB]
FROM DISK = ‘/var/backups/db.bak’
WITH MOVE ‘YourDB_Data’ TO ‘/var/opt/mssql/data/YourDB.mdf’,
MOVE ‘YourDB_Log’ TO ‘/var/opt/mssql/data/YourDB_log.ldf’,
RECOVERY, STATS = 5;
RESTORE DATABASE [YourDB]
FROM DISK = ‘/var/backups/YourDB_full.bak’
WITH MOVE ‘YourDB_Data’ TO ‘/var/opt/mssql/data/YourDB.mdf’,
MOVE ‘YourDB_Log’ TO ‘/var/opt/mssql/data/YourDB_log.ldf’,
NORECOVERY, STATS = 5;
还原差异备份(如有,仍以 NORECOVERY 结尾):
RESTORE DATABASE [YourDB]
FROM DISK = ‘/var/backups/YourDB_diff.bak’
WITH NORECOVERY, STATS = 5;
还原事务日志并在此刻停止(使用 RECOVERY):
RESTORE LOG [YourDB]
FROM DISK = ‘/var/backups/YourDB_log.trn’
WITH RECOVERY, STOPAT = ‘2025-12-02 10:00:00’, STATS = 5;