CentOS SQL Server数据库恢复步骤是什么
导读:CentOS 上 SQL Server 数据库恢复步骤 一 准备与检查 确认备份文件可用:通常为 .bak(数据/差异)与 .trn(事务日志)。在 Linux 上通过 sqlcmd 执行还原,RESTORE 是 T‑SQL 命令而非系统...
CentOS 上 SQL Server 数据库恢复步骤
一 准备与检查
- 确认备份文件可用:通常为 .bak(数据/差异)与 .trn(事务日志)。在 Linux 上通过 sqlcmd 执行还原,RESTORE 是 T‑SQL 命令而非系统命令。必要时先用 SSMS 或 sqlcmd 校验备份可用性。
- 将备份放到实例可访问路径,例如 /var/opt/mssql/backups,并确保 mssql 用户对目录有读写权限:
sudo mkdir -p /var/opt/mssql/backups
sudo chown mssql:mssql /var/opt/mssql/backups
sudo chmod 700 /var/opt/mssql/backups - 若备份来自云平台或包含多个库,先查看备份集信息:
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q “RESTORE HEADERONLY FROM DISK=‘/var/opt/mssql/backups/xxx.bak’”
如需指定第 N 个备份集,使用 WITH FILE=N;查看数据/日志文件逻辑名:
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q “RESTORE FILELISTONLY FROM DISK=‘/var/opt/mssql/backups/xxx.bak’”。
二 使用 T‑SQL 还原
-
基本完整恢复(适用于简单场景):
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q “RESTORE DATABASE [YourDB] FROM DISK=‘/var/opt/mssql/backups/YourDB.bak’ WITH RECOVERY” -
指定新库名并移动文件(当目标路径或库名不同时):
- 获取逻辑名:
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q “RESTORE FILELISTONLY FROM DISK=‘/var/opt/mssql/backups/YourDB.bak’” - 还原并 MOVE(示例逻辑名:YourDB、YourDB_log):
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q "
RESTORE DATABASE [NewDB]
FROM DISK=‘/var/opt/mssql/backups/YourDB.bak’
WITH MOVE ‘YourDB’ TO ‘/var/opt/mssql/data/NewDB.mdf’,
MOVE ‘YourDB_log’ TO ‘/var/opt/mssql/data/NewDB_log.ldf’,
REPLACE, RECOVERY""
- 获取逻辑名:
-
多备份集与时间点恢复(完整 → 差异 → 日志):
- 完整备份(末尾 NORECOVERY,便于后续还原):
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q "
RESTORE DATABASE [YourDB]
FROM DISK=‘/var/opt/mssql/backups/YourDB_Full.bak’
WITH NORECOVERY, STATS=5" - 差异备份(如存在,末尾 NORECOVERY):
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q "
RESTORE DATABASE [YourDB]
FROM DISK=‘/var/opt/mssql/backups/YourDB_Diff.bak’
WITH NORECOVERY, STATS=5" - 事务日志备份(最后一个用 RECOVERY,中间用 NORECOVERY):
sqlcmd -S localhost -U SA -P ‘< 密码> ’ -Q "
RESTORE LOG [YourDB]
FROM DISK=‘/var/opt/mssql/backups/YourDB_Log.trn’
WITH RECOVERY""
- 完整备份(末尾 NORECOVERY,便于后续还原):
三 使用 SSMS 图形界面
- 在 Windows 上用 SSMS 连接到 CentOS 上的 SQL Server 实例,右键 Databases → Restore Database,选择 Device 并添加 .bak。
- 在 Source 选择源库,Destination 可修改目标库名;在 Files 页按需设置数据/日志文件的新路径。
- 若需继续还原日志,首轮选择 Options → Recovery state: RESTORE WITH NORECOVERY;随后对后续日志依次还原,最后一个日志选择 RESTORE WITH RECOVERY。
四 常见问题与验证
- 备份集顺序与时间点:日志还原必须按时间顺序连续执行,缺一环将无法前滚到最终时间点。
- 多库备份集:一个 .bak 可能包含多个备份(如系统库与目标库),用 RESTORE HEADERONLY … WITH FILE=N 指定读取第 N 个备份集。
- 权限与路径:确保运行 SQL Server 的 mssql 用户对备份目录和目标数据目录具备读写权限,且目标目录已存在。
- 一致性校验与后续维护:还原后执行 DBCC CHECKDB 校验一致性,必要时重建索引并更新统计信息,确认应用功能与性能正常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SQL Server数据库恢复步骤是什么
本文地址: https://pptw.com/jishu/775267.html
