CentOS SQL Server数据库恢复技巧
导读:CentOS 上 SQL Server 数据库恢复技巧 一 准备与环境检查 确认备份可用:至少准备一份可用的完整备份(.bak),如需时间点恢复,还需一系列事务日志备份(.trn)。将备份文件放到 SQL Server 可访问的目录,例如...
CentOS 上 SQL Server 数据库恢复技巧
一 准备与环境检查
- 确认备份可用:至少准备一份可用的完整备份(.bak),如需时间点恢复,还需一系列事务日志备份(.trn)。将备份文件放到 SQL Server 可访问的目录,例如 /var/opt/mssql/backups,并确保权限正确(属主 mssql:mssql,权限 700)。
- 安装客户端工具:在 CentOS 上安装 mssql-tools,便于用 sqlcmd 执行恢复命令。
- 连接实例:使用命令连接本地实例(示例:
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' - 覆盖现有同名库:在完整恢复语句中加入 WITH REPLACE。
- 还原到新库并改名(避免覆盖):在 WITH 子句中加入 MOVE 指定新文件路径,例如:
提示:如需获取逻辑文件名,可在源库执行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';。
三 特殊场景与注意事项
- 系统数据库恢复:如 master 等系统库异常,通常需要从模板重建实例、还原系统库备份,并校正文件路径;该过程风险高,建议由有经验的 DBA 在维护窗口操作。
- 无备份或备份损坏:可尝试第三方工具(如 SysTools SQL Recovery、Recovery for SQL Server),但成功率取决于损坏程度,务必先对原介质做只读镜像。
- 权限与路径:确保运行 SQL Server 的 mssql 用户对备份与数据目录具备读写权限;还原到新路径时,提前创建目录并赋权。
- 恢复模式:如需做时间点恢复,数据库应处于 FULL 恢复模式,并定期执行日志备份。
四 恢复后验证与常见排错
- 完整性校验:执行
DBCC CHECKDB ([YourDB]) WITH NO_INFOMSGS, ALL_ERRORMSGS;检查对象与分配页一致性。 - 统计信息与索引:更新统计信息、重建/重组索引,确保查询性能恢复。
- 基本连通与数据核验:连接应用或执行抽样查询,核对关键表行数与关键业务数据。
- 日志与错误:若还原失败,优先查看 SQL Server 错误日志(默认路径 /var/opt/mssql/log/errorlog)与
sqlcmd输出,定位是权限、路径、空间还是备份集问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SQL Server数据库恢复技巧
本文地址: https://pptw.com/jishu/768366.html
