CentOS 上 SQL Server 数据库恢复技巧
一 准备与环境检查
sqlcmd -S localhost -U SA -P '<YourPassword>')。二 标准恢复流程与常用命令
RESTORE DATABASE [YourDB]
FROM DISK = '/var/opt/mssql/backups/YourDB.bak'
WITH RECOVERY, REPLACE;
-- 1) 完整备份(NORECOVERY 以便后续还原)
RESTORE DATABASE [YourDB]
FROM DISK = '/var/opt/mssql/backups/YourDB.bak'
WITH NORECOVERY;
-- 2) 差异备份(如存在,NORECOVERY)
RESTORE DATABASE [YourDB]
FROM DISK = '/var/opt/mssql/backups/YourDB_Diff.bak'
WITH NORECOVERY;
-- 3) 事务日志(时间点或到末尾)
RESTORE LOG [YourDB]
FROM DISK = '/var/opt/mssql/backups/YourDB_Log.trn'
WITH RECOVERY; -- 如需恢复到特定时间点:WITH STOPAT = '2025-12-09 10:00:00'
RESTORE DATABASE [YourDB_New]
FROM DISK = '/var/opt/mssql/backups/YourDB.bak'
WITH MOVE 'YourDB_Data' TO '/var/opt/mssql/data/YourDB_New.mdf',
MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_New.ldf',
RECOVERY, REPLACE;
提示:如需获取逻辑文件名,可在源库执行 RESTORE FILELISTONLY FROM DISK = '/path/YourDB.bak';。三 特殊场景与注意事项
四 恢复后验证与常见排错
DBCC CHECKDB ([YourDB]) WITH NO_INFOMSGS, ALL_ERRORMSGS; 检查对象与分配页一致性。sqlcmd 输出,定位是权限、路径、空间还是备份集问题。