Créer un groupe de disponibilité (SQL Server PowerShell)

Cette rubrique explique comment utiliser des applets de commande PowerShell pour créer et configurer un groupe de disponibilité AlwaysOn à l'aide de PowerShell dans SQL Server 2012. Un groupe de disponibilité définit un jeu de bases de données utilisateur qui basculent en tant qu'unité unique et un jeu de partenaires de basculement, appelés réplicas de disponibilité, qui prennent en charge le basculement.

[!REMARQUE]

Pour une introduction aux groupes de disponibilité, consultez Vue d'ensemble des groupes de disponibilité AlwaysOn (SQL Server).

  • Avant de commencer :  

    Conditions préalables, restrictions et recommandations

    Sécurité

    Résumé des tâches et applets de commande PowerShell correspondantes

    Pour installer et utiliser le fournisseur SQL Server PowerShell

  • Pour créer et configurer un groupe de disponibilité, en utilisant :  Utilisation de PowerShell pour créer et configurer un groupe de disponibilité

  • **Exemples : ** Utilisation de PowerShell pour créer un groupe de disponibilité

  • Tâches associées

  • Contenu associé

[!REMARQUE]

Comme alternative à l'utilisation des applets de commande PowerShell, vous pouvez utiliser l'Assistant Création d'un groupe de disponibilité ou Transact-SQL. Pour plus d'informations, consultez Utiliser la boîte de dialogue Nouveau groupe de disponibilité (SQL Server Management Studio) ou Créer un groupe de disponibilité (Transact-SQL).

Avant de commencer

Nous vous recommandons fortement de lire cette section avant d'essayer de créer votre premier groupe de disponibilité.

Conditions préalables, restrictions et recommandations

  • Avant de créer un groupe de disponibilité, vérifiez que les instances hôtes de SQL Server résident chacune sur un nœud WSFC (Clustering de basculement Windows Server) différent au sein du même clustering de basculement WSFC. En outre, vérifiez que vos instances de serveur respectent les autres conditions préalables applicables, que toutes les autres spécifications Groupes de disponibilité AlwaysOn sont respectées et que vous avez pris note des recommandations. Pour plus d'informations, nous vous recommandons fortement de lire Conditions préalables requises, restrictions et recommandations pour les groupes de disponibilité AlwaysOn (SQL Server).

Icône de flèche utilisée avec le lien Retour en haut[Top]

Sécurité

Autorisations

Requiert l'appartenance au rôle serveur fixe sysadmin et l'autorisation serveur CREATE AVAILABILITY GROUP, l'autorisation ALTER ANY AVAILABILITY GROUP ou l'autorisation CONTROL SERVER.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Résumé des tâches et applets de commande PowerShell correspondantes

Le tableau suivant répertorie les tâches de base impliquées dans la configuration d'un groupe de disponibilité et indique celles qui sont prises en charge par les applets de commande PowerShell. Les tâches Groupes de disponibilité AlwaysOn doivent être effectuées dans la séquence dans laquelle elles sont présentées dans le tableau.

Tâche

Applets de commande PowerShell (le cas échéant) ou instruction Transact-SQL

Où effectuer la tâche*

Créer le point de terminaison de mise en miroir de bases de données (une fois par instance SQL Server)

New-SqlHadrEndPoint

Exécutez sur chaque instance de serveur dans laquelle le point de terminaison de mise en miroir de bases de données est manquant.

[!REMARQUE]

Pour modifier un point de terminaison de mise en miroir de bases de données existant, utilisez Set-SqlHadrEndpoint.

Créer un groupe de disponibilité

En premier lieu, utilisez l'applet de commande New-SqlAvailabilityReplica avec le paramètre -AsTemplate pour créer un objet réplica de disponibilité en mémoire pour chacun des deux réplicas de disponibilité que vous envisagez d'inclure dans le groupe de disponibilité.

Puis, créez le groupe de disponibilité en utilisant l'applet de commande New-SqlAvailabilityGroup et en référençant vos objets réplica de disponibilité.

Exécutez sur l'instance de serveur qui hébergera le réplica principal initial.

Joindre le réplica secondaire au groupe de disponibilité

Join-SqlAvailabilityGroup

Exécutez sur chaque instance de serveur qui héberge un réplica secondaire.

Préparer la base de données secondaire

Backup-SqlDatabase et Restore-SqlDatabase

Créez des sauvegardes sur l'instance de serveur qui héberge le réplica principal.

Restaurez les sauvegardes sur chaque instance de serveur qui héberge un réplica secondaire, à l'aide du paramètre de restauration NoRecovery. Si les chemins d'accès de fichier diffèrent entre les ordinateurs qui hébergent le réplica principal et le réplica secondaire cible, utilisez également le paramètre de restauration RelocateFile.

Démarrer la synchronisation des données en joignant chaque base de données secondaire au groupe de disponibilité

Add-SqlAvailabilityDatabase

Exécutez sur chaque instance de serveur qui héberge un réplica secondaire.

* Pour effectuer une tâche donnée, changez de répertoire (cd) afin d'accéder aux instances de serveur indiquées.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Pour installer et utiliser le fournisseur SQL Server PowerShell

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de PowerShell pour créer et configurer un groupe de disponibilité

[!REMARQUE]

Pour afficher la syntaxe et un exemple d'une applet de commande, utilisez l'applet de commande Get-Help dans l'environnement PowerShell SQL Server. Pour plus d'informations, consultez Obtenir de l'aide sur SQL Server PowerShell.

  1. Accédez au répertoire (cd) de l'instance de serveur qui héberge le réplica principal.

  2. Créez un objet réplica de disponibilité en mémoire pour le réplica principal.

  3. Créez un objet réplica de disponibilité en mémoire pour chacun des réplicas secondaires.

  4. Créez le groupe de disponibilité.

    [!REMARQUE]

    La longueur maximale d'un nom de groupe de disponibilité est de 128 caractères.

  5. Joignez le nouveau réplica secondaire au groupe de disponibilité. Pour plus d'informations, consultez Joindre un réplica secondaire à un groupe de disponibilité (SQL Server).

  6. Pour chaque base de données dans le groupe de disponibilité, créez une base de données secondaire en restaurant des sauvegardes récentes de la base de données primaire, à l'aide de RESTORE WITH NORECOVERY.

  7. Joignez chaque nouvelle base de données secondaire au groupe de disponibilité. Pour plus d'informations, consultez Joindre un réplica secondaire à un groupe de disponibilité (SQL Server).

  8. Éventuellement, utilisez la commande dir Windows pour vérifier le contenu du nouveau groupe de disponibilité.

[!REMARQUE]

Si les comptes de service SQL Server des instances serveur s'exécutent sous des comptes utilisateur de domaine différents, sur chaque instance serveur, créez une connexion pour l'autre instance serveur et accordez l'autorisation CONNECT sur le point de terminaison de mise en miroir de bases de données local.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Exemple : Utilisation de PowerShell pour créer un groupe de disponibilité

L'exemple PowerShell suivant crée et configure un groupe de disponibilité simple nommé MyAG avec deux réplicas de disponibilité et une base de données de disponibilité. L'exemple :

  1. Sauvegarde MyDatabase et son journal des transactions.

  2. Restaure MyDatabase et son journal des transactions, à l'aide de l'option -NoRecovery.

  3. Crée une représentation en mémoire du réplica principal, qui sera hébergée par l'instance locale de SQL Server (nommée PrimaryComputer\Instance).

  4. Crée une représentation en mémoire du réplica secondaire, qui sera hébergée par une instance de SQL Server (nommée SecondaryComputer\Instance).

  5. Crée un groupe de disponibilité nommé MyAG.

  6. Joint le réplica secondaire au groupe de disponibilité.

  7. Joint la base de données secondaire au groupe de disponibilité.

# Backup my database and its log on the primary
Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "PrimaryComputer\Instance"

Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "PrimaryComputer\Instance" `
    -BackupAction Log 

# Restore the database and log on the secondary (using NO RECOVERY)
Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "SecondaryComputer\Instance" `
    -NoRecovery

Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "SecondaryComputer\Instance" `
    -RestoreAction Log `
    -NoRecovery

# Create an in-memory representation of the primary replica.
$primaryReplica = New-SqlAvailabilityReplica `
    -Name "PrimaryComputer\Instance" `
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create an in-memory representation of the secondary replica.
$secondaryReplica = New-SqlAvailabilityReplica `
    -Name "SecondaryComputer\Instance" `
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create the availability group
New-SqlAvailabilityGroup `
    -Name "MyAG" `
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `
    -Database "MyDatabase"

# Join the secondary replica to the availability group.
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "MyAG"

# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "MyDatabase"

Tâches associées

Pour configurer une instance de serveur pour les groupes de disponibilité AlwaysOn

Pour configurer les propriétés du groupe de disponibilité et du réplica

Pour terminer la configuration du groupe de disponibilité

Autres méthodes de création d'un groupe de disponibilité

Pour résoudre les problèmes de configuration des groupes de disponibilité AlwaysOn

Icône de flèche utilisée avec le lien Retour en haut[Top]

Contenu associé

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Concepts

Point de terminaison de mise en miroir de bases de données (SQL Server)

Vue d'ensemble des groupes de disponibilité AlwaysOn (SQL Server)