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

[Besoin de services avec SQL Server ? Contactez-moi]