SQLserver 監控資料檔案
很久不用Sqlserver了
今天居然連查詢分析器還是打電話求助找到的。。。。
汗啊。。。。
google+自己瞎倒騰,寫了個sp監控dbfile,本來想再做的智慧點用bcp 直接匯出,不過出於安全原因,生產資料庫把master..xp_cmdshell給禁用了,所以還是手動上去查log表了
程式碼如下:
-----------------------
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- =============================================
-- StoredProcedure: master.dbo.sp_dbfilemonitor
-- =============================================
ALTER PROCEDURE dbo.sp_dbfilemonitor
as
declare @dbName varchar(50)
declare @command varchar(4000)
declare @current_date varchar(16)
declare @DriveFreeGB varchar(50)
create table #tb_DiskSpace
([Drive] varchar(2),
[MBfree] int);
insert #tb_DiskSpace exec master.dbo.xp_fixeddrives;
select @DriveFreeGB=convert (nvarchar(50),cast(convert (bigint,MBfree)/1024.0 as decimal(9,2)))+N' GB' from #tb_DiskSpace where drive='D';
drop table #tb_DiskSpace;
declare dbName_cursor CURSOR FOR select [name] from master.dbo.sysdatabases order by [name]
open dbName_cursor
FETCH NEXT FROM dbName_cursor into @dbName
while @@FETCH_STATUS = 0
begin --
set @command =
'insert into master.dbo.DB_monitor
select host_name(),
convert(char(16),getdate(),120),'''
+@dbname+
''',sf.name FileLogicalName,
sf.filename FilePath,
case sf.maxsize when -1 then N'''+'Unlimited'+'''
else convert (nvarchar(15),convert (bigint,maxsize)*8)+N'''+' KB'+''' end MaxSize_KB,
case sf.maxsize when -1 then N'''+'Unlimited'+'''
else convert (nvarchar(15),cast(convert (bigint,maxsize)*8/1024.0 as decimal(9,2)))+N'''+' MB'+''' end MaxSize_MB,
convert (nvarchar(15),cast(convert (bigint,size)*8/1024.0 as decimal(9,2)))+N'''+' MB'+''' UsedSize_MB,
case sf.maxsize when -1 then N'''+'Unlimited'+'''
else convert (nvarchar(15),cast(convert (bigint,maxsize-size)*8/1024.0 as decimal(9,2)))+N'''+' KB'+''' end FreeSize_MB,
case status & 0x100000 when 0x100000 then convert(nvarchar(3),growth)+N'''+'%'
+''' else convert(nvarchar(15),growth*8)+N'''+' KB'+'''end Growth,
case status & 0x40 when 0x40 then '''+'log only'
+''' else '''+'data only'+''' end Usage,+N'''+@DriveFreeGB+'''
from '+@dbName+'.dbo.sysfiles sf';
exec(@command);
--select @command;
--insert into tt select @command;
FETCH NEXT FROM dbName_cursor into @dbName;
end
CLOSE dbName_cursor;
deallocate dbName_cursor;
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--------------------------------------
create table dbo.DB_monitor(
HostName varchar(50) not null,
LogDate varchar(16) not null,
DatabaseName varchar(50) not null,
FileLogicalName varchar(50) not null,
FilePatch varchar(2000) not null,
MaxSizeKB varchar(150) not null,
MaxSizeMB varchar(100) not null,
UsedSizeMB varchar(100) not null,
FreeSizeMB varchar(100) not null,
Growth varchar(100) not null,
Usage varchar(10) not null,
DriverFreeSizeGB varchar(50)notnull
);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8337095/viewspace-1032190/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer移動資料檔案SQLServer
- linux監控資料夾內的檔案數量Linux
- 幾款SQLSERVER資料庫監控軟體介紹SQLServer資料庫
- Sqlserver資料庫使用 .bak 檔案還原資料庫SQLServer資料庫
- SQLServer如何監控阻塞會話SQLServer會話
- Zabbix監控 MS SqlServer2019SQLServer
- sqlserver收縮資料庫、收縮資料檔案的操作SQLServer資料庫
- SQLServer資料庫mdf檔案中了勒索病毒.360SQLServer資料庫
- SQLServer資料庫mdf檔案中了勒索病毒.malloxSQLServer資料庫
- 檔案監控效能問題【BUG】
- MYSQL和SQLServer效能監控指標MySqlServer指標
- MySQL監控-Datadog資料庫監控調研MySql資料庫
- Java實現檔案監控器FileMonitorJava
- linux 監控檔案內容變化Linux
- 前端資料監控到底在監控什麼?前端
- Flume實時監控 單個追加檔案
- 使用C#如何監控選定資料夾中檔案的變動情況?C#
- 系統監控&JVM監控指標資料查詢JVM指標
- 資料庫監控---PIGOSS BSM資料庫Go
- 監控資料庫活動資料庫
- 資料庫繁忙程度監控資料庫
- pythonpyinotify監控檔案與目錄的變化Python
- 智慧檔案館網路監控運維策略運維
- WPF 實現檔案/資料夾監聽工具
- 監控採集上報和儲存監控資料策略
- 關於SQLServer的tempdb的資料檔案暴增問題(1)SQLServer
- Python呼叫阿里雲資料庫監控資料Python阿里資料庫
- Linux 使用 inotify 監控檔案或目錄變化Linux
- GO實現資料夾監控Go
- 前端監控(效能/資料/異常)前端
- zabbix清除歷史監控資料
- Zabbix監控神通資料庫教程資料庫
- shell監控mysql 8.0資料庫MySql資料庫
- shell監控mysql 5.7資料庫MySql資料庫
- Sybase或SQLServer資料庫分批歸檔方案SQLServer資料庫
- SQLServer匯入大CSV檔案SQLServer
- 怎麼管控檔案外發?檔案傳輸如何保障資料資產安全?
- 大資料開發-資料表監控-實現大資料
- 資料庫DML監控一例資料庫