InfoScale™ 9.0 Storage Foundation and High Availability Solutions HA and DR Solutions Guide for Microsoft SQL Server - Windows

Last Published:
Product(s): InfoScale & Storage Foundation (9.0)
Platform: Windows
  1. Section I. Getting started with Storage Foundation and High Availability Solutions for SQL Server
    1. Introducing SFW HA and the VCS agents for SQL Server
      1.  
        About the Veritas InfoScale solutions for monitoring SQL Server
      2.  
        How application availability is achieved in a physical environment
      3. How is application availability achieved in a VMware virtual environment
        1.  
          How the VMwareDisks agent communicates with the vCenter Server instead of the ESX/ESXi host
        2.  
          Typical VCS cluster configuration in a virtual environment
      4.  
        Managing storage using VMware virtual disks
      5.  
        Modifying the ESXDetails attribute
      6. How VCS monitors storage components
        1.  
          Shared storage - if you use NetApp filers
        2.  
          Shared storage - if you use SFW to manage cluster dynamic disk groups
        3.  
          Shared storage - if you use Windows LDM to manage shared disks
        4.  
          Non-shared storage - if you use SFW to manage dynamic disk groups
        5.  
          Non-shared storage - if you use Windows LDM to manage local disks
        6.  
          Non-shared storage - if you use VMware storage
      7.  
        What must be protected in an SQL Server environment
      8.  
        About the VCS agents for SQL Server
      9.  
        About the VCS agent for SQL Server Database Engine
      10.  
        About the VCS agent for SQL Server FILESTREAM
      11.  
        About the VCS GenericService agent for SQL Server Agent service and Analysis service
      12.  
        About the agent for MSDTC service
      13.  
        About the monitoring options
      14.  
        Typical SQL Server configuration in a VCS cluster
      15.  
        Typical SQL Server disaster recovery configuration
      16.  
        SQL Server sample dependency graph
      17.  
        MSDTC sample dependency graph
    2. Deployment scenarios for SQL Server
      1.  
        Workflows in the Solutions Configuration Center
      2. Reviewing the active-passive HA configuration
        1.  
          Sample Active-Passive configuration
      3.  
        Reviewing the prerequisites for a standalone SQL Server
      4. Reviewing a standalone SQL Server configuration
        1.  
          Sample standalone SQL Server configuration
      5.  
        Reviewing the MSDTC configuration
      6.  
        VCS campus cluster configuration
      7. Reviewing the campus cluster configuration
        1.  
          Campus cluster failover using the ForceImport attribute
        2.  
          Reinstating faulted hardware in a campus cluster
      8.  
        VCS Replicated Data Cluster configuration
      9. Reviewing the Replicated Data Cluster configuration
        1.  
          Sample replicated data cluster configuration
      10. About setting up a Replicated Data Cluster configuration
        1.  
          About setting up replication
        2.  
          About configuring and migrating the service group
      11. Disaster recovery configuration
        1.  
          DR configuration tasks: Primary site
        2.  
          DR configuration tasks: Secondary site
        3.  
          Supported disaster recovery configurations for service group dependencies
      12. Reviewing the disaster recovery configuration
        1.  
          Sample disaster recovery configuration
      13. Notes and recommendations for cluster and application configuration
        1.  
          IPv6 support
        2.  
          IP address requirements for an Active-Passive configuration
        3.  
          IP address requirements for a disaster recovery configuration
      14.  
        Configuring the storage hardware and network
      15. Configuring disk groups and volumes for SQL Server
        1.  
          About disk groups and volumes
        2.  
          Prerequisites for configuring disk groups and volumes
        3.  
          Considerations for a fast failover configuration
        4.  
          Considerations for converting existing shared storage to cluster disk groups and volumes
        5.  
          Considerations when creating disks and volumes for campus clusters
        6.  
          Considerations for volumes for a Volume Replicator configuration
        7.  
          Considerations for disk groups and volumes for multiple instances
        8.  
          Sample disk group and volume configuration
        9.  
          MSDTC sample disk group and volume configuration
        10.  
          Viewing the available disk storage
        11.  
          Creating a dynamic disk group
        12.  
          Adding disks to campus cluster sites
        13.  
          Creating volumes for high availability clusters
        14.  
          Creating volumes for campus clusters
      16. About managing disk groups and volumes
        1.  
          Importing a disk group and mounting a volume
        2.  
          Unmounting a volume and deporting a disk group
        3.  
          Adding drive letters to mount the volumes
      17. Configuring the cluster using the Cluster Configuration Wizard
        1.  
          Configuring notification
        2.  
          Configuring Wide-Area Connector process for global clusters
        3.  
          Adding nodes to a cluster
    3. Installing SQL Server
      1.  
        About installing and configuring SQL Server
      2.  
        About installing multiple SQL Server instances
      3.  
        Verifying that the SQL Server databases and logs are moved to shared storage
      4.  
        About installing SQL Server for high availability configuration
      5.  
        About installing SQL Server on the first system
      6.  
        About installing SQL Server on additional systems
      7.  
        Creating a SQL Server user-defined database
      8. Completing configuration steps in SQL Server
        1.  
          Moving the tempdb database if using Volume Replicator for disaster recovery
        2.  
          Assigning ports for multiple SQL Server instances
        3.  
          Enabling IPv6 support for the SQL Server Analysis Service
  2. Section II. Configuring SQL Server in a physical environment
    1. Configuring SQL Server for failover
      1.  
        Tasks for configuring a new server for high availability
      2.  
        Tasks for configuring an existing server for high availability
      3. About configuring the SQL Server service group
        1.  
          Service group requirements for Active-Active configurations
        2.  
          Prerequisites for configuring the SQL Server service group
        3.  
          Creating the SQL Server service group
      4. Configuring the service group in a non-shared storage environment
        1.  
          Assigning privileges to the existing SQL Server databases and logs
        2.  
          Enabling fast failover for disk groups (optional)
      5.  
        Verifying the SQL Server cluster configuration
      6.  
        About the modifications required for tagged VLAN or teamed network
      7.  
        Tasks for configuring MSDTC for high availability
      8. Configuring an MSDTC Server service group
        1.  
          Prerequisites for MSDTC configuration
        2.  
          Creating an MSDTC Server service group
      9.  
        About configuring the MSDTC client for SQL Server
      10.  
        About the VCS Application Manager utility
      11.  
        Viewing DTC transaction information
      12.  
        Modifying a SQL Server service group to add VMDg and MountV resources
      13.  
        Determining additional steps needed
    2. Configuring campus clusters for SQL Server
      1.  
        Tasks for configuring campus clusters
      2.  
        Modifying the IP resource in the SQL Server service group
      3.  
        Verifying the campus cluster: Switching the service group
      4.  
        Setting the ForceImport attribute to 1 after a site failure
    3. Configuring Replicated Data Clusters for SQL Server
      1.  
        Tasks for configuring Replicated Data Clusters
      2.  
        Creating the primary system zone for the application service group
      3.  
        Creating a parallel environment in the secondary zone
      4.  
        Setting up security for Volume Replicator
      5. Setting up the Replicated Data Sets (RDS)
        1.  
          Prerequisites for setting up the RDS for the primary and secondary zones
        2.  
          Creating the Replicated Data Sets with the wizard
      6. Configuring a RVG service group for replication
        1.  
          Creating the RVG service group
        2. Configuring the resources in the RVG service group for RDC replication
          1.  
            Configuring the IP and NIC resources
          2. Configuring the VMDg or VMNSDg resources for the disk groups
            1.  
              Modifying the DGGuid attribute for the new disk group resource in the RVG service group
            2.  
              Configuring the VMDg or VMNSDg resources for the disk group for the user-defined database
            3.  
              Adding the Volume Replicator RVG resources for the disk groups
            4.  
              Linking the Volume Replicator RVG resources to establish dependencies
            5.  
              Deleting the VMDg or VMNSDg resource from the SQL Server service group
        3. Configuring the RVG Primary resources
          1.  
            Creating the RVG Primary resources
          2.  
            Linking the RVG Primary resources to establish dependencies
          3.  
            Bringing the RVG Primary resources online
        4.  
          Configuring the primary system zone for the RVG service group
      7.  
        Setting a dependency between the service groups
      8. Adding the nodes from the secondary zone to the RDC
        1.  
          Adding the nodes from the secondary zone to the RVG service group
        2.  
          Configuring secondary zone nodes in the RVG service group
        3.  
          Configuring the RVG service group NIC resource for fail over (VMNSDg only)
        4.  
          Configuring the RVG service group IP resource for failover
        5.  
          Configuring the RVG service group VMNSDg resources for fail over
        6.  
          Adding nodes from the secondary zone to the SQL Server service group
        7.  
          Configuring the zones in the SQL Server service group
        8.  
          Configuring the application service group IP resource for fail over (VMNSDg only)
        9.  
          Configuring the application service group NIC resource for fail over (VMNSDg only)
      9. Verifying the RDC configuration
        1.  
          Bringing the service group online
        2.  
          Switching online nodes
      10.  
        Additional instructions for GCO disaster recovery
    4. Configuring disaster recovery for SQL Server
      1.  
        Tasks for configuring disaster recovery for SQL Server
      2.  
        Tasks for setting up DR in a non-shared storage environment
      3.  
        Guidelines for installing Arctera InfoScale Enterprise and configuring the cluster on the secondary site
      4.  
        Verifying your primary site configuration
      5. Setting up your replication environment
        1. Requirements for EMC SRDF array-based hardware replication
          1.  
            Software requirements for configuring EMC SRDF
          2.  
            Replication requirements for EMC SRDF
        2. Requirements for Hitachi TrueCopy array-based hardware replication
          1.  
            Software requirements for Hitachi TrueCopy
          2.  
            Replication requirements for Hitachi TrueCopy
      6.  
        Assigning user privileges (secure clusters only)
      7. About configuring disaster recovery with the DR wizard
        1.  
          Configuring disaster recovery with the DR wizard
      8.  
        Cloning the storage on the secondary site using the DR wizard (Volume Replicator replication option)
      9.  
        Creating temporary storage on the secondary site using the DR wizard (array-based replication)
      10.  
        Installing and configuring SQL Server on the secondary site
      11.  
        Cloning the service group configuration from the primary site to the secondary site
      12.  
        Configuring the SQL Server service group in a non-shared storage environment
      13. Configuring replication and global clustering
        1.  
          Configuring Volume Replicator replication and global clustering
        2. Configuring EMC SRDF replication and global clustering
          1.  
            Optional settings for EMC SRDF
        3. Configuring Hitachi TrueCopy replication and global clustering
          1.  
            Optional settings for HTC
        4.  
          Configuring global clustering only
      14.  
        Creating the replicated data sets (RDS) for Volume Replicator replication
      15.  
        Creating the Volume Replicator RVG service group for replication
      16. Configuring the global cluster option for wide-area failover
        1.  
          Linking clusters: Adding a remote cluster to a local cluster
        2.  
          Converting a local service group to a global service group
        3.  
          Bringing a global service group online
      17.  
        Verifying the disaster recovery configuration
      18.  
        Adding multiple DR sites (optional)
      19.  
        Recovery procedures for service group dependencies
      20.  
        Configuring DR manually without the DR wizard
    5. Testing fault readiness by running a fire drill
      1.  
        About disaster recovery fire drills
      2. About the Fire Drill Wizard
        1.  
          About Fire Drill Wizard general operations
        2. About Fire Drill Wizard operations in a Volume Replicator environment
          1.  
            Preparing the fire drill configuration
          2.  
            About running the fire drill
          3.  
            About restoring the fire drill configuration
          4.  
            About deleting the fire drill configuration
        3.  
          About Fire Drill Wizard operations in a Hitachi TrueCopy or EMC SRDF environment
      3.  
        About post-fire drill scripts
      4.  
        Tasks for configuring and running fire drills
      5. Prerequisites for a fire drill
        1.  
          Prerequisites for a fire drill in a Volume Replicator environment
        2.  
          Prerequisites for a fire drill in a Hitachi TrueCopy environment
        3.  
          Prerequisites for a fire drill in an EMC SRDF environment
      6. Preparing the fire drill configuration
        1.  
          System Selection panel details
        2.  
          Service Group Selection panel details
        3.  
          Secondary System Selection panel details
        4.  
          Fire Drill Service Group Settings panel details
        5.  
          Disk Selection panel details
        6.  
          Hitachi TrueCopy Path Information panel details
        7.  
          HTCSnap Resource Configuration panel details
        8.  
          SRDFSnap Resource Configuration panel details
        9.  
          Fire Drill Preparation panel details
      7.  
        Running a fire drill
      8.  
        Re-creating a fire drill configuration that has changed
      9.  
        Restoring the fire drill system to a prepared state
      10. Deleting the fire drill configuration
        1.  
          Fire Drill Deletion panel details
      11.  
        Considerations for switching over fire drill service groups

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.

Functions

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.

See About the monitoring options.

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.

Resource type definitions

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
)
Attributes

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: LanmanResName

Type: String

Dimension: Scalar

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:

  • For script-based monitoring: SQLFile, Username, Password, Domain, and SQLDetailMonitorTimeOut

  • For databases list-based monitoring: Username, Password, Domain, and DBList

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.

See About the monitoring options.

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.

  • If the value is set to True, the agent faults the configured SQL Server resource when the detail monitoring fails.

    In this case, the SQL Server resource may go into OFFLINE state.

  • If the value is set to False, the agent does not fault the SQL Server resource when the detail monitoring fails.

    In this case, the SQL Server resource may go into the UNKOWN state.

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.