日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS SQL Server云數據庫的磁盤空間被占滿

您可參考本文操作解決RDS SQL Server數據庫的磁盤空間被占滿的情況。

說明

阿里云提醒您:

  • 如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。

  • 如果您對實例(包括但不限于ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。

  • 如果您在阿里云平臺授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。

問題描述

使用云數據庫RDS SQL Server時,數據庫的磁盤空間被占滿。

問題原因

由于業務需要過高,導致云數據庫RDS SQL Server的磁盤空間被占滿。

解決方案

在云數據庫RDS SQL Server版中,刪除數據后的空間會被重新使用,因此如果磁盤空間使用率不高時,可以選擇不回收文件。但當磁盤空間被占滿,影響業務正常運行,則需要回收文件,一般先選擇回收日志文件,因為回收日志文件的速度快,在短時間內可清理出足夠的可用空間。以下是關于回收日志文件的操作步驟:

  1. 查看待回收日志文件的大小,具體步驟請參考以下內容:

    • 如果您使用的RDS SQL Server實例版本為2012或2016,則執行以下SQL語句,查看待回收日志文件的大小:

      SELECT DB_NAME(database_id) AS [Database Name],
             [Name] AS [Logical Name],
             [Physical_Name] AS [Physical Name],
             ((size * 8) / 1024) AS [Size(MB)]
      FROM sys.master_files
      ORDER BY [Size(MB)] DESC
    • 如果您使用的RDS SQL Server實例版本為2008 R2,則執行以下SQL語句,查看待回收日志文件的大小:

      說明

      需要對各個數據庫逐個執行。

      USE [$Database_Name] GO
      SELECT a.name AS [$Logic_Name], size/128,
                                   FILEPROPERTY(a.name, 'SpaceUsed')/128,
                                   size/128 - FILEPROPERTY(a.name, 'SpaceUsed')/128,
                                   FILEPROPERTY(a.name, 'SpaceUsed')*100.0/size
      FROM sys.database_files a
      cross join
        (select recovery_model_desc,
                log_reuse_wait,
                log_reuse_wait_desc,
                is_auto_shrink_on
         from sys.databases
         where name=DB_NAME())b
      WHERE type=1
      說明
      • [$Database_Name]為數據庫名。

      • [$Logic_Name]為邏輯文件名。

  2. 執行以下SQL語句,查看日志文件空間是否可回收。

    SELECT [name],
           [log_reuse_wait_desc]
    FROM master.sys.databases
    WHERE [name]='[$Database_Name]'
  3. 執行以下SQL語句,回收日志文件空間。

    DBCC SHRINKFILE([$Logic_Name])
    說明
    • 建議您在數據庫低峰期執行該命令,以避免對業務造成影響。

    • 常見的日志等待類型和解決方法請參見更多信息

  4. 執行以下SQL語句,查看數據文件大小。

    USE [$Database_Name] GO
    SELECT a.name AS [$Logic_Name],
           size/128,
                FILEPROPERTY(a.name, 'SpaceUsed')/128,
                size/128 - FILEPROPERTY(a.name, 'SpaceUsed')/128,
                     FILEPROPERTY(a.name, 'SpaceUsed')*100.0/size
    FROM sys.database_files a
    cross join
      (select recovery_model_desc,
              log_reuse_wait,
              log_reuse_wait_desc,
              is_auto_shrink_on
       from sys.databases
       where name=DB_NAME())b
    WHERE type=0
  5. 執行以下SQL語句,收縮數據文件。

    說明

    一般情況下,通常每5 GB進行循環收縮,如果影響業務,則中斷操作,不會進行回滾。

    DECLARE @usedspace INT, @totalspace INT
    SELECT @usedspace = xxx,
           @totalspace = yyy
    WHILE @totalspace > @usedspace
    BEGIN
        SET @totalspace = @totalspace - 5 * 1024
        DBCC SHRINKFILE([$Logic_Name], @totalspace)
    END
    說明

    已用空間和空間大小通過上一步獲取。

  6. 執行以下SQL語句,查看收縮進度。

    說明

    該收縮進度為預估值。

    SELECT DB_NAME(database_id) AS dbname,
           session_id,
           request_id,
           start_time,
           percent_complete,
           dateadd(mi, estimated_completion_time/60000, getdate()) AS ETC
    FROM sys.dm_exec_requests
    WHERE percent_complete <> 0

更多信息

常見的日志等待類型和解決方法如下所示:

  1. LOG_BACKUP

    該情況表示日志未備份,因此不能回收。

    登錄RDS控制臺,進入目標實例信息頁面,單擊左側導航欄備份恢復,然后單擊備份設置,編輯好備份恢復各參數后,單擊頁面右上角的備份并收縮事務日志。備份設置個參數詳情,請參見備份SQL Server數據

  2. ACTIVE_TRANSACTION

    該情況屬于有活躍事務阻塞了日志回收。請參考以下操作步驟:

    1. 執行以下SQL語句,獲取長時間的活躍事務SPID。

      DBCC OPENTRAN
    2. 執行以下SQL語句,其中[$SPID]為上一步獲取的活躍事務SPID,查看請求SQL語句,考慮是否可以使用kill命令終止阻塞源。待終止后,查看log_reuse_wait,進行收縮操作。

      DBCC INPUTBUFFER([$SPID])

相關文檔

RDS SQL Server如何收縮事務日志

適用于

云數據庫RDS SQL Server版