首页主机资讯Ubuntu上SQL Server备份恢复流程是怎样的

Ubuntu上SQL Server备份恢复流程是怎样的

时间2025-12-12 10:33:04发布访客分类主机资讯浏览1169
导读:Ubuntu上SQL Server备份与恢复流程 一 环境准备与权限 安装客户端工具:sudo apt-get update && sudo apt-get install -y mssql-tools unixodbc-...

Ubuntu上SQL Server备份与恢复流程

一 环境准备与权限

  • 安装客户端工具:sudo apt-get update & & sudo apt-get install -y mssql-tools unixodbc-dev,确保能在命令行使用 sqlcmd。如使用本机实例,连接主机可填 localhost。为备份目录(如 /var/opt/mssql/backups)设置属主与权限:sudo mkdir -p /var/opt/mssql/backups & & sudo chown mssql:mssql /var/opt/mssql/backups & & sudo chmod 700 /var/opt/mssql/backups。执行备份前确认 SQL Server 服务为运行状态。

二 备份流程

  • 手动完整备份(示例):/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP DATABASE [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH INIT, COMPRESSION, STATS = 5”。其中 INIT 覆盖同名文件,COMPRESSION 减少体积,STATS 显示进度。
  • 差异与日志备份:差异示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP DATABASE [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_diff.bak’ WITH DIFFERENTIAL, INIT, STATS = 5”;日志示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP LOG [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_log.bak’ WITH INIT, STATS = 5”。
  • 自动化备份脚本与定时任务:将备份命令写入脚本(如 backup_mssql.sh),赋予可执行权限,并用 crontab -e 添加计划任务(如每日 **0 1 * * *** 执行)。示例脚本与定时写法可参考下述实践。

三 恢复流程

  • 仅完整备份恢复:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH RECOVERY”。
  • 完整+差异恢复:先恢复完整备份并指定 NORECOVERY,再恢复差异备份并指定 RECOVERY。示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH NORECOVERY”;随后 sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_diff.bak’ WITH RECOVERY”。
  • 完整+日志恢复(FULL 恢复模式):完整备份与差异备份步骤同上(均用 NORECOVERY),随后依次恢复各日志备份,最后一条日志使用 WITH RECOVERY 使数据库上线。示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE LOG [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_log1.bak’ WITH NORECOVERY”;…;sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE LOG [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_logN.bak’ WITH RECOVERY”。
  • 图形化恢复:也可使用 SSMS 连接到实例,在“任务”中选择“备份/恢复”,按向导执行。

四 验证与运维建议

  • 恢复后完整性校验:执行 DBCC CHECKDB,例如 sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “DBCC CHECKDB ([YourDatabaseName])”。
  • 备份策略与保留:结合业务选择 FULL/DIFFERENTIAL/LOG 的组合,定期清理过期备份(如 find /var/opt/mssql/backups/ -name “*.bak” -mtime +30 -exec rm { } ; )。
  • 安全与可用性:备份目录仅对 mssql 用户可写,避免泄露 SA 口令;恢复可能影响可用性,建议在低峰时段执行,并在测试环境验证流程。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu上SQL Server备份恢复流程是怎样的
本文地址: https://pptw.com/jishu/770282.html
Ubuntu如何优化系统进程 SQL Server在Ubuntu上故障排查方法

游客 回复需填写必要信息