在 Debian 上使用 SQL Server 的备份与恢复
一 支持与前提
二 备份方法
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "BACKUP DATABASE [YourDB] TO DISK = '/var/backups/YourDB_$(date +%F_%H-%M-%S).bak' WITH FORMAT, INIT, COMPRESSION, STATS = 5;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "BACKUP DATABASE [YourDB] TO DISK = '/var/backups/YourDB_diff_$(date +%F_%H-%M-%S).bak' WITH DIFFERENTIAL, INIT, COMPRESSION, STATS = 5;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "BACKUP LOG [YourDB] TO DISK = '/var/backups/YourDB_log_$(date +%F_%H-%M-%S).trn' WITH INIT, COMPRESSION, STATS = 5;"
三 恢复方法
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB] FROM DISK = '/var/backups/YourDB_2025-09-01_10-00-00.bak' WITH REPLACE, RECOVERY;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB] FROM DISK = '/var/backups/YourDB_full.bak' WITH NORECOVERY, REPLACE;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB] FROM DISK = '/var/backups/YourDB_diff.bak' WITH RECOVERY;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB] FROM DISK = '/var/backups/YourDB_full.bak' WITH NORECOVERY, REPLACE;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE LOG [YourDB] FROM DISK = '/var/backups/YourDB_log.trn' WITH RECOVERY;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB_New] FROM DISK = '/var/backups/YourDB_full.bak' WITH REPLACE, RECOVERY,
MOVE 'YourDB_Data' TO '/var/opt/mssql/data/YourDB_New.mdf',
MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_New.ldf';"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE FILELISTONLY FROM DISK = '/var/backups/YourDB_full.bak';"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE DATABASE [YourDB] FROM DISK = '/var/backups/YourDB_full.bak' WITH NORECOVERY, REPLACE;"
sqlcmd -S <主机名或IP>,1433 -U <SA或域账户> -P '<密码>' \
-Q "RESTORE LOG [YourDB] FROM DISK = '/var/backups/YourDB_log.trn' WITH RECOVERY, STOPAT = '2025-09-01 10:05:00';"
四 恢复模型与策略建议
五 常见问题与排错
sqlcmd -S <IP>,1433 测试连通性;远程恢复时确保网络稳定与凭据正确。