手动完整备份(示例):/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP DATABASE [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH INIT, COMPRESSION, STATS = 5”。其中 INIT 覆盖同名文件,COMPRESSION 减少体积,STATS 显示进度。
差异与日志备份:差异示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP DATABASE [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_diff.bak’ WITH DIFFERENTIAL, INIT, STATS = 5”;日志示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “BACKUP LOG [YourDatabaseName] TO DISK = N’/var/opt/mssql/backups/YourDatabaseName_log.bak’ WITH INIT, STATS = 5”。
仅完整备份恢复:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH RECOVERY”。
完整+差异恢复:先恢复完整备份并指定 NORECOVERY,再恢复差异备份并指定 RECOVERY。示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_full.bak’ WITH NORECOVERY”;随后 sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE DATABASE [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_diff.bak’ WITH RECOVERY”。
完整+日志恢复(FULL 恢复模式):完整备份与差异备份步骤同上(均用 NORECOVERY),随后依次恢复各日志备份,最后一条日志使用 WITH RECOVERY 使数据库上线。示例:sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE LOG [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_log1.bak’ WITH NORECOVERY”;…;sqlcmd -S localhost -U SA -P ‘YourPassword’ -Q “RESTORE LOG [YourDatabaseName] FROM DISK = N’/var/opt/mssql/backups/YourDatabaseName_logN.bak’ WITH RECOVERY”。