Les pools de lecture Cloud SQL sont compatibles avec l'équilibrage de charge pour vos charges de travail de lecture importantes.
Que sont les pools de lecture ?
Un pool de lecture est un ensemble d'instances répliquées avec accès en lecture utilisé pour distribuer vos charges de travail de lecture importantes. 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 mettre à l'échelle votre pool de lecture de plusieurs manières :
- Scaling à la hausse ou à la baisse : mettez à l'échelle la capacité d'équilibrage de charge horizontalement en modifiant le nombre de nœuds de pool de lecture dans le pool de lecture. Chaque pool de lecture est compatible avec 1 à 7 nœuds de pool de lecture.
- Scaling à la hausse ou à la baisse : mettez à l'échelle la capacité d'équilibrage de charge verticalement 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 de pool de lecture du pool de lecture.
Lorsque vous modifiez les paramètres des nœuds de pool de lecture, tels que le stockage, la connectivité ou les indicateurs de configuration de la base de données, les modifications sont automatiquement appliquées de manière uniforme à chaque nœud de pool de lecture du pool de lecture.
Accéder à un pool de lecture via un point de terminaison de lecture unique
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 de pool de lecture. Lorsque vous souhaitez que le pool de lecture soit mis à l'échelle à la hausse ou effectuer un scaling horizontal, les applications précédemment connectées à ce point de terminaison de lecture unique n'ont pas besoin d'être reconfigurées, même si vous pouvez créer de nouveaux nœuds de pool de lecture dans le pool de lecture ou supprimer les précédents.
Chaque nœud de pool de lecture possède également sa propre adresse IP. Bien que cette approche ne soit pas recommandée pour accéder à 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 de pool de lecture (adresses IP ou chaîne de connexion), consultez Afficher les informations du pool de lecture.
Réplication
La réplication du pool de lecture Cloud SQL est mise en œuvre à l'aide de groupes de disponibilité de scaling de lecture SQL Server.
Pour en savoir plus, consultez À propos de la réplication.
Caractéristiques du pool de lecture
Les caractéristiques suivantes s'appliquent :
- Un pool de lecture comportant au moins deux nœuds est couvert par le contrat de niveau de service.
- Les nœuds de pool de lecture du pool de lecture résident toujours dans la même région, comme spécifié par l'utilisateur. Google Cloud Les nœuds de pool de lecture alternent 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 à une seconde :
- Scaling à la hausse ou à la baisse (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).
- Conversion d'une instance répliquée zonale existante avec accès en lecture en pool de lecture.
- Un pool de lecture est soumis à 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 à une 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 répliquée avec accès en lecture Cloud SQL.
- Lorsque vous utilisez
gcloudou la Google Cloud console pour décrire les détails d'un projet, le nom du pool de lecture est affiché, mais pas les noms des nœuds de pool de lecture individuels.
Limites
Les limites suivantes s'appliquent :
- Les pools de lecture ne sont disponibles que pour les instances 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 créer un maximum de sept instances répliquées avec accès en lecture par instance principale. Cette valeur peut inclure n'importe quel nombre combiné d'instances répliquées avec accès en lecture et de nœuds de pool de lecture sous une instance de pool de lecture. Par exemple, une instance principale peut comporter deux instances répliquées avec accès en lecture et un pool de lecture distinct de cinq instances répliquées avec accès en lecture (nœuds de pool de lecture).
- L'autoscaling du pool de lecture n'est pas compatible avec les instances SQL Server.
- 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 en cascade.
- Le trafic est diffusé à partir des nœuds de pool de lecture en fonction de l'état de la base de données sain, mais quel que soit le délai de réplication sur ce nœud de 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 nœud 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 en cours d'exécution et peut répondre aux requêtes, mais il n'existe aucune exigence concernant la fraîcheur des données diffusées.
- Aucune garantie n'est donnée concernant une session logique unique se connectant à plusieurs nœuds de pool de lecture dans le pool de lecture. Il est possible que des requêtes ultérieures d'une session se connectent à un nœud de pool de lecture dont la position de réplication est inférieure à celle du nœud de pool de lecture qui a diffusé une requête antérieure, ce qui peut entraîner un retour en arrière de l'état de la base de données.
- Les types de mises à jour suivants ne sont pas compatibles :
- Bien que les pools de lecture reçoivent toujours les mises à jour de maintenance Cloud SQL, vous ne pouvez pas mettre à jour votre pool de lecture ni son instance principale associée vers une nouvelle version majeure de la base de données.
- Démarrage ou arrêt des nœuds du pool de lecture.
- En plus des opérations non 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 :
- Activer et désactiver la réplication
- Active Directory géré par le client
- Managed Microsoft AD
- Promouvoir une instance répliquée
- Redémarrer
- Importer
- Exporter
- Basculement
- Rechiffrer
- Cloner
- Les certificats SSL/TLS avec une autorité de certification partagée ou une autorité de certification 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 être répliqué 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 mettez à l'échelle un pool de lecture, vous devez attendre la fin des opérations précédentes de création de pool,
de scaling à la baisse ou de effectuer un scaling horizontal associées au pool de lecture. Cette
restriction s'applique à tout autre pool de lecture associé à la même instance principale. Si vous souhaitez mettre à l'échelle plusieurs pools de lecture associés à la même
instance principale, vous devez attendre la fin des opérations de scaling associées au
premier pool de lecture avant de commencer à mettre à l'échelle le 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 de pool de lecture peuvent présenter différents niveaux de délai de réplication, ce qui peut entraîner des lectures incohérentes. Si votre application nécessite une cohérence de lecture élevée, nous vous recommandons de mettre à l'échelle verticalement 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 de pool de lecture dans les conditions suivantes
conditions :
- Lorsque l'instance est hors service.
- 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 de 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, bien que cette liste ne soit pas exhaustive :
- Réparation d'un pool de lecture.
- Conversion d'une instance répliquée avec accès en lecture en pool de 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, l'identifiant n'est pas répliqué sur le nouveau nœud de pool de lecture.
- Conversion d'un pool de 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 :
- Identifiants.
- Configuration du serveur lié.
- Fichiers d'audit de base de données créés par l'audit SQL Server.
- Sessions 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 des certificats TDE à partir de l'instance principale. Les certificats TDE sont 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 compatibles. Importez toujours le certificat TDE à partir de l'instance principale.