在 Debian 上备份 Microsoft SQL Server(mssql-server),通常有两种主要方式:
BACKUP DATABASE 语句(推荐)这是最标准、最可靠的备份方式。
mssql-serversqlcmd 或 mssql-toolssa)sudo mkdir -p /var/opt/mssql/backup
sudo chown mssql:mssql /var/opt/mssql/backup
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;
ls -lh /var/opt/mssql/backup/
#!/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 / 对象存储) |
如果你愿意,我可以帮你:
只要告诉我你的 SQL Server 版本和运行方式 即可。