温馨提示×

SQL Server在CentOS中的备份恢复方法

小樊
35
2025-12-27 14:41:38
栏目: 云计算

SQL Server在CentOS中的备份与恢复方法

一 环境准备与常用工具

  • 安装命令行工具:执行 sudo yum install -y mssql-tools unixODBC-devel,用于通过 sqlcmd 执行备份与恢复。
  • 准备备份目录并授权:例如 sudo mkdir -p /var/opt/mssql/backup,并确保 mssql 用户对目录有读写权限。
  • 验证服务状态:使用 sudo systemctl status mssql-server 检查 SQL Server 是否正常运行。
  • 连接数据库:使用 sqlcmd -S localhost -U sa -P your_password 连接本机实例。

二 数据库备份方法

  • 使用 T-SQL 完整备份(推荐)
    • 示例:BACKUP DATABASE [YourDatabaseName]
      TO DISK = N’/var/opt/mssql/backup/YourDatabaseName_$(date +%F).bak’
      WITH FORMAT, COMPRESSION, STATS = 10;
    • 说明:FORMAT 用于新建介质集;COMPRESSION 减少备份体积;STATS 显示进度。
  • 使用 SSMS 图形化备份
    • 在 SSMS 中连接到实例,右键数据库 → 任务 → 备份,选择备份类型(完整/差异/日志)、目标路径并执行。
  • 自动化备份(crontab)
    • 示例(每天 02:00 完整备份):
      0 2 * * * /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ‘your_password’ -Q “BACKUP DATABASE YourDatabaseName TO DISK = ‘/var/opt/mssql/backup/YourDatabaseName_$(date +%F).bak’ WITH FORMAT, COMPRESSION, STATS = 10;”
  • 对象级导出(可选)
    • 使用 bcp 导出表数据:
      bcp “SELECT * FROM YourDatabaseName.dbo.YourTableName” queryout /var/opt/mssql/backup/YourTableName.csv -c -t, -S localhost -U sa -P your_password。

三 数据库恢复方法

  • 使用 T-SQL 从磁盘恢复
    • 基本恢复:
      RESTORE DATABASE [YourDatabaseName]
      FROM DISK = N’/path/to/backup.bak’
      WITH RECOVERY, REPLACE;
    • 指定新文件路径(当默认路径不可用时):
      RESTORE DATABASE [YourDatabaseName]
      FROM DISK = N’/path/to/backup.bak’
      WITH MOVE N’YourLogicalDataFileName’ TO N’/new/path/datafile.mdf’,
      MOVE N’YourLogicalLogFileName’ TO N’/new/path/logfile.ldf’,
      RECOVERY, REPLACE;
    • 时间点恢复(先完整/差异,再日志):
      RESTORE LOG [YourDatabaseName]
      FROM DISK = N’/path/to/log.trn’
      WITH RECOVERY, STOPAT = ‘2025-12-27 10:00:00’;
  • 使用 SSMS 图形化恢复
    • 在 SSMS 中右键“数据库” → “还原数据库”,选择“设备”并指定 .bak,在“选项”页按需勾选 WITH REPLACE、设置恢复状态,执行还原。
  • 无备份时的处理
    • 可尝试第三方工具进行损坏文件数据提取;如数据至关重要,建议联系厂商或专业机构。

四 备份验证与恢复演练

  • 验证备份文件有效性
    • 查看备份集信息:RESTORE HEADERONLY FROM DISK = N’/path/to/backup.bak’;
    • 校验数据一致性:执行 DBCC CHECKDB([YourDatabaseName]) 确认恢复后数据页一致性。
  • 定期恢复演练
    • 在测试环境定期执行“还原→校验→业务验证”的演练流程,确保备份可用、流程可行。

五 常见问题与最佳实践

  • 常见问题
    • 权限不足:确保 mssql 用户对备份目录具备读写权限。
    • 文件被占用/数据库存在:还原时使用 WITH REPLACE;必要时先让目标库脱机。
    • 逻辑文件名不匹配:使用 RESTORE FILELISTONLY 查看备份中的逻辑名,并在 MOVE 子句中正确映射。
    • 路径不存在:还原前创建目标目录,或改用已存在路径。
  • 最佳实践
    • 备份策略:采用“完整备份 + 差异备份 + 事务日志备份”组合,满足快速恢复与时间点恢复需求。
    • 存储与保留:将备份存放在不同物理位置(如本地与远端),并设置合理保留周期与定期清理策略。
    • 安全与合规:对备份启用加密与访问控制,定期验证备份完整性,并进行恢复演练

0