- Vừa có một database vừa được tạo ra bởi 1 user có quyền sysadmin.
- Vừa có một user vừa thay đổi thuộc tính cấu hình của 1 database nào đó.
- Vừa có một table vừa bị thay đổi, ví dụ như thêm cột mới, xóa cột, thay đổi kiểu dữ liệu của một column nào đó.
- Những câu truy vấn đang gây ra deadlock, blocking...
Kèm theo đó là những thông tin khác như user, thời gian...
Để tạo được những cảnh báo như trên, qua tìm hiểu tôi thấy ta có thể cấu hình đơn giản và dễ dàng dùng công nghệ WMI như các bài viết tham khảo bên dưới.
https://www.simple-talk.com/sql/database-administration/sql-server-alerts-soup-to-nuts/
http://technet.microsoft.com/en-us/library/ms186385.aspx
http://www.sqlservergeeks.com/blogs/Abhay_c/sql-server-bi/474/sql-server-real-time-monitoring-using-wmi-classes-part-2
Đây là hướng dẫn tạo alert khi có blocking xảy ra trong một khoảng thời gian nào đó
http://www.practicalsqldba.com/2012/07/sql-server-instant-blocking-alert-using.html
http://www.sqlservercentral.com/blogs/practicalsqldba/2012/07/16/sql-server-instant-deadlock-alert-using-wmi-in-your-mailbox/
http://technet.microsoft.com/en-us/library/ms186385.aspx
http://technet.microsoft.com/en-us/library/ms366332.aspx
http://technet.microsoft.com/en-us/library/ms186449%28v=sql.105%29.aspx (the importance link)
http://www.mssqltips.com/sqlservertip/3095/monitor-sql-server-databases-changes-using-wmi-alerts/?utm_source=dailynewsletter&utm_medium=email&utm_content=text&utm_campaign=20131217
Một ví dụ về tạo Alert khi dung lượng file của Tempdb tăng lên quá cao
Các câu truy vấn dùng WQL tạo Alert bằng WMI
-- for "CREATE DATABASE" select * from CREATE_DATABASE -- for "ALTER DATABASE" select * from ALTER_DATABASE -- for "DROP DATABASE" select * from DROP_DATABASE -- SELECT * FROM ALTER_TABLE WHERE DatabaseName = "AdventureWorks2012" AND SchemaName = "Person" AND ObjectName = "Person" AND ObjectType = "TABLE"; SELECT * FROM ALTER_TABLE WHERE DatabaseName = 'AdventureWorks' AND SchemaName = 'Sales' AND ObjectType='Table' AND ObjectName = 'SalesOrderDetail' -- SELECT * FROM DDL_DATABASE_LEVEL_EVENTS WHERE DatabaseName = 'AdventureWorks'
Tìm hiểu thêm ở đây: http://www.sqlservergeeks.com/blogs/Abhay_c/sql-server-bi/474/sql-server-real-time-monitoring-using-wmi-classes-part-2
0 comments:
Post a Comment