ALTER DATABASE SET HADR (Transact-SQL)

Cette rubrique contient la syntaxe ALTER DATABASE pour définir les options de Groupes de disponibilité AlwaysOn sur une base de données secondaire. Seule une option SET HADR est autorisée par instruction ALTER DATABASE. Ces options sont prises en charge uniquement sur les réplicas secondaires.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

ALTER DATABASE database_name
   SET HADR 
   {
        { AVAILABILITY GROUP = group_name | OFF }
   | { SUSPEND | RESUME }
   }
;

Arguments

  • database_name
    Nom de la base de données secondaire à modifier.

  • SET HADR
    Exécute la commande Groupes de disponibilité AlwaysOn spécifiée sur le serveur spécifié.

  • { AVAILABILITY GROUP **=**group_name | OFF }
    Joint ou supprime la base de données de disponibilité dans le groupe de disponibilité spécifié, comme suit :

    • group_name
      Attache la base de données spécifiée sur le réplica secondaire hébergé par l'instance de serveur sur laquelle vous exécutez la commande sur le groupe de disponibilité spécifié par group_name.

      Les conditions préalables requises à cette opération sont les suivantes :

      • La base de données doit déjà avoir été ajoutée au groupe de disponibilité sur le réplica principal.

      • Le réplica principal doit être actif. Pour plus d'informations sur la façon de dépanner un réplica principal inactif, consultez Résolution des problèmes de configuration des groupes de disponibilité AlwaysOn (SQL Server).

      • Le réplica principal doit être en ligne et le réplica secondaire doit être connecté au réplica principal.

      • La base de données secondaire doit avoir été restaurée à l'aide de WITH NORECOVERY à partir de sauvegardes de base de données et de fichiers journaux récente de la base de données primaire, avec une dernière sauvegarde de fichier journal suffisamment récente pour permettre à la base de données secondaire de rattraper la base de données primaire.

        [!REMARQUE]

        Pour ajouter une base de données au groupe de disponibilité, connectez-vous à l'instance de serveur qui héberge le réplica principal, puis utilisez l'instruction ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name.

      Pour plus d'informations, consultez Joindre une base de données secondaire à un groupe de disponibilité (SQL Server).

    • OFF
      Supprime la base de données secondaire spécifiée du groupe de disponibilité spécifié.

      La suppression d'une base de données secondaire peut être utile si elle est trop éloignée de la base de données primaire et que vous ne souhaitez pas attendre que la base de données secondaire rattrape son retard. Après avoir supprimé la base de données secondaire, vous pouvez la mettre à jour en restaurant une séquence de sauvegardes se terminant par une sauvegarde récente des fichiers journaux (à l'aide de RESTORE… WITH NORECOVERY).

      Important

      Pour supprimer complètement une base de données d'un groupe de disponibilité, connectez-vous à l'instance de serveur qui héberge le réplica principal, puis utilisez l'instruction ALTER AVAILABILITY GROUP group_name REMOVE DATABASE availability_database_name. Pour plus d'informations, consultez Supprimer une base de données primaire d'un groupe de disponibilité (SQL Server).

  • SUSPEND
    Suspend le déplacement des données sur une base de données secondaire. Une commande SUSPEND retourne dès qu'elle est acceptée par le réplica qui héberge la base de données cible, mais en réalité, l'interruption de la base de données se produit de façon asynchrone.

    L'étendue de l'impact dépend de l'emplacement où vous exécutez l'instruction ALTER DATABASE :

    • Si vous suspendez une base de données secondaire sur un réplica secondaire, seule la base de données secondaire locale est suspendue. Les connexions existantes sur le réplica secondaire accessible en lecture restent utilisables. Les nouvelles connexions à la base de données suspendue sur le réplica secondaire accessible en lecture ne sont pas autorisées tant que le déplacement des données n'a pas repris.

    • Si vous suspendez une base de données sur le réplica principal, le déplacement des données est suspendu vers les bases de données secondaires correspondantes sur chaque réplica secondaire. Les connexions existantes sur un réplica secondaire accessible en lecture restent utilisables et de nouvelles connexions peuvent être établies.

    • Lorsque le déplacement des données est suspendu en raison d'un basculement manuel forcé, les connexions au nouveau réplica secondaire ne sont pas autorisées pendant que le déplacement des données est suspendu.

    Lorsqu'une base de données sur un réplica secondaire est suspendue, la base de données et le réplica deviennent désynchronisés et sont marquées comme NOT SYNCHRONIZED.

    Important

    Lorsqu'une base de données secondaire est suspendue, la file d'attente d'envoi de la base de données primaire correspondante accumule des enregistrements du journal des transactions non envoyés. Les connexions au réplica secondaire retournent des données qui étaient disponibles lorsque le déplacement des données a été suspendu.

    Pour plus d'informations, consultez Interrompre une base de données de disponibilité (SQL Server).

  • RESUME
    Reprend le déplacement des données suspendu sur la base de données secondaire spécifiée. Une commande RESUME retourne dès qu'elle est acceptée par le réplica qui héberge la base de données cible, mais en réalité, la reprise de la base de données se produit de façon asynchrone.

    L'étendue de l'impact dépend de l'emplacement où vous exécutez l'instruction ALTER DATABASE :

    • Si vous reprenez une base de données secondaire sur un réplica secondaire, seule la base de données secondaire locale est reprise. Le déplacement des données est repris, à moins que la base de données ait également été suspendue sur le réplica principal.

    • Si vous reprenez une base de données sur le réplica principal, le déplacement des données est repris vers chaque réplica secondaire sur lequel la base de données secondaire correspondante n'a pas été suspendue localement. Pour reprendre une base de données secondaire qui a été individuellement suspendue sur un réplica secondaire, connectez-vous à l'instance de serveur qui héberge le réplica secondaire et reprenez la base de données à cet endroit.

      En mode de validation synchrone, l'état de la base de données devient SYNCHRONIZING. Si aucune autre base de données n'est actuellement suspendue, l'état du réplica devient également SYNCHRONIZING.

      Pour plus d'informations, consultez Reprendre une base de données de disponibilité (SQL Server).

États d'une base de données

Lorsqu'une base de données secondaire est attachée à un groupe de disponibilité, le réplica secondaire local modifie l'état de cette base de données secondaire de RESTORING à ONLINE. Si une base de données secondaire est supprimée du groupe de disponibilité, le réplica secondaire local la fait repasser à l'état RESTORING. Cela vous permet d'appliquer des sauvegardes de journaux ultérieures depuis la base de données primaire vers cette base de données secondaire.

Restrictions

Exécutez les instructions ALTER DATABASE en dehors des transactions et des traitements.

Sécurité

Autorisations

Exige l'autorisation ALTER sur la base de données. La jointure d'une base de données à un groupe de disponibilité nécessite le rôle de base de données fixe db_owner.

Exemples

L'exemple suivant joint la base de données secondaire, AccountsDb1, au réplica secondaire local du groupe de disponibilité AccountsAG.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;

[!REMARQUE]

Pour consulter cette instruction Transact-SQL utilisée dans le contexte, consultez Créer un groupe de disponibilité (Transact-SQL).

Voir aussi

Référence

ALTER DATABASE (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

CREATE AVAILABILITY GROUP (Transact-SQL)

Concepts

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

Résoudre des problèmes de configuration des groupes de disponibilité AlwaysOn (SQL Server)