在Ubuntu上備份和恢復SQL Server數據庫可以通過以下步驟完成:
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "BACKUP DATABASE [YourDatabaseName] TO DISK='/var/opt/mssql/data/[YourDatabaseName]_full.bak' WITH INIT, SKIP, NAME='Full Backup of [YourDatabaseName]' "
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "BACKUP DATABASE [YourDatabaseName] TO DISK='/var/opt/mssql/data/[YourDatabaseName]_diff.bak' WITH DIFFERENTIAL, INIT, SKIP, NAME='Differential Backup of [YourDatabaseName]' "
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "BACKUP LOG [YourDatabaseName] TO DISK='/var/opt/mssql/data/[YourDatabaseName]_log.bak' WITH INIT, SKIP "
crontab
定時執行備份任務。sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/data/[YourDatabaseName]_full.bak' WITH RECOVERY"
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/data/[YourDatabaseName]_diff.bak' WITH NORECOVERY, MOVE 'YourDatabaseName_Data' TO '/var/opt/mssql/data/[YourDatabaseName].mdf', MOVE 'YourDatabaseName_Log' TO '/var/opt/mssql/data/[YourDatabaseName]_log.ldf'"
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE LOG [YourDatabaseName] FROM DISK='/var/opt/mssql/data/[YourDatabaseName]_log.bak'"
sudo /opt/mssql-server/bin/sqlcmd -S your_server_name -E -Q "BACKUP DATABASE your_database_name TO DISK='/path/to/backup/your_database_name.bak'"
sudo /opt/mssql-server/bin/sqlcmd -S your_server_name -E -Q "RESTORE DATABASE your_database_name FROM DISK='/path/to/backup/your_database_name.bak'"
以上步驟提供了一個基本的框架,但在實際操作中可能需要根據具體情況進行調整。建議在進行備份恢復測試之前,先在測試環境中驗證備份恢復流程的可行性。