初期サイズが1000 GBに設定されているデータベースがあります。最大スペースが使用され、データベースサイズが1000 GBに近づいたとき(たとえば、995または994 GBに達したとき)にアラートを設定できる方法はありますか?事前にディスクスペース。突然のダウンタイムなし。
SQL Server 2012とAmazon RDSをマネージドサービスとして使用しています。
前もって感謝します。
毎日実行される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
たぶん、スペースがどのように変更されたかについての情報を得るために、いくつかのテーブルを作成してそこに毎日値を書き込むのは理にかなっています。