web-dev-qa-db-fra.com

Problème avec l'ajout d'une base de données à un groupe de disponibilité

J'ai un problème avec un AG particulier où j'ajoute une base de données (test123 ci-dessous) à l'AG et sur primaire, il affichera tout OK comme suit:

enter image description here

Cependant, sur le secondaire, il s'affiche avec un point d'exclamation comme suit et n'est pas ajouté à la liste des bases de données sur l'instance secondaire:

enter image description here

Je vois également ce message dans le journal des erreurs:

Impossible d'accéder à la base de données de disponibilité 'test123' car le réplica de la base de données n'est pas dans le rôle PRIMARY ou SECONDARY. Les connexions à une base de données de disponibilité sont autorisées uniquement lorsque le réplica de la base de données a le rôle PRIMARY ou SECONDARY. Recommencez l'opération plus tard. Les transactions non qualifiées sont annulées dans la base de données test123 pour un changement d'état des groupes de disponibilité Always On. Estimation de la restauration: 100%. Il s'agit d'un message d'information uniquement. Aucune action de l'utilisateur n'est requise.

J'utilise l'amorçage automatique pour remplir la base de données sur le secondaire.

J'ai ajouté le même DB à un AG différent et ce problème ne se produit pas et il a été ajouté avec succès.

La base de données est en modèle de récupération complète et une sauvegarde complète a également été effectuée et elle remplit les conditions préalables. AG et l'auditeur ont l'air bien, des idées quelle peut être la cause de cela?

2
user1930901

Impossible d'accéder à la base de données de disponibilité 'test123' car le réplica de la base de données n'est pas dans le rôle PRIMARY ou SECONDARY. Les connexions à une base de données de disponibilité sont autorisées uniquement lorsque le réplica de la base de données a le rôle PRIMARY ou SECONDARY.

Vous avez signalé que la base de données ne s'affichait pas sous le dossier des bases de données lors de l'affichage de votre instance secondaire avec SSMS.

Si vous avez actualisé et qu'il n'était toujours pas là, cela signifie que la base de données n'existe pas. La raison serait/pourrait être que quelque chose s'est mal passé avec l'ensemencement automatique.

Vous devriez essayer d'exécuter ces commandes sur l'instance secondaire:

ALTER AVAILABILITY GROUP [agname] JOIN; 
GO 
ALTER AVAILABILITY GROUP [agname] GRANT CREATE ANY DATABASE; 
GO 

Après cela, vous devez réessayer l'amorçage automatique et valider que la base de données a été créée et entièrement amorcée sur l'instance secondaire.

Pour valider le processus d'amorçage automatique, vous pouvez utiliser le sys.dm_hadr_automatic_seeding DMV.

SELECT start_time,
    ag.name,
    db.database_name,
    current_state,
    performed_seeding,
    failure_state,
    failure_state_desc
FROM sys.dm_hadr_automatic_seeding autos 
    JOIN sys.availability_databases_cluster db 
        ON autos.ag_db_id = db.group_database_id
    JOIN sys.availability_groups ag 
        ON autos.ag_id = ag.group_id;

Source

1
Randi Vertongen