温馨提示×

Debian上SQL Server的备份与恢复流程是什么

小樊
42
2025-12-06 17:51:51
栏目: 云计算

Debian上SQL Server的备份与恢复流程

一 支持与前提

  • Microsoft SQL ServerDebian 上的官方支持有限,生产环境更推荐在 Windows受支持的 Linux(如 Ubuntu) 上部署与管理。若必须在 Debian 上使用,可通过 Docker 容器运行 SQL Server,或参考社区教程在 Debian 上安装并自行承担风险。备份与恢复的核心操作均通过 T‑SQL(BACKUP/RESTORE)SMO 完成,客户端工具(如 sqlcmd)在 Debian 上可用。为降低风险,建议优先采用容器化或受支持平台。

二 备份流程

  • 准备与连接
    • 安装客户端工具:sudo apt-get update && sudo apt-get install -y mssql-tools unixodbc-dev
    • 连接测试:sqlcmd -S localhost -U SA -P ‘YourStrongPassword’ -Q “SELECT 1”
  • 使用 T‑SQL 完整备份(示例)
    • sqlcmd -S localhost -U SA -P ‘YourStrongPassword’ -Q “BACKUP DATABASE [YourDatabaseName] TO DISK = ‘/var/opt/mssql/backup/full_$(date +"%Y%m%d%H%M%S").bak’ WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10”
  • 使用 T‑SQL 差异/日志备份(示例)
    • 差异:BACKUP DATABASE [YourDatabaseName] TO DISK = ‘/var/opt/mssql/backup/diff_$(date +"%Y%m%d%H%M%S").bak’ WITH DIFFERENTIAL, INIT, STATS = 10
    • 日志:BACKUP LOG [YourDatabaseName] TO DISK = ‘/var/opt/mssql/backup/log_$(date +"%Y%m%d%H%M%S").trn’ WITH INIT, STATS = 10
  • 自动化与验证
    • 脚本化备份并加入 cron(如每日 02:00 执行),输出日志便于审计与告警。
    • 备份完成后检查文件大小、时间戳,并定期抽样做恢复演练以验证可用性。

三 恢复流程

  • 基本完整恢复(示例)
    • sqlcmd -S localhost -U SA -P ‘YourStrongPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = ‘/var/opt/mssql/backup/full_YYYYMMDDHHMMSS.bak’ WITH RECOVERY, STATS = 10”
  • 指定数据/日志文件路径(示例)
    • 先查询逻辑名:RESTORE FILELISTONLY FROM DISK = ‘/var/opt/mssql/backup/full_YYYYMMDDHHMMSS.bak’
    • 再执行带 MOVE 的恢复(将逻辑名替换为上一步查询结果):
      • RESTORE DATABASE [YourDatabaseName]
        • FROM DISK = ‘/var/opt/mssql/backup/full_YYYYMMDDHHMMSS.bak’
        • WITH MOVE ‘YourDatabase_Data’ TO ‘/var/opt/mssql/data/YourDatabase.mdf’,
        • MOVE ‘YourDatabase_Log’ TO ‘/var/opt/mssql/data/YourDatabase_log.ldf’,
        • RECOVERY, STATS = 10
  • 多文件/条带与时间点恢复
    • 条带备份:TO DISK = ‘path1.bak’, DISK = ‘path2.bak’(RESTORE 需列出全部条带)
    • 时间点恢复(日志备份链):先完整恢复,再依次恢复差异/日志,末尾用 WITH RECOVERY;如需恢复到某时点,在最后一个日志备份使用 WITH STOPAT = ‘yyyy-mm-dd hh:mi:ss’。

四 自动化与运维建议

  • 备份策略
    • 采用“每周完整 + 每日差异 + 每15–30分钟事务日志”的常用策略;日志备份前确保数据库处于 FULL 恢复模式(ALTER DATABASE […] SET RECOVERY FULL)。
  • 安全与合规
    • 备份文件设置严格权限(仅 mssql 用户可读写);对敏感数据实施 TDE 加密;定期将备份复制到 异地/对象存储
  • 监控与验证
    • 使用 cron 调度并记录日志;配置 logwatch 或集中日志平台告警;定期抽样执行 RESTORE VERIFYONLY 与演练恢复,确保备份有效。

0