溫馨提示×

Ubuntu上SQL Server的備份恢復流程是怎樣的

小樊
61
2025-04-13 07:18:31
欄目: 云計算

在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進行數據庫備份和恢復的基本流程。請根據實際環境和需求調整備份頻率、保留策略和恢復選項。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女