Utiliser dbatools pour les groupes de disponibilité AlwaysOn
Utiliser dbatools pour gérer et diagnostiquer les groupes de disponibilité AlwaysOn dans SQL Server.
Voir les groupes et les statuts des réplicas
Set-DbatoolsInsecureConnection
Get-DbaAgReplica -SqlInstance localhost | ft Name, AvailabilityGroup, FailoverMode, Role, RollupSynchronizationState
Basculer tous les groupes de disponibilité sur un nœud spécifique
Set-DbatoolsInsecureConnection
Get-DbaAgReplica -SqlInstance localhost | where {$_.Role -eq "Secondary" -and $_.RollupSynchronizationState -eq "Synchronized"} | ft Name, AvailabilityGroup, FailoverMode, Role, RollupSynchronizationState
Get-DbaAgReplica -SqlInstance localhost
Get-DbaAgReplica -SqlInstance localhost | Switch-DbaAgReplica -TargetSqlInstance "SQLNODE2"
Get-DbaAgReplica -SqlInstance localhost | Move-DbaAgReplica -DestinationSqlInstance "SQLNODE2"
Voir les bases sans synchronisation
Set-DbatoolsInsecureConnection
Get-DbaAgDatabaseReplicaState -SqlInstance localhost | where {$_.IsSuspended} | ft ReplicaServerName, AvailabilityGroup, DatabaseName, SuspendReason
Reprendre la synchronisation des bases suspendues
Set-DbatoolsInsecureConnection
Resume-DbaAgDbDataMovement -SqlInstance sql2 -AvailabilityGroup test
Get-DbaAgDatabase -SqlInstance sql2 | Resume-DbaAgDbDataMovement -Confirm:$false
Basculer tous les groupes de disponibilité
Set-DbatoolsInsecureConnection
$secondary = Get-DbaAgReplica -SqlInstance localhost | where {$_.Role -eq "Secondary" -and $_.RollupSynchronizationState -eq "Synchronized"} | select Name -First 1
Get-DbaAvailabilityGroup -SqlInstance $secondary.Name | Invoke-DbaAgFailover -Confirm:$false