Ubuntu上SQL Server的备份恢复流程是怎样的

626
2025/4/13 9:33:06
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu上,SQL Server的备份恢复流程可以通过SQL Server Management Objects (SMO) 或SQL Server代理来实现。以下是详细的备份和恢复步骤:

备份流程

  1. 创建备份目录并设置权限
sudo mkdir -p /var/opt/mssql/backupssudo chown mssql:mssql /var/opt/mssql/backupssudo chmod 700 /var/opt/mssql/backups
  1. 编写备份脚本
vi bk.sql

内容如下:

DECLARE @DBNAME NVARCHAR(100)
DECLARE @BackupPath NVARCHAR(100) = '/var/opt/mssql/backups/'
DECLARE @SQL NVARCHAR(MAX)
BEGIN TRY
    -- 测试路径写入权限
    EXEC xp_create_subdir @BackupPath;
    DECLARE CurDBName CURSOR FOR
    SELECT name FROM sys.databases
    WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')
    OPEN CurDBName
    FETCH NEXT FROM CurDBName INTO @DBNAME
    WHILE @@FETCH_STATUS = 0
    BEGIN
        DECLARE @FileName NVARCHAR(500) = @BackupPath + @DBNAME + '_test.bak' -- 使用最小化参数测试
        SET @SQL = N'BACKUP DATABASE [' + @DBNAME + '] TO DISK = N''' + @FileName + ''' WITH INIT, STATS = 5'
        PRINT 'Executing: ' + @SQL
        EXEC(@SQL)
        FETCH NEXT FROM CurDBName INTO @DBNAME
    END
    CLOSE CurDBName
    DEALLOCATE CurDBName
END TRY
BEGIN CATCH
    PRINT 'Error: ' + ERROR_MESSAGE()
END CATCH
  1. 执行备份
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'zxcvbnm@123' -i bk.sql
  1. 删除超过30天的备份
crontab -l
0 2 * * * find /var/opt/mssql/backups/ -name "*.bak" -mtime +30 -exec rm {} \;

恢复流程

  1. 恢复完整数据库备份
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'zxcvbnm@123' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/[YourDatabaseName]_full.bak'"
  1. 恢复差异备份(如果有):
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'zxcvbnm@123' -Q "RESTORE DATABASE [YourDatabaseName] WITH DIFFERENTIAL, RECOVERY"
  1. 恢复事务日志备份(如果有):
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'zxcvbnm@123' -Q "RESTORE LOG [YourDatabaseName] WITH RECOVERY"

注意事项

  • 确保备份路径有足够的空间。
  • 定期检查备份文件的完整性。
  • 根据需要选择备份类型(完整、差异、事务日志)。
  • 在执行恢复操作前,请确保数据库处于单用户模式或停机状态,以避免数据不一致。

以上步骤展示了在Ubuntu上使用SQL Server Management Tools进行数据库备份和恢复的基本流程。请根据实际环境和需求调整备份频率、保留策略和恢复选项。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Armbian Ubuntu的系统备份与恢复策略