Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS - Amazon Relational Database Service

Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS

Vous utilisez généralement des réplicas en lecture pour configurer la réplication entre instances de base de données Amazon RDS. Pour obtenir des informations générales sur les réplicas en lecture, veuillez consulter Utilisation des réplicas en lecture.

Cette section contient des informations spécifiques sur l'utilisation des réplicas en lecture sur Amazon RDS pour SQL Server.

Configuration des réplicas en lecture pour SQL Server

Avant qu'une instance de base de données puisse être utilisée comme instance source pour la réplication, vous devez activer les sauvegardes automatiques sur l'instance de base de données source. Pour cela, vous devez définir la période de rétention des sauvegardes sur une valeur autre que 0. L'instance de base de données source doit être un déploiement Multi-AZ avec groupes de disponibilité Always On. Pour définir ce type de déploiement, l'activation des sauvegardes automatiques doit également être effective.

La création d'un réplica en lecture SQL Server ne nécessite pas d'arrêt de l'instance de base de données principale. Amazon RDS définit les paramètres et autorisations nécessaires pour l'instance de base de données source et le réplica en lecture sans interruption de service. Un instantané de l'instance de base de données source est pris, et devient le réplica en lecture. Aucune interruption de service ne se produit lorsque vous supprimez un réplica en lecture.

Vous pouvez créer jusqu'à cinq réplicas en lecture à partir d'une seule instance de base de données source. Pour que la réplication fonctionne efficacement, nous vous recommandons de configurer chaque réplica en lecture avec la même quantité de ressources de calcul et de stockage que l'instance de base de données source. Si vous mettez à l'échelle l'instance de base de données source, faites-le également pour les réplicas en lecture.

La version du moteur de base de données SQL Server de l'instance de base de données source et de tous ses réplicas en lecture doit être identique. Amazon RDS met à niveau la base de données principale immédiatement après la mise à niveau des réplicas en lecture, indépendamment de la fenêtre de maintenance. Pour de plus amples informations sur la mise à niveau de la version du moteur de base de données, veuillez consulter la section Mise à niveau du moteur de base de données Microsoft SQL Server.

Pour qu'un réplica en lecture reçoive et applique les modifications de la source, il doit disposer de ressources de calcul et de stockage suffisantes. Si un réplica en lecture atteint sa capacité en ce qui concerne les ressources de calcul, de réseau ou de stockage, il arrête de recevoir ou d'appliquer les modifications provenant de sa source. Vous pouvez modifier les ressources de stockage et d'UC d'un réplica en lecture indépendamment de sa source et d'autres réplicas en lecture.

Limites des réplicas en lecture avec SQL Server

Les limites suivantes s'appliquent aux réplicas en lecture SQL Server sur Amazon RDS :

  • Les réplicas en lecture sont uniquement disponibles sur le moteur SQL Server Enterprise Edition (EE).

  • Les réplicas en lecture sont disponibles pour SQL Server versions 2016–2019.

  • L'instance de base de données source à répliquer doit être un déploiement multi-AZ avec des groupes de disponibilité Always On.

  • Les réplicas en lecture sont uniquement disponibles pour les instances de base de données de la plateforme EC2-VPC.

  • Les réplicas en lecture sont uniquement disponibles pour les instances de base de données exécutées sur les classes d'instances de base de données avec quatre vCPU ou plus.

  • Les éléments suivants ne sont pas pris en charge sur Amazon RDS pour SQL Server :

    • Création d'un réplica en lecture dans une autre région AWS (réplica en lecture entre régions)

    • Rétention des sauvegardes des réplicas en lecture

    • Restauration à un instant dans le passé à partir de réplicas en lecture

    • Instantanés manuels de réplicas en lecture

    • Réplicas en lecture multi-AZ

    • Création de réplicas en lecture à partir de réplicas en lecture

    • Synchronisation des connexions utilisateur pour lire les réplicas en lecture

  • Amazon RDS pour SQL Server n'intervient pas pour atténuer un retard de réplica élevé entre une instance de base de données source et ses réplicas en lecture. Assurez-vous que l'instance de base de données et ses réplicas en lecture ont une taille appropriée, en termes de puissance de calcul et de stockage, afin de pouvoir répondre aux besoins de la charge opérationnelle.

  • Un réplica en lecture SQL Server appartient au même groupe d'options que l'instance de base de données source. Les modifications apportées au groupe d'options source ou à l'appartenance au groupe d'options source sont propagées aux réplicas en lecture. Ces modifications sont appliquées aux réplicas en lecture immédiatement après leur application à l'instance de base de données source, quelle que soit la fenêtre de maintenance du réplica en lecture.

    Pour de plus amples informations sur les groupes d'options, veuillez consulter Utilisation de groupes d'options.

Résolution d'un problème de réplica en lecture SQL Server

Vous pouvez surveiller le retard de réplication dans Amazon CloudWatch en consultant la métrique Amazon RDS ReplicaLag. Pour de plus amples informations sur la durée du retard de réplication, veuillez consulter Supervision de la réplication en lecture.

Si le retard de réplication est trop long, vous pouvez utiliser la requête suivante pour obtenir des informations sur le retard

SELECT AR.replica_server_name , DB_NAME (ARS.database_id) 'database_name' , AR.availability_mode_desc , ARS.synchronization_health_desc , ARS.last_hardened_lsn , ARS.last_redone_lsn , ARS.secondary_lag_seconds FROM sys.dm_hadr_database_replica_states ARS INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id --WHERE DB_NAME(ARS.database_id) = 'database_name' ORDER BY AR.replica_server_name;