forked from dsccommunity/SqlServerDsc
-
Notifications
You must be signed in to change notification settings - Fork 2
SqlWaitForAG
johlju edited this page Jun 19, 2020
·
2 revisions
Parameter | Attribute | DataType | Description | Allowed Values |
---|---|---|---|---|
Name | Key | String | Name of the cluster role/group to look for (normally the same as the Availability Group name). | |
RetryIntervalSec | Write | UInt64 | The interval, in seconds, to check for the presence of the cluster role/group. Default value is 20 seconds. When the cluster role/group has been found the resource will wait for this amount of time once more before returning. | |
RetryCount | Write | UInt32 | Maximum number of retries until the resource will timeout and throw an error. Default values is 30 times. | |
GroupExist | Read | Boolean | Returns $true if the cluster role/group exist, otherwise it returns $false. Used by Get-TargetResource. |
The SqlWaitForAG
DSC resource will wait for a cluster role/group to be
created. This is used to wait for an Availability Group to create the
cluster role/group in the cluster.
- Target machine must be running Windows Server 2012 or later.
- Target machine must be running SQL Server Database Engine 2012 or later.
- Target machine must have access to the Failover Cluster PowerShell module.
- The account running this resource must have permission in the cluster to be able to run the cmdlet Get-ClusterGroup.
- This resource evaluates if the Windows Failover Cluster role/group
has been created. But the Windows Failover Cluster role/group is created
before the Availability Group is in a ready state. When the Windows Failover
Cluster role/group is found the resource will wait one more time
according to the value of
RetryIntervalSec
before returning. There is currently no check to validate that the Availability Group was successfully created and is in a ready state. A workaround is instead useWaitForAny
resource. This is being tracked in issue #1569.
All issues are not listed here, see here for all open issues.
This example will wait for the cluster role/group 'AGTest1'.
Configuration Example
{
param
(
[Parameter(Mandatory = $true)]
[System.Management.Automation.PSCredential]
$SqlAdministratorCredential
)
Import-DscResource -ModuleName 'SqlServerDsc'
node localhost
{
SqlWaitForAG 'SQLConfigureAG-WaitAGTest1'
{
Name = 'AGTest1'
RetryIntervalSec = 20
RetryCount = 30
PsDscRunAsCredential = $SqlAdministratorCredential
}
}
}
This example will wait for both the cluster roles/groups 'AGTest1' and 'AGTest2'.
Configuration Example
{
param
(
[Parameter(Mandatory = $true)]
[System.Management.Automation.PSCredential]
$SqlAdministratorCredential
)
Import-DscResource -ModuleName 'SqlServerDsc'
node localhost
{
SqlWaitForAG 'SQLConfigureAG-WaitAGTest1'
{
Name = 'AGTest1'
RetryIntervalSec = 20
RetryCount = 30
PsDscRunAsCredential = $SqlAdministratorCredential
}
SqlWaitForAG 'SQLConfigureAG-WaitAGTest2'
{
Name = 'AGTest2'
RetryIntervalSec = 20
RetryCount = 30
PsDscRunAsCredential = $SqlAdministratorCredential
}
}
}
- SqlAG
- SqlAGDatabase
- SqlAgentAlert
- SqlAgentFailsafe
- SqlAgentOperator
- SqlAGListener
- SqlAGReplica
- SqlAlias
- SqlAlwaysOnService
- SqlConfiguration
- SqlDatabase
- SqlDatabaseDefaultLocation
- SqlDatabaseMail
- SqlDatabaseObjectPermission
- SqlDatabaseOwner
- SqlDatabasePermission
- SqlDatabaseRecoveryModel
- SqlDatabaseRole
- SqlDatabaseUser
- SqlEndpoint
- SqlEndpointPermission
- SqlLogin
- SqlMaxDop
- SqlMemory
- SqlPermission
- SqlProtocol
- SqlProtocolTcpIp
- SqlReplication
- SqlRole
- SqlRS
- SqlRSSetup
- SqlScript
- SqlScriptQuery
- SqlSecureConnection
- SqlServerConfiguration
- SqlServerDatabaseMail
- SqlServerEndpoint
- SqlServerEndpointPermission
- SqlServerEndpointState
- SqlServerLogin
- SqlServerMaxDop
- SqlServerMemory
- SqlServerNetwork
- SqlServerPermission
- SqlServerProtocol
- SqlServerProtocolTcpIp
- SqlServerReplication
- SqlServerRole
- SqlServerSecureConnection
- SqlServiceAccount
- SqlSetup
- SqlWaitForAG
- SqlWindowsFirewall