温馨提示×

如何备份Debian的SQLServer

小樊
46
2026-08-25 09:29:41
栏目: 云计算

在 Debian 上备份 Microsoft SQL Server(mssql-server),通常有两种主要方式:


一、使用 SQL Server 自带的 BACKUP DATABASE 语句(推荐)

这是最标准、最可靠的备份方式。

1️⃣ 前提条件

  • 已安装 mssql-server
  • 已安装 sqlcmdmssql-tools
  • 有数据库管理员权限(如 sa

2️⃣ 创建备份目录

sudo mkdir -p /var/opt/mssql/backup
sudo chown mssql:mssql /var/opt/mssql/backup

3️⃣ 使用 sqlcmd 执行备份

备份单个数据库

sqlcmd -S localhost -U sa -P 'YourPassword' \
  -Q "BACKUP DATABASE [YourDBName] TO DISK = '/var/opt/mssql/backup/YourDBName.bak'"

备份并压缩

BACKUP DATABASE [YourDBName]
TO DISK = '/var/opt/mssql/backup/YourDBName.bak'
WITH COMPRESSION;

4️⃣ 查看备份文件

ls -lh /var/opt/mssql/backup/

二、使用 T-SQL 自动备份(脚本化)

示例:每天备份

#!/bin/bash
DATE=$(date +%Y%m%d)
sqlcmd -S localhost -U sa -P 'YourPassword' \
  -Q "BACKUP DATABASE [YourDBName] TO DISK = '/var/opt/mssql/backup/YourDBName_$DATE.bak'"

加入 cron

crontab -e
0 2 * * * /path/to/backup_script.sh

三、使用 mssql-scripter(逻辑备份,非 .bak)

适合迁移或版本控制(不推荐用于大数据量)

mssql-scripter -S localhost -U sa -P 'YourPassword' -d YourDBName > backup.sql

四、系统级备份(不推荐单独使用)

⚠️ 不建议直接复制数据库文件

/var/opt/mssql/data/

除非:

  • 数据库已停止
  • 或已做完整冷备份

五、还原数据库示例

sqlcmd -S localhost -U sa -P 'YourPassword' \
  -Q "RESTORE DATABASE [YourDBName] FROM DISK = '/var/opt/mssql/backup/YourDBName.bak'"

六、常见注意事项

✅ 权限问题

chown mssql:mssql /var/opt/mssql/backup

✅ 查看数据库名

SELECT name FROM sys.databases;

✅ 备份系统数据库(master / model / msdb)

BACKUP DATABASE [master] TO DISK = '/var/opt/mssql/backup/master.bak';

七、推荐备份策略

类型 建议
全量备份 每天
差异备份 每小时
日志备份 高频事务系统
备份存储 本地 + 远程(rsync / 对象存储)

如果你愿意,我可以帮你:

  • ✅ 写一个 完整备份脚本
  • ✅ 配置 自动备份 + 清理旧备份
  • ✅ 针对 Docker / systemd / 集群 场景优化

只要告诉我你的 SQL Server 版本和运行方式 即可。

0