Như Max đã đề cập, cảnh báo có thể được kích hoạt ngay trước khi nhật ký tăng / cần phát triển. SCOM thu thập không gian trống nhật ký giao dịch% mặc dù tôi không chắc cảnh báo sẽ phát ở ngưỡng nào.
đây là một ví dụ nhanh để cho bạn thấy tempdb trạng thái nào có thể có khi bạn nhận được các cảnh báo này nhưng không phát triển tệp nhật ký.
đầu tiên tạo cơ sở dữ liệu, đặt recovery thành đầy đủ và sao lưu nó
create database tlogspace
on(name=tlogspace_dat,
filename='c:\temp\tlogspace.mdf',
size=4MB)
log on (name=tlogspace_log,
filename='c:\temp\tlogspace.ldf',
size=1MB);
go
alter database tlogspace set recovery full;
go
backup database tlogspace to disk='nul';
go
bây giờ chuyển sang cơ sở dữ liệu đó, tạo một bảng và chạy DBCC sqlperf (logspace) để kiểm tra kích thước và không gian trống trong tệp nhật ký của bạn.
use tlogspace
go
create table data(id int identity(1,1), col varchar(8000))
dbcc sqlperf(logspace)
Trên hệ thống của tôi, tôi có kích thước logfile là 0,9921875 và không gian nhật ký được sử dụng (%) là 48,4245. Bây giờ chèn một số dữ liệu vào bảng và chạy DBCC sqlperf (logspace) một lần nữa. Trên hệ thống của tôi, 45 hàng được chèn cho kết quả mong muốn (số lượng hàng được chèn có thể cần được điều chỉnh).
insert into data(col)
select replicate('a',8000)
go 45 --may need to adjust number
dbcc sqlperf(logspace)
Lần này, đầu ra sqlperf của DBCC sẽ hiển thị rằng kích thước nhật ký là như nhau nhưng không gian nhật ký được sử dụng chỉ dưới 100%. Trong trường hợp này, SCOM có thể sẽ đưa ra một cảnh báo rằng không gian đăng nhập thấp. Không có thêm hoạt động nào xảy ra để làm cho tệp nhật ký phát triển và (trong ví dụ này) không có bản sao lưu tlog để giải phóng không gian sử dụng. tempdb đang trong quá trình khôi phục đơn giản, vì vậy giao dịch hoạt động của bạn có thể đã sử dụng hầu hết dung lượng có sẵn và không giải phóng nó nhưng không có đủ hoạt động trong tempdb để kích hoạt tăng trưởng tệp nhật ký, do đó gây ra cảnh báo cháy.
dọn dẹp cơ sở dữ liệu khi hoàn thành
use master
drop database tlogspace