InfoScale™ 9.0 Storage Foundation and High Availability Solutions HA and DR Solutions Guide for Microsoft SQL Server - Windows
- Section I. Getting started with Storage Foundation and High Availability Solutions for SQL Server
- Introducing SFW HA and the VCS agents for SQL Server
- How is application availability achieved in a VMware virtual environment
- How VCS monitors storage components
- Deployment scenarios for SQL Server
- Reviewing the active-passive HA configuration
- Reviewing a standalone SQL Server configuration
- Reviewing the campus cluster configuration
- Reviewing the Replicated Data Cluster configuration
- About setting up a Replicated Data Cluster configuration
- Disaster recovery configuration
- Reviewing the disaster recovery configuration
- Notes and recommendations for cluster and application configuration
- Configuring disk groups and volumes for SQL Server
- About managing disk groups and volumes
- Configuring the cluster using the Cluster Configuration Wizard
- Installing SQL Server
- Completing configuration steps in SQL Server
- Introducing SFW HA and the VCS agents for SQL Server
- Section II. Configuring SQL Server in a physical environment
- Configuring SQL Server for failover
- About configuring the SQL Server service group
- Configuring the service group in a non-shared storage environment
- Configuring an MSDTC Server service group
- Configuring campus clusters for SQL Server
- Configuring Replicated Data Clusters for SQL Server
- Setting up the Replicated Data Sets (RDS)
- Configuring a RVG service group for replication
- Configuring the resources in the RVG service group for RDC replication
- Configuring the VMDg or VMNSDg resources for the disk groups
- Configuring the RVG Primary resources
- Adding the nodes from the secondary zone to the RDC
- Verifying the RDC configuration
- Configuring disaster recovery for SQL Server
- Setting up your replication environment
- About configuring disaster recovery with the DR wizard
- Configuring replication and global clustering
- Configuring the global cluster option for wide-area failover
- Testing fault readiness by running a fire drill
- About the Fire Drill Wizard
- Prerequisites for a fire drill
- Preparing the fire drill configuration
- Deleting the fire drill configuration
- Configuring SQL Server for failover
About the VCS agent for SQL Server Database Engine
The VCS agent for SQL Server Database Engine monitors the Database Engine service and all the optional components that are integrated with the service. For example, if the Full-Text Search component is configured, the agent also monitors that component too. The agent brings the service online, monitors its status, and takes it offline. If the service is not running, the agent declares its state as Offline.
If detail monitoring is configured, the agent checks the health of the selected SQL Server databases or executes a monitoring script. If detail monitoring is successful, the agent declares the service group as Online.
Online | Brings the SQL Server Database Engine service online. |
Offline | Takes the Database Engine service offline. |
Monitor | Monitors the status of SQL Server services. It queries the Windows Service Control Manager (SCM) for the status of the services. If detail monitoring is configured, then depending on the configuration, the agent performs a database health check or executes a monitoring script. |
Clean | Forcibly stops the Database Engine service. Cleans up after a resource fails to come online, fails to go offline, or fails to detect the state as Online even when the resource is online. |
Note:
If you start the SQL Server services from outside VCS, then the SQL resource will go in an unknown state because the VCS agent monitors the computer context of the services. If the SQL Server service is not started in the virtual server context the resource goes in an unknown state. You must ensure that you start all the SQL Server-related services from within VCS.
The resource type represents the VCS configuration definition of the agent, and specifies how the agent is defined in the configuration file, main.cf
.
The agent for SQL Server is configured as a resource of the SQLServer type.
type SQLServer ( static int IMF{} = { Mode=3, MonitorFreq=5, RegisterRetryLimit=3 } static i18nstr IMFRegList[] = { Instance } static i18nstr ArgList[] = { Instance, "LanmanResName:VirtualName", DetailMonitorInterval, SQLOnlineTimeout, SQLOfflineTimeout, SQLDetailMonitorTimeout, Username, Domain, Password, DBList, "IPResName:Address", SQLFile, FaultOnDMFailure } str Instance str LanmanResName str IPResName int DetailMonitorInterval = 0 int SQLOnlineTimeout = 90 int SQLOfflineTimeout = 90 int SQLDetailMonitorTimeout = 30 i18nstr Username i18nstr Domain str Password i18nstr SQLFile i18nstr DBList[] boolean FaultOnDMFailure = 1 )
The following table lists the attributes that must be configured for the agent to function properly.
Table: VCS agent for SQL Server Database Engine - required attributes
Required Attribute | Description |
---|---|
Name: Instance Type: String Dimension: Scalar | Name of the SQL Server instance to monitor. If the value of this attribute is not set, the agent monitors the default SQL Server instance (MSSQLSERVER). |
Name: Type: Dimension: | Lanman resource name on which the SQLServer resource depends. |
Table: VCS agent for SQL Server Database Engine - optional attributes
Optional attribute | Description |
---|---|
Name: SQLOnlineTimeout Type: Integer Dimension: Scalar | Number of seconds that may elapse before the Online function aborts. Default value: 90 |
Name: SQLOfflineTimeout Type: Integer Dimension: Scalar | Number of seconds that may elapse before the Offline function aborts. Default value: 90 |
Name: DetailMonitorInterval Type: Integer Dimension: Scalar | Defines whether the agent performs detail monitoring of the SQL Server instance. The value 0 (zero) indicates that the agent performs only the basic monitoring of the instance service. A non-zero value indicates the number of online monitor cycles that the agent must wait before performing detail monitoring. Arctera recommends that you set this value to an integer between 1 and 12. The value 1 would make the agent perform detail monitoring at each monitor cycle. The value 2 would make the agent perform detail monitoring at every other monitor cycle. This interpretation may be extended to other values. If this attribute is set to a non-zero value, then the following attributes must be assigned appropriate values:
Default value: 5 Note: This is not a SQL Server agent-specific attribute, but a common type-level attribute. The value of this attribute can only be set through the wizard. If you configure the service group manually, you must remember to specify this attribute and its value. |
Name: FaultOnDMFailure Type: Boolean Dimension: Scalar | Defines whether the agent fails over the service group if the detail monitoring script execution fails. The value 1 indicates that the agent fails over the service group if detail monitoring script fails to execute. The value 0 indicates that it does not fail over, but goes into the unknown state. Defines whether the agent faults the SQL Server resource when the detail monitoring fails.
Default value: True |
Name: SQLDetailMonitorTimeout Type: Integer Dimension: Scalar | Number of seconds that may elapse before the detail monitoring routine aborts. Default value: 30 |
Name: Username Type: String Dimension: Scalar | User account in whose context the detail monitoring is performed. If the DetailMonitorInterval attribute is set to a non-zero value, the value of this attribute must not be empty. The Microsoft Windows authentication name when logging in to a database for detail monitoring. This attribute must not be null if the DetailMonitorInterval attribute is set to a non-zero value. The user must have the necessary privileges to connect to the database and execute the appropriate query. Note: This attribute can take localized values. |
Name: Domain Type: String Dimension: Scalar | Domain of the user account specified in the Username attribute. Domain for the user account. This attribute is used to create a trusted connection to the SQL Server instance if the DetailMonitorInterval attribute is set to a non-zero value. Note: This attribute can take localized values. |
Name: Password Type: String Dimension: Scalar | Password for the user account specified in the Username attribute. If the DetailMonitorInterval attribute is set to a non-zero value, the value of this attribute must not be empty. Password for logging in to a database for in-depth monitoring. This attribute must not be null if the DetailMonitorInterval attribute is set to a non-zero value. |
Name: SQLFile Type: String Dimension: Scalar | Location of the SQL file that is executed during a monitor cycle. If the DetailMonitorInterval attribute is set to a non-zero value, then either the script-based detail monitoring or the database list-based detail monitoring must be configured. This attribute must not be null if DetailMonitorInterval attribute is set to a non-zero value and script-based detail monitoring is configured. Note: This attribute can take localized values. |
Name: DBList Type: String Dimension: Vector | List of databases for which the agent must perform detail monitoring. If the DetailMonitorInterval attribute is set to a non-zero value, then either the script-based detail monitoring or the database list-based detail monitoring must be configured. If both the SQLFile attribute and the DBList attribute are configured, then the DBList attribute takes precedence. Note: This attribute can take localized values. |
Name: IPResName Type: String Dimension: Scalar | IP resource on which the Lanman resource for the SQLServer resource depends. |