CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
这篇CFSDN的博客文章监控 log文件大小的存储过程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、监控log文件大小超过10g的server 和db 。
Sao chép mã mã như sau
tạo thủ tục db_sendmail_mssqllogsize là khai báo @sql varchar(max),@servername varchar(50),@px int; KHAI BÁO @xml NVARCHAR(MAX) KHAI BÁO @body NVARCHAR(MAX) khai báo @a varchar(200) khai báo @c datetime chọn @c=getdate(); chọn hostname,px=ROW_NUMBER()over(order by (select 1)) thành #temp từ DB_ALLHostInfo là x1 inner join sys.servers là x2 trên x1.hostname=x2.name trong đó isactive=1; chọn @px=px,@servername=hostname từ #temp trong đó px=1; trong khi @@ROWCOUNT>0 bắt đầu thiết lập @sql= 'chèn vào db_alldb_logsize chọn *, cast(convert(char(8),GETDATE(),112) as datetime) as gdate ,'''+@servername+''' từ openquery('+QUOTENAME(@servername)+',''chọn DB_NAME(database_id) as dbname,name as logname,round(cast(size as float)*8/1024,3) as [logsize(mb)],state_desc,physic cal_name, is_percent_growth,growth,max_size từ master.sys.master_files trong đó type_desc=''''log'''' và DB_NAME(database_id) not trong(''''master'''',''''tempdb'''',''''msdb'''',''''reportserver'''',''''reportservertempdb'''',''''distribution'''',''''model'''') và DATABASEPROPERTY(DB_NAME(database_id),''''IsReadOnly'''')<>1'') là b;' execute(@sql) chọn 1 chọn top(1) @px=px,@servername=hostname từ #temp nơi px>@px kết thúc; đặt @xml=cast((select J.servername as 'td','', isnull(J.dbname,'\') as 'td','', J.logname as 'td','' ,cast([logsize(mb)] as varchar(20))as 'td','' ,state_desc as 'td','' ,physical_name as 'td','' ,trường hợp khi max_size =0 rồi '不允许增长' khi max_size=-1 thì '文件将一直增长到磁盘变满为止' khi max_size=268435456 thì '日志文件将增长到最大大小2 TB' kết thúc là 'td','' ,trường hợp khi is_percent_growth = 1 thì 'Tăng trưởng phần trăm'+cast(growth AS varchar(3))+'%' khi is_percent_growth = 0 thì 'Tăng trưởng phần trăm'+cast(growth*8/1024 AS varchar(50))+'(mb)增长' kết thúc là 'td','' ,convert(char(8),gdate,112) là 'td','' từ db_alldb_logsize là j trong đó gdate=cast(CONVERT(char(8),getdate(),112) là datetime) và [logsize(mb)]>=10240 FOR XML PATH('tr'), ELEMENTS) AS NVARCHAR(MAX)) ; set @a='Mssqllog 运行结果_'+convert (varchar(50),convert(varchar(5),YEAR(getdate()-1))+'年'+convert(varchar(2),month(getdate()-1))+'月'+convert(varchar(2),day(getdate()-1)))+'日' --print @a SET @body ='
'+convert(varchar(5),YEAR(getdate()) )+'年'+convert(varchar(2),month(getdate()))+'月'+convert(varchar(2),day(getdate()))+'Kết quả hoạt động Mssqllog
IP máy chủ | Cơ sở dữ liệu | Tên tệp nhật ký | Kích thước tệp nhật ký (mb) | Trạng thái | Đường dẫn vật lý | Loại tăng trưởng | Trạng thái tăng trưởng | Ngày | ' nếu @xml không rỗng SET @body = @body + @xml +'
---|
Xem sitemap của VNExpress
' EXEC msdb.dbo.sp_send_dbmail @recipients =N'xuwj@5173.com', @body = @body, @body_format ='HTML', @subject =@a, @profile_name ='profile1' thực thi db_sendmail_mssqllogsize.
2 thư.

。
3 với các báo cáo đơn giản.

Cuối cùng, bài viết về quy trình lưu trữ để theo dõi kích thước tệp nhật ký kết thúc tại đây. Nếu bạn muốn biết thêm về quy trình lưu trữ để theo dõi kích thước tệp nhật ký, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. trong tương lai blog của tôi! .
Tôi là một lập trình viên xuất sắc, rất giỏi!