À propos des pools de lecture

Les pools de lecture Cloud SQL sont compatibles avec l'équilibrage de charge pour vos charges de travail de lecture volumineuses.

Que sont les pools de lecture ?

Un pool de lecture est un ensemble d'instances répliquées avec accès en lecture utilisées pour répartir vos charges de travail de lecture volumineuses. Ces charges de travail peuvent être redirigées de l'instance principale vers le pool de lecture afin de réduire la charge sur l'instance principale.

Chaque instance répliquée avec accès en lecture du pool de lecture est appelée nœud de pool de lecture.

Vous pouvez effectuer le scaling de votre pool de lecture de plusieurs manières :

  • Effectuer un scaling horizontal : effectuez un scaling horizontal de la capacité d'équilibrage de charge en modifiant le nombre de nœuds du pool de lecture. Chaque pool de lecture accepte entre un et sept nœuds de pool de lecture.
  • Effectuer un scaling à la hausse ou à la baisse : effectuez un scaling vertical de la capacité d'équilibrage de charge en modifiant le type de machine associé à un nœud de pool de lecture. Une fois définie, la configuration est appliquée de manière uniforme à chaque nœud du pool de lecture.

Lorsque vous modifiez les paramètres des nœuds d'un pool de lecture, tels que le stockage, la connectivité ou les options de configuration de la base de données, les modifications sont automatiquement appliquées de manière uniforme à chaque nœud du pool de lecture.

Accéder à un pool de lecture via un seul point de terminaison de lecture

Le pool de lecture est accessible via un point de terminaison de lecture unique avec une adresse IP immuable. Les connexions établies via le point de terminaison sont automatiquement redirigées vers l'un des nœuds du pool de lecture. Lorsque vous souhaitez effectuer un scaling horizontal ou vertical du pool de lecture, les applications qui étaient auparavant connectées à ce point de terminaison de lecture unique n'ont pas besoin d'être reconfigurées, même si vous pouvez créer des nœuds de pool de lecture dans le pool de lecture ou supprimer les précédents.

Chaque nœud du pool de lecture possède également sa propre adresse IP. Bien que cette approche ne soit pas recommandée pour accéder efficacement à vos données, vous pouvez utiliser ces adresses IP pour résoudre les problèmes de performances des nœuds de pool de lecture individuels.

Pour en savoir plus sur la récupération des informations de connexion du pool de lecture ou des nœuds du pool de lecture (adresses IP ou chaîne de connexion), consultez Afficher les informations sur le pool de lecture.

Réplication

La réplication du pool de lecture Cloud SQL est implémentée à l'aide de groupes de disponibilité de scaling en lecture SQL Server.

Pour en savoir plus, consultez À propos de la réplication.

Autoscaling du pool de lecture

Vous pouvez configurer votre pool de lecture pour qu'il se redimensionne automatiquement afin de s'adapter aux besoins changeants de votre application en termes de charge de travail. Pour en savoir plus, consultez Autoscaling du pool de lecture.

Caractéristiques du pool de lecture

Les caractéristiques suivantes s'appliquent :

  • Les pools de lecture ne disposent pas d'une API unique compatible avec Cloud SQL. Toute opération de création, de configuration ou d'affichage d'un pool de lecture est effectuée à l'aide de l'API d'instance Cloud SQL.

    Par exemple, lorsque vous utilisez gcloud CLI pour créer un pool de lecture, vous utilisez la commande gcloud sql instances create. De même, pour vérifier le nombre de nœuds de pool de lecture configurés sur un pool de lecture, utilisez la commande gcloud sql instances describe.

  • Un pool de lecture comportant au moins deux nœuds est couvert par le contrat de niveau de service (SLA).
  • Les nœuds du pool de lecture résident toujours dans la même région, comme spécifié par l'utilisateur. Google Cloud alterne la résidence des nœuds du pool de lecture entre toutes les zones de la région.
  • Une instance principale peut comporter un ou plusieurs pools de lecture.
  • Les opérations suivantes entraînent un temps d'arrêt inférieur à la seconde :
    • Scaling horizontal (ajout ou suppression de nœuds de pool de lecture)
    • Scaling à la hausse ou à la baisse (modification du type de machine des nœuds du pool)
    • Convertir une instance répliquée zonale avec accès en lecture existante en un pool avec accès en lecture.
  • Un pool de lecture fait l'objet d'une maintenance avant son instance principale, comme les instances répliquées avec accès en lecture. Comme les instances répliquées avec accès en lecture, les pools de lecture sont soumis à des opérations de maintenance pendant l'intervalle de maintenance de l'instance principale.
  • Chaque nœud de pool de lecture dispose des mêmes métriques qu'une instance dupliquée avec accès en lecture Cloud SQL.
  • Lorsque vous utilisez gcloud ou la console Google Cloud pour décrire les détails d'un projet, le nom du pool de lecture est listé, mais pas les noms des nœuds de pool de lecture individuels.

Nombre maximal de nœuds de pool de lecture par instance principale

Vous pouvez attribuer jusqu'à sept instances répliquées avec accès en lecture par instance principale.

Le nombre combiné d'instances répliquées avec accès en lecture et de nœuds de pool de lecture répliqués à partir de la même instance principale ne peut pas dépasser sept.

Calculer le nombre maximal de nœuds de pool de lecture par instance principale

Conceptuellement, vous pouvez considérer une instance répliquée avec accès en lecture comme un nœud de pool de lecture unique.

Vous pouvez convertir une instance répliquée avec accès en lecture en un pool avec accès en lecture, puis modifier le nombre de nœuds du pool avec accès en lecture pour qu'il soit supérieur à un.

Vous pouvez ensuite attribuer l'autoscaling au pool de lecture afin que le nombre de nœuds du pool de lecture s'ajuste de manière dynamique à la hausse ou à la baisse pour répondre aux besoins de la charge de travail.

Lorsque l'autoscaling est activé sur un pool de lecture, vous devez indiquer un nombre maximal de nœuds valide pour le pool de lecture. Ce nombre, combiné au nombre d'instances répliquées avec accès en lecture existantes qui sont répliquées à partir de la même instance principale, ou de nœuds de pool de lecture appartenant à d'autres pools de lecture qui sont répliqués à partir de la même instance principale, ne peut pas dépasser sept.

Par exemple, si une instance principale comporte deux instances dupliquées avec accès en lecture, un pool de lecture avec deux nœuds de pool de lecture et un deuxième pool de lecture avec l'autoscaling activé, le nombre maximal de nœuds de pool de lecture pour le deuxième pool de lecture ne peut pas être supérieur à trois.

Pour en savoir plus, consultez Autoscaling du pool de lecture.

Limites

Les limites suivantes s'appliquent :

  • Les pools de lecture ne sont disponibles que pour les instances de l'édition Cloud SQL Enterprise Plus sur la nouvelle architecture réseau. L'instance principale associée à un pool de lecture doit également être une instance Cloud SQL Enterprise Plus.
  • Vous pouvez attribuer jusqu'à sept instances répliquées avec accès en lecture par instance principale. Pour en savoir plus, consultez Nombre maximal de nœuds.
  • La reprise après sinistre avancée n'est pas compatible avec les pools de lecture. Les instances principales ne peuvent pas utiliser à la fois des pools de lecture et des instances répliquées pour cascade.
  • Le trafic est diffusé à partir des nœuds du pool de lecture selon que la base de données est opérationnelle ou non, mais quel que soit le délai de réplication sur ce nœud du pool de lecture. Le trafic peut être diffusé à partir d'un nœud de pool de lecture en retard, même si un autre nœud de pool de lecture est disponible et n'est pas en retard. Une base de données est considérée comme opérationnelle si le processus de base de données est actif et peut répondre aux requêtes, mais il n'y a aucune exigence quant à l'actualisation des données diffusées.
  • Il n'est pas garanti qu'une seule session logique se connecte à plusieurs nœuds du pool de lecture.
  • Les types de mises à jour suivants ne sont pas acceptés :
    • Bien que les pools de lecture continuent de recevoir les mises à jour de maintenance Cloud SQL, vous ne pouvez pas mettre à jour votre pool de lecture ou l'instance principale associée vers une nouvelle version majeure de la base de données.
    • Démarrer ou arrêter des nœuds du pool de lecture.
  • En plus des opérations qui ne sont pas compatibles avec les instances répliquées avec accès en lecture, les opérations suivantes ne sont pas compatibles avec les pools de lecture :
  • Les certificats SSL/TLS avec une autorité de certification partagée ou gérée par le client ne peuvent pas être utilisés avec un pool de lecture.
  • Un pool de lecture ne peut pas être répliqué vers une autre instance, par exemple une instance répliquée en cascade ou un autre pool de lecture.
  • Un pool de lecture doit effectuer une réplication directement à partir d'une instance principale. Il ne peut pas s'agir d'une instance répliquée en cascade.
  • Lorsque vous créez ou effectuez un scaling d'un pool de lecture, vous devez attendre que les opérations précédentes de création de pool, de scaling horizontal ou de effectuer un scaling horizontal associées au pool de lecture soient terminées. Cette restriction s'applique à tout autre pool de lecture associé à la même instance principale. Si vous souhaitez effectuer un scaling de plusieurs pools de lecture associés à la même instance principale, vous devez attendre que les opérations de scaling associées au premier pool de lecture soient terminées avant de commencer à effectuer un scaling du pool de lecture suivant. Si vous émettez des requêtes simultanées, vous pouvez recevoir l'erreur suivante : Operation failed because another operation was already in progress..
  • Seule une instance répliquée zonale située dans la même région que l'instance principale peut être convertie pour être utilisée dans un pool de lecture.
  • Les nœuds du pool de lecture peuvent connaître des niveaux de délai de réplication variables, ce qui peut entraîner des lectures incohérentes. Si votre application nécessite une cohérence de lecture élevée, nous vous recommandons d'effectuer un scaling vertical d'une seule instance répliquée avec accès en lecture au lieu d'utiliser un pool de lecture.
  • Cloud SQL répare automatiquement les nœuds du pool de lecture dans les conditions suivantes :
    • Lorsque l'instance est indisponible.
    • Lorsque la réplication est interrompue.

    Dans ces scénarios, si vous créez des identifiants supplémentaires à partir de l'instance principale, vous ne pourrez pas vous connecter à l'aide de ces identifiants une fois le nœud du pool de lecture recréé. Assurez-vous que l'identifiant que vous utilisez pour le point de terminaison de lecture est disponible à partir de l'instance principale.

  • Microsoft n'est pas compatible avec la réplication d'objets serveur.

    Tous les objets au niveau du serveur que vous créez sur une instance répliquée avec accès en lecture doivent également être créés et gérés sur l'instance principale. Ces objets ne sont pas répliqués automatiquement.

    Ce comportement s'applique dans les scénarios suivants (liste non exhaustive) :

    • Réparation d'un pool de lecture…
    • Convertir une instance répliquée avec accès en lecture en un pool avec accès en lecture.
      • Les objets au niveau du serveur, tels que les identifiants, deviennent inaccessibles.
      • Si vous créez un identifiant qui existe sur l'instance répliquée avec accès en lecture d'origine, mais pas sur l'instance principale, il n'est pas répliqué sur le nouveau nœud du pool de lecture.
    • Convertir un pool avec accès en lecture en instance répliquée avec accès en lecture.
      • Si vous créez un identifiant sur un pool de lecture et non sur l'instance principale, puis que vous désactivez le pool de lecture, l'identifiant n'existe plus.

    Voici quelques exemples d'objets au niveau du serveur qui ne sont pas répliqués :

    • Connexions.
    • Configuration du serveur associé.
    • Fichiers d'audit de base de données créés par l'audit SQL Server.
    • XEvents et leurs paramètres de configuration.

    Pour en savoir plus, consultez la documentation Microsoft.

  • Le certificat de chiffrement transparent des données (TDE) est bloqué pour les opérations d'importation et d'exportation.
  • Vous devez toujours importer et exporter les certificats TDE depuis l'instance principale. Les certificats TDE seront automatiquement répliqués sur toutes les instances répliquées avec accès en lecture du pool de lecture, quel que soit le type d'instance répliquée.
  • Les opérations d'importation et d'exportation TDE ne sont pas acceptées. Importez toujours le certificat TDE à partir de l'instance principale.

Étapes suivantes