SQL Management Pack - Page Life Expectancy Alert
We have SCOM 2012 SP1 and SQL Management Pack 6.4.1.0 in our environment. It seems that the majority of our SQL servers are reporting the Engine Page Life Expectancy error. However when I look at the performance data, the alerts are triggering
at random times even when according to the performance data, it is not even close to the threshold. Even on the alert context, the value well above the threshold in most cases.
When I look at the monitor in the Authoring pane, the configuration states the threshold and the interval but it does not state what counter it is looking at. Not sure if that is normal.
I was wondering if anyone else is experiencing this issue. I am about to disable the monitor since I am not getting consistant alerts
Thanks!
Please also change the critical alert to a warning through creation of an override for all of these objects.
SQL SERVER – What is Page Life Expectancy (PLE) Counter
http://blog.sqlauthority.com/2010/12/13/sql-server-what-is-page-life-expectancy-ple-counter/
Niki Han
TechNet Community Support
Similar Messages
-
After updating to the new SQL management pack in my lab I start to see Critical alerts for some of my SQL instances, but not all. When looking at the Alert Context the Value is 0. If I open SQL Management Studio and connect to the Instance and run a query
to get the Page Life Expectancy, I get a high value like 494012, the query I use is:
SELECT [object_name],
[counter_name],
[cntr_value]
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'
Could this be an error in this Management Pack, perhaps I should disable this monitor? I also get the same for the monitor Buffer Cache Hit Ratio, also with a Value of 0 in Alert Context.Hi Aleksandr,
That is what I do with the SQL query above.
Using perfom gives the exact same result. When doing this on one of my servers I see the value is constantly increasing with 1 for each second, currently displaying a value of 335261.
I think this has to do with improper permissions. I have assigned a dedicated domain user with sysadmin on SQL servers to all the SQL runas profiles. This I did before importing the new SQL Management Pack, and everything was fine. However, after installing
this new Management Pack I started to see these alerts, and that the Alert Context had a value of 0. I also noticed that my Default Action account needed access to the SQL database. I did not verify it when I looked at it but I believe that the Default Action
account did not have any rights to the instances where the alerts came from. So, perhaps some of the probing is not properly configured to use the right RunAs accounts.
Anyways, I will look in to this a bit further when I have some more time... Posting back the results when I have. -
SQL Management Pack Agent Job Unit Monitors
I am trying to utilize the SQL Agent Job Monitors included with the SQL Management Pack (page 81 of the MP guide), particularly the "Last Run Status" monitor. I have set an Override for "Generate Alerts" to True. The goal
is to have an email notification sent when any SQL Agent job fails on a specific group of computers. However, I am not familiar enough with what "Last Run Status" is actually monitoring and if it will do what I am looking for. Does this monitor
check the job status of any agent job on the target group? I tried setting up a job for it to fail, which it does fail, but it does not generate an alert. Any suggestions appreciated. Thanks.1) For monitoring SQL server job status, you can refer to the following blog
http://blogs.technet.com/b/kevinholman/archive/2011/08/05/how-to-monitor-sql-agent-jobs-using-the-sql-management-pack-and-opsmgr.aspx
2) For troubleshoot: Make sure that your SQL agent job is discovered, you may find the discovered job under Microsoft SQL Server --> SQL Agent --> SQL agent job status. By default, the discovery is disabled and you should enabled the discovery by using
override.
Roger
Thanks. So I enabled Agent Job discovery for the systems that I want. It discovered those objects. Now, I still cannot get the alerting to work. I can see the Health State of the job change to a Warning, indicating "Last Run Status" equals Failed, but
it is not generating an alert. I set Overrides (Generates Alert = True) on a Group that included one of the job objects, nothing. I also set the same Override directly on the job object and I still do not receive an alert. Any ideas? I
noticed someone in the comments mentioned in the blog you linked, a similar issue, except with the Job Duration monitor. However, he was able to get alerts to generate by setting the Override directly on the Job object and noted that it is not a
feasible solution due to the number of jobs he wants to monitor. Again, I tried the same, but still could not get alerts. That solution would not be acceptable for me either because of the number of jobs that I would have to set individual Overrides for. -
Page Life Expectancy drops to zero even if buffer has pages that are several minutes old
Scenario: SQL 2014 with 10 GB allocated memory. There are three tables in a database with 3 GB data in each. PLE is pretty high(1000s).
I query first table, it gets loaded into memory and takes up 3 GB, verified by sys.dm_os_buffer_descriptors. PLE keeps rising at the rate of 1 per second. I query second table, it gets loaded into memory and takes up another 3 GB. PLE still keeps going
up at the rate of 1 per second. I query the third table, it gets loaded into memory and takes up 3 GB. SQL flushes out some pages of first table from memory and the first table is now occupying only 500 MB of memory. So, SQL did not flush out all pages
of first table. The difference between time when the first table was loaded and when the third table was loaded was more than 5 minutes. However, when the third table was loaded, PLE went down to close to 0 even though there
are pages from first table in memory that are over 5 minutes old. Does someone know why PLE would go down to close to 0? I thought it would go down to somewhere around 300(5 minutes).
Note: This was done on a test server with no one else using the server and no other app on the server. So, no interference.Hi,
There was bug in SQL Server 2012 which caused this behavior. Please read this
support article reason given by MS was
The resource monitor and lazy writer activities in SQL Server are designed to maintain cache sizes and free list capacities to avoid memory shortage situations. Under rare circumstances, the memory manager in the SQL Server database engine may enable
the SHRINK state for the Buffer Pool for longer than required. When approaching the memory target, a sudden burst of memory allocations may cause memory allocation failures and internal retries. During the retry activities, the memory manager can enable
SHRINK states on the various caches in order to support the new memory requests. Under these retries there is a small window in which the SHRINK state may remain enabled longer than necessary to restore the free list capacities.
This causes a temporary release of more memory than is required to return to a steady state. For example, the buffer pool can release more data pages than required, inflating the free list depths and reducing the page life expectancy (PLE) for the buffer
pool. In this situation, you'll notice a quick decline in the SQLServer:Buffer Manager\Page life expectancy
performance counter values and a quick increase in SQLServer:Memory Manager\Free Memory (KB) performance counter values.
I am not sure you are hitting this behavior in SQL Server 2014.
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
SQL Management Pack - login to databases required?
I've recently imported the SQL Management Packs (version 6.5.4.0) and discovery has been working fine - Databases are being discovered and displayed in the Databases view in the SCOM console. On one of the 2012R2 SQL servers, I noticed these errors in the
OpsMgr Event Log (see below)
The information that the MP needs for the Database properties (DB Free space, source log shipping, etc.) seems like it could be achieved without having to login to each individual database. Is there a reason why the SQL MP requires this type of intrusive
mechanism for querying information? Is there a way to disable these login scripts but still obtain the information about databases?You can find the content of the monitoring script here
http://systemcentercore.com/?GetElement=Microsoft.SQLServer.2012.DBSizeRawPerfProvider&Type=DataSourceModuleType&ManagementPack=Microsoft.SQLServer.2012.Monitoring&Version=6.5.1.0
I don't have toroughly reviewed it, but if you do you'll probably find
how it works and why it needs to log into every database.
Now, if you do believe that you can obtain the same informations using WMI and without logging into the DBs, you'll have to disable every monitor that tries to connect into them and write your own ones... -
SQL Permissions for the SQL Managment Pack
Hi,
Were implementing version 6.5.1.0 of the SQL 2005 2008 2012 Managment pack. Its going ok, but there is a line...
Add “SQLDefaultAction” to the dbmodule_users database role.
that makes no sense. I can't see dbmodule_users as a database role. Am i being thick?
Chris
Chris GibsonHi Chris,
Did you follow the SQL management pack guide downloaded here:
http://www.microsoft.com/en-us/download/details.aspx?id=10631
To configure runas account for SQL monitor, you may check the article below:
http://blogs.technet.com/b/kevinholman/archive/2010/09/08/configuring-run-as-accounts-and-profiles-in-r2-a-sql-management-pack-example.aspx
Regards,
Yan Li
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected] -
Hello,
I do not see a specific Management Pack for SQL Cluster... It seems to be the SQL Management Pack 6.1.400.0 and the Operating System Cluster Management Pack...6.0.6720.0 for Windows Server 2008 Cluster Management Library ...
Am I right?
Thanks,
Dom
System Center Operations Manager 2007 / System Center Configuration Manager 2007 R2 / Forefront Client Security / Forefront Identity ManagerI implemented the low-privilege setup from the SQL MP guide because on a few standalone SQL instances and one SQL 2012 cluster, not all scripts were running. The SQL cluster is a two node cluster with 2 SQL instances in and active/active config (One
instance is active on each node in the cluster). On the standalone SQL instances, the low-privilege setup is working great. On the SQL cluster it is not. Reading the latest SQL MP guide, it appears that SQL 2012 cluster are supported for
monitoring. I've made the additional configuration changes that the MP guide says is required for cluster monitoring. I am getting PowerShell script execution error messages in the OpsMgr console stating a lack of permissions. When I look
at the SQL error logs, I see that something is trying to log into the databases as NT AUTHORITY\SYSTEM and can't because access is denied. That login is not mapped to any databases - obviously. Why would these workflows be trying to execute as
NT AUTHORITY\SYSTEM and not one of the the action accounts in the SQL RunAs profiles that I've setup and deployed to the two cluster nodes? -
SCOM SQL MP 6.4.1.0 - Alert CPUUsagePercent2008DataSource.ps1
Hi Everyone,
Can anyone please help me with the following issue: Forced to terminate the following PowerShell script because it ran past the configured timeout 200 seconds. This alert is showing for the following script(s):
CPUUsagePercentDataSource.ps1
DBDiskLatencyDataSource.ps1
StolenServerMemory2012.ps1
SQLReCompilation.ps1
ActiveRequestsDataSource.ps1
ActiveConnectionsDataSource.ps1
CPUUsagePercent2012DataSource.ps1
ActiveSessionsDataSource.ps1
StolenServerMemory2008.ps1
CPUUsagePercent2008DataSource.ps1
I've read in the past that this issue is a bug in the "SQL MP 6.4.1.0". Is this jet fixed or? Thanks in advance for the help! :)Hi,
Please go through the below similar thread for troubleshooting thoughts:
http://social.technet.microsoft.com/Forums/en-US/c539a55d-dd48-438f-b7d5-06ed2cecf6e9/powershell-script-failed-to-run-alerts-from-sql-management-pack-6410?forum=operationsmanagergeneral
Hope this helps.
Regards,
Yan Li
Regards, Yan Li -
AlwaysOn Management Pack not functioning - SCOM 2007R2
Hi all
I am a DBA but am new to SCOM and have been trying to get the AlwaysOn Management pack to work. I manually installed some agents on the 2 boxes I want to manage and can see they are being monitored in the inventory.
The management pack was already pre-installed by another employee but when I looked into the Administration > Management Packs and clicked on Import I could see that for that particular pack the AlwaysOn features were not installed. Thinking this
was the reason why it was not working I installed them.
I can now see when I go to Discovered Inventory and Change Target Type the AlwaysOn components however they are not monitoring anything. The only one with an entry is the AlwaysOn seed which shows the 2 boxes, but in a not monitored state.
Does anyone have any suggestions about how to get this to work?
Many thanksHi
SQL needs Run As Accounts and Profiles configuring:
http://blogs.technet.com/b/kevinholman/archive/2010/09/08/configuring-run-as-accounts-and-profiles-in-r2-a-sql-management-pack-example.aspx
Is the SQL DBEngine discovered and do you see discovered databases on the server. I suspect you do as it seems to have discovered the Always On components but just want to check.
Also have you enabled the Agent Proxy setting - Admininstration, Agent Managed, double click - security tab.
Have you run through page 43 onwards from the guide:
http://www.microsoft.com/en-us/download/details.aspx?id=10631
Cheers
Graham
Regards Graham New System Center 2012 Blog! -
http://www.systemcentersolutions.co.uk
View OpsMgr tips and tricks at
http://systemcentersolutions.wordpress.com/ -
Hi there,
I am working through my first complex Distributed Application which I have been creating using VSAE. I have followed Brian Wren's training, but the result does not match what I am expecting.
I have created a single DA (based on the System.Service class) with four groups (base on System.Group) which will be populated with the core components of the application. Each of the groups (and the DA) is configured as a Public, Non-Abstract, Non-Hosted
Singleton, as per the MPAuthor.Stores example. Each of the four groups is linked via an Internal, Non-Abstract System.Containment relationship to the DA.
When I open the DA diagram view, I only get the DA class visible. Each of the four groups shows in the Groups node in the Operations Console. Based on the experience with importing the MPAuthor.Stores MP, I was not expecting to see the groups in the Groups
node, but linked in the DA diagram node.
I have configured dependency monitors for each of the groups, and these display in the Health Explorer but there is no health rolls up.
The only difference between the MPAuthor.Stores module and mine (that I am aware of) is MPAuthors.Stores is a 2007 R2 MP, and I have created a 2012 MP as I will be deploying to 2012 SP1 and there is no need for backwards compatibility.Hi Vladimir,
Thanks again for your response. I'm not quite sure what you mean with your last post. My current DA model is:
| Dist App |
| System.Service |
|
| | | |
| Group 1 | | Group 2 | | Group 3 | | Group 4 |
| System.Group | | System.Group | | System.Group | | System.Group |
Where all the groups have discoveries for membership. Are you saying that I need another level of groups below these to house the objects?
I thought that the point of System.Group as a base class was that it did not appear in the console, but gave an automatic health rollup (as per TechNet). Interestingly I am not getting
the automated health rollup for the Groups for their members and it is displaying in the Groups list in the console.
I have also tried creating a new DA with a single group in an 07 MP, and have the same issue. The sample MPAuthor.Stores management pack works as expected. -
Hello
I am installing the following MP (for Windows Client OS)
http://www.microsoft.com/en-gb/download/confirmation.aspx?id=15700
Into a new SCOM 2012 R2 environment
When I go to import the MPs, I receive the following warning
"one or more management packs which are ready to install present a security risk are you sure you want to continue"
Is this normal?
why am I getting this message?
Should I continue to install any way?
Thanks All
AAnotherUser__
AAnotherUser__It's normal. You will receive a prompt indicating that the management pack presents a security risk. This is due to the management pack’s use of agent proxying. Click
Yes to allow the import.
That's happened in Exchange management pack or SQL Management pack to can monitor all virtual hosts.
Yes, you should continue to install Management pack.
Please remember, if you see a post that helped you please click "Vote As Helpful" and if it answered your question, please click "Mark As Answer"
Mai Ali | My blog: Technical -
Looking for a SQL query to get all the possible Alert Messages from the Rules in a Management Pack
For reporting, I'm looking to get a SQL query of all the possible Alert Messages for Rules configured in a Management Pack (not necessarily the ones that have thrown alerts). I can do this for Monitors, but not for Rules.
The configured alert messages for the Management Pack Monitors
go like this: ManagementPack > MonitorView> RuleModule > RuleModule.Alert Message > Localized Text
The configured alert messages for the Management Pack Rules
should go something like this, but there is a missing link: ManagementPack > RuleView > RuleModule > ? Missing Link ? > Localized Text
The Rules are tied to the Module, but I don't see a connection from the RulesModule to the Alert Message that I see in the LocalizedText. The Rule names do not always equal the Alert name.
Can someone provide the missing link?Hi,
please try below powershell code to find the corresponding management pack for specific alert:
$Alert = get-scomalert | where {$_.Name -like 'Agent Proxy Not Enabled*'} | select -first 1
If ($alert.IsMonitorAlert -eq "True") {
write-host "Ths is a monitor-generated alert"
get-scommonitor -ID $Alert.MonitoringRuleID | select Enabled, DisplayName, ManagementPack
else
write-host "This is a rule-generated alert"
get-scomrule -ID $Alert.MonitoringRuleID | select Enabled, DisplayName, ManagementPack
In addition, please also refer to the below link:
http://blogs.technet.com/b/mazenahmed/archive/2011/12/02/using-powershell-to-map-opsmgr-active-alert-to-its-corresponding-rule-monitor-and-management-pack-name.aspx
Regards,
Yan Li
Regards, Yan Li -
Query used by SQL Server Management Pack for monitoring database backups
I use SCOM 2012 R2 and the SQL Server Management Pack to monitor SQL Server database backups. I believe I am getting false positives. SCOM reports database are not backuped, while in fact they are. So I need to troubleshoot this. I suspect SCOM is querying
the backup history in the msdb database. I want to know which query SCOM uses.
I have tried looking in the monitor's definition but I suspect the query is embedded in the management pack files which are binary. I have also tried running a trace using the SQL Server Profiler on my test environment and overriding the interval to 60 seconds,
but I don't see a relevant query being executed. I also don't see the alert reappear so I suspect SCOM does not honor the interval in a way I would expect.
What query, or other method, does SCOM use to check database backups?
Thanks in advance.Thank you both Ivan and Michael,
I only saw your messages by email and didn't see your screen shot before I extracted the query myself. In my own queries I calculate the backup age in hours instead of days because of daily full backups. Perhaps It will be a good idea to create my own monitors
from scratch like I used to do with Nagios.
I will study the vbscripts and might create my own version which allows the query to be entered as an parameter and move all code to a .Net class which can be called from vbscript as an COM object. This way I hope to reduce the vbscript code to an minimum
while keeping the flexibility of the SCOM Operations Console and the robustness of .Net. I suspect I want to make more non standard monitors in the future.
Regards,
Arjen -
List alerts meeting Management Pack, Severity, and Priority criteria
Hello,
As part of our Management Pack Life Cycle Management Process, I need to identify the alerts meeting the following criteria:
1.
Generated from objects hosted by a specific subset of Management Packs (ex.: Windows Server 2003 & Windows Server 2008 (Monitoring))
2.
With a particular subset of “Severities” (ex.: Severity = Critical | Warning)
3.
With a particular subset of “Priorities” (ex.: Priority = High)
Alert Views
Though I can scope an alert view by severity & priority, I cannot scope by source Management Pack.
I therefore see alerts from all Management Packs! L
Alert Report
Though the Alerts report (under
Microsoft generic Report Library) allows me to scope by Severity & Priority, here too I cannot scope by source Management Pack.
I guess ideally, I would either:
1.
Create a new report, allowing me to specify the desired criteria; or
2.
Build & run a SQL statement that would extract the information directly from the database
The problem is that I haven’t yet gained enough experience with OpsMgr to build either of them.
Looking forward to hearing from someone,
LarryHi Larry
Try the following:
# Name of Root Management Server
$RMS="XXXXXXXXXXXXXXXX"
# Initialise OpsMgr Provider
write-Host
write-Host "Executing UpdateAlerts.ps1 ..."
write-Host
## prepare OpsMgr shell
if ((Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null) {
Write-Host
Write-Host "File loaded."
Write-Host "Initializing shell for operations manager..."
Write-Host "Add Microsoft.EnterpriseManagement.OperationsManager.Client snap in."
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
if ((Get-ManagementGroupConnection | Where-Object {$_.ManagementServerName -eq $RMS}) -eq $null) {
Write-Host "Connect to Management Server: $RMS"
New-ManagementGroupConnection $RMS -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
if ((Get-PSDrive | Where-Object {$_.Name -eq 'Monitoring'}) -eq $null) {
Write-Host "Create Monitoring drive from Provider."
New-PSDrive -Name: Monitoring -PSProvider: OperationsManagerMonitoring -Root: \ -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
Write-Host "Operations manager shell initialized."
Write-Host
Set-Location Monitoring:\$RMS
# Rules - Alert Name, Severity, Priority, Management Pack
get-alert -criteria 'PrincipalName is not null and ResolutionState = ''0'' and IsMonitorAlert=''False''' |
select-object name, Severity, Priority, @{Name="ManagementPack"; Expression={((get-rule $_.monitoringruleid).getmanagementpack()).displayname}} |
Export-csv c:\temp\listalertsfromrules.csv
# Monitors - Alert Name, Severity, Priority, Management Pack
get-alert -criteria 'PrincipalName is not null and ResolutionState = ''0'' and IsMonitorAlert=''True''' |
select-object name, Severity, Priority, @{Name="ManagementPack"; Expression={((get-monitor $_.problemid).getmanagementpack()).displayname }} |
Export-csv c:\temp\listalertsfrommonitors.csv
It works for me (at the moment it lists all alerts with resolution state = 0 but you can change the -criteria clause to amend that). You could also add filters for different priorities and severities and I guess add on date ranges ... but lets check the
base script works for you first!
Just a few things you'll need to amend in the script:
1) The RMS is defined in the second line - you'll need to specify your RMS
2) I have saved the output to a folder c:\temp - either create such a folder or change the file output path
Let us know how it goes.
Cheers
Graham
View OpsMgr tips and tricks at
http://systemcentersolutions.wordpress.com/ -
Script to get all the alerts from SCCM Management Pack
Hi Team,
I need a script/tool to generate all the default alerts from a Management Pack.
Thanks and Regards, Mohd Zaid www.techforcast.comYou may use the following SQL statement
select displayname as MPname, b.monitorname, b.alert from(
select displayname as monitorname, alert, a.managementpackid from (select monitorid, displayname as alert,
monitor.managementpackid from monitor inner join displaystringview on monitor.alertmessage=ltstringid
where languageCode='ENU') a inner join displaystringview on a.monitorid=ltstringid
where languageCode='ENU') b inner join displaystringview on b.ManagementPackid=ltstringid
where languageCode='ENU' where displayname ='SCCM Management Pack'
Roger
Maybe you are looking for
-
Closed lid still allows movement
Hi, is it normal that the screen of my new macbook can be moved a bit to the side (left and right) when closed. I'm talking about only a milimeter and guess it's because it's magnetically locked and not mechanically. But I was just wondering if that
-
Hello experts Oracle 10g on RHEL 4 when I fire the statement as sys user "create table tab2 as select * from dba_objects tablespace users" it gives the error "ORA-00933: SQL command not properly ended" But when I fire "create table tab2(id number) ta
-
Installation of SOA Suite 11g for development purpose
Hello All, I wanted to install SOA Suite 11g for development purpose on my laptop (OS Windows XP). As per installtion prerequisite process in the download page of oracle. I found the following pre requisite - installation of Oracle DB 11g EE(although
-
I have a user in my company who gets the following error message everytime he closes Photoshop 6.0: "Could not save Preferences because the file is locked. Use the "Properties command in the Windows Explorer to unlock the file." He is using Windows X
-
Serial Numbers for Components in production Order
Hi All I want to enter the serial numbers of the components in the production order. How can we do it. I am able to enter the serial number of the FG in the production order, but want to enter for the Components as well. Any direction will be greatl