在Ubuntu上备份SQL Server数据库可以通过多种方法实现,以下是详细的步骤:
sudo apt-get update
sudo apt-get install msodbcsql17
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATABASE [XXDatabase] TO DISK N'/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 DISK N'/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 DISK N'/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 DISK N'/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系统,备份方法会有所不同。