How does the rule "DBSS - Unavailable" work?
In a non-mirrored environment, the rule checks sys.databases to check if the state is not ONLINE or if the user_access is SINGLE_USER. In either of these two conditions, the rule will then fire. This is hardcoded in the DBSS_Database collection and cannot be modified.
Subsequently it checks is it is a principal database taking part in a mirroring operation, having the status "Restoring".
The rule is defined on the "DBSS_Database" topology. The rule condition is basically checking:
"#DBSS_Unavailable_For_Rules# >= 1"
Whereas "#DBSS_Unavailable_For_Rules#" is a derived metric which is based on "db_status" metric. It’s calculation consists of checking if the current DB is excluded (set in the "Global Administration" dashboard not to fire "DBSS – Unavailable" alarms about the specified DBs) afterwards the calculation checks if the DB which is part of mirroring and holds the "MIRROR" role and also it’s "Restoring". If both checks are false then the derived metric will hold a value according to the "db_status" metric.
To find the DB status in Foglight, go to: Configuration | Data | Databases | SQL Server | Reports | Get Instances | Databases | <your DB name> | DB Status
If there is no data, open the right panel and click on "Property Viewer". Under "DB Status" you will find the current and the historical states.
© ALL RIGHTS RESERVED. Conditions d’utilisation Confidentialité Cookie Preference Center