Sql-Server

如何使用帶有 Amazon RDS 作為託管服務的 SQL Server 2012 為數據庫設置空間使用警報?

  • June 19, 2018

我有一個初始大小設置為 1000 GB 的數據庫。有沒有一種方法可以在使用最大空間且數據庫大小接近 1000 GB 時設置警報,例如當它達到 995 或 994 GB 時,以便我們了解它並採取措施增加手頭的磁碟空間。沒有突然停機。

我們使用帶有 Amazon RDS 的 SQL Server 2012 作為託管服務。

提前致謝。

您可以創建一個每天執行的 SQL Server 代理作業,並使用如下查詢檢查可用空間:

USE [YourDatabaseName]

/* Size in MB */
DECLARE @Info TABLE (
   [Size]          decimal(12,2),
   [SpaceUsed]     decimal(12,2),
   [SpaceFree]     decimal(12,2)
)

insert @Info ([Size], [SpaceUsed], [SpaceFree])
SELECT
   [Size] = ISNULL(CONVERT(decimal(12,2),round(f.size/128.000,2)),0)
   ,[SpaceUsed] = ISNULL(CONVERT(decimal(12,2),round(fileproperty(f.name,'SpaceUsed')/128.000,2)),0)
   ,[SpaceFree] = ISNULL(CONVERT(decimal(12,2),round((f.size-fileproperty(f.name,'SpaceUsed'))/128.000,2)),0)
   --,GETDATE() as DT
FROM sys.database_files f
   CROSS APPLY sys.dm_os_volume_stats(DB_ID(), f.file_id) vs
WHERE f.name = 'YourFileLogicalName'

/* Free space less than  5GB */
If (SELECT TOP 1 [SpaceFree] FROM @Info) < 5120 BEGIN
   /*
       Anything is suitable for you:
       - send email
       - raiserror
       - write log
       .......

   */
   EXECUTE dbo.KickDBAToAwakeHim
END

也許,每天創建一些表並在那裡寫入值以獲取有關空間如何更改的資訊是有意義的。

引用自:https://dba.stackexchange.com/questions/209892