在Ubuntu上备份SQL Server数据库可以通过多种方法实现,以下是详细的步骤:
安装和配置SQL Server- 安装SQL Server客户端工具:
sudo apt-get updatesudo apt-get install msodbcsql17
- 配置SQL Server:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled truesudo systemctl restart mssql-server
更改默认数据或日志目录位置(可选)。使用sqlcmd进行备份- 完全备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATAbase [XXDatabase] TO DISKN'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH INIT, SKIP, NAME'XXDatabase-full'"
- 差异备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATAbase [XXDatabase] TO DISKN'/var/opt/mssql/data/backup/GDQXCENT_diff.bak' WITH DIFFERENTIAL,INIT,SKIP, NAME'XXDatabase-diff'"
- 日志备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP LOG [XXDatabase] TO DISKN'/var/opt/mssql/data/backup/GDQXCENT_log.bak' WITH INIT, SKIP"
- 压缩备份文件(可选):
tar -czvf YourDatabaseName-backup-( date %Y%m%d%H%M%S).tar.gz /path/to/your/backup/file.bak
- 自动备份和定期执行:
使用 crontab
设置定时任务自动执行备份脚本。例如,每天凌晨1点自动创建完全备份:
0 1 * * * sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATAbase [XXDatabase] TO DISKN'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH INIT, SKIP, NAME'XXDatabase-full'"
使用第三方备份工具可以考虑使用第三方工具,如Microsoft SQL Server Management Objects (SMO) 或 Redgate SQL Backup Pro等,这些工具提供了更高级的备份和恢复功能。
请注意,上述方法适用于在Ubuntu系统上备份SQL Server数据库。如果使用的是Windows系统,备份方法会有所不同。