在Ubuntu上备份SQL Server数据库可以通过多种方法实现,以下是详细的步骤:
使用 sqlcmd
进行手动备份
-
安装必要的工具: 确保你已经安装了
sqlcmd
和unixodbc-dev
。如果没有安装,可以使用以下命令进行安装:sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
-
创建备份脚本: 创建一个备份脚本文件,例如
backup_mssql.sh
:#!/bin/bash # 设置备份目录 BACKUP_DIR="/var/opt/mssql/data/backup" # 数据库信息 DB_SERVER="localhost" DB_USER="sa" DB_PASSWORD="your_password" DB_NAME="YourDatabaseName" # 执行完全备份 /opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP DATABASE $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_full.bak' WITH INIT, SKIP, NAME 'Full Backup'" # 执行差异备份 /opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP DATABASE $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_diff.bak' WITH DIFFERENTIAL, INIT, SKIP, NAME 'Differential Backup'" # 执行日志备份 /opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP LOG $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_log.bak' WITH INIT, SKIP"
-
赋予脚本执行权限:
chmod +x /path/to/backup_mssql.sh
-
运行备份脚本:
./backup_mssql.sh
使用 crontab
进行自动备份
-
编辑
crontab
: 使用crontab -e
编辑当前用户的crontab
文件:crontab -e
-
添加定时任务: 添加以下行以每天凌晨执行备份脚本:
0 0 * * * /path/to/backup_mssql.sh
异地备份
可以使用 rclone
将备份文件同步到远程服务器或数据中心:
-
安装
rclone
:sudo apt-get install rclone
-
配置
rclone
: 根据你的需求配置rclone
,例如将备份文件同步到 MinIO 服务器:rclone sync /var/opt/mssql/data/backup minio:database-180
注意事项
- 确保SQL Server服务正在运行。
- 备份目录需要有写权限。
- 定期检查备份文件的完整性。
- 使用强密码并妥善保管。
希望这些步骤能帮助你在Ubuntu上成功备份SQL Server数据库。如果有任何问题,请参考相关的文档或寻求社区帮助。