Après avoir activé la répartition lecture/écriture sur une instance ApsaraDB RDS for MySQL (édition Haute Disponibilité), exécutez des requêtes de test via le proxy de base de données et consultez les journaux SQL Explorer et Audit pour confirmer que les requêtes en lecture atteignent l'instance en lecture seule et que les requêtes en écriture atteignent l'instance principale.
Ce guide utilise une instance Elastic Compute Service (ECS) connectée à l'instance RDS via un réseau interne.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Une instance RDS principale exécutant l'édition Haute Disponibilité RDS
Une instance RDS en lecture seule créée pour l'instance principale
Au moins une base de données contenant au moins une table, ainsi qu'un compte de test (standard ou privilégié) sur l'instance RDS — voir Créer des comptes et des bases de données
Une liste d'autorisation d'adresses IP configurée pour l'instance RDS
L'instance ECS dans le même VPC que l'instance RDS, avec un client MySQL installé
La fonctionnalité de proxy de base de données activée pour l'instance RDS
La fonctionnalité SQL Explorer et Audit activée pour l'instance RDS
Si vous utilisez un compte standard, accordez-lui les autorisations Read/Write (DDL + DML) sur la base de données cible. Ce guide utilise la base de données exempletestdb01, la tableproductset le compte de testcxx1.
Fonctionnement
Le proxy de base de données intercepte toutes les requêtes envoyées à son endpoint et les achemine selon la configuration des poids de lecture : les opérations d'écriture sont dirigées vers l'instance principale, tandis que les opérations de lecture sont envoyées aux instances en lecture seule selon les poids définis.
En définissant le poids de l'instance en lecture seule sur une valeur non nulle et celui de l'instance principale sur 0, vous forcez tout le trafic de lecture vers l'instance en lecture seule. Cette configuration rend le comportement de routage observable : toute instruction SELECT que vous exécutez n'apparaîtra que dans les journaux SQL Explorer de l'instance en lecture seule, et non dans ceux de l'instance principale.
Étapes de vérification
Étape 1 : Définir les poids de lecture
Connectez-vous à la console ApsaraDB RDS et accédez à la page Instances. Sélectionnez la région de l'instance principale, puis cliquez sur son ID d'instance.
Dans le volet de navigation de gauche, cliquez sur Database Proxy. Dans la section Connection Information, repérez l'endpoint du proxy à configurer.
Cliquez sur Modify Configuration dans la colonne Actions.
-
Dans la boîte de dialogue, définissez les paramètres suivants, puis cliquez sur OK.
Paramètre Valeur Read/Write Attributes Read/Write (Read/Write Splitting) Read Weight Allocation Custom Poids de l'instance en lecture seule 10000Poids de l'instance principale 0 Dans la section Connection Information, copiez l'endpoint du proxy de type VPC. Vous l'utiliserez pour vous connecter depuis l'instance ECS.
Étape 2 : Exécuter des opérations de lecture via le proxy
Connectez-vous à l'instance ECS. Pour obtenir des instructions, consultez la rubrique Se connecter à une instance.
-
Connectez-vous à l'instance RDS via l'endpoint du proxy de base de données :
Espace réservé Description <proxy-endpoint>L'endpoint du proxy de type VPC obtenu à l'étape 1. Utilisez un endpoint de proxy public si la connexion s'effectue depuis l'extérieur du VPC. <port>Le numéro de port du proxy <username>Le nom du compte de test (par exemple, cxx1)<password>Le mot de passe du compte. Saisissez-le directement après -psans espace, ou omettez-le et saisissez-le lorsqu'il vous est demandé afin d'éviter de l'exposer en clair.mysql -h<proxy-endpoint> -P<port> -u<username> -p<password> -
Basculez vers la base de données de test :
USE testdb01; -
Exécutez l'instruction SELECT suivante six fois :
SELECT * FROM products LIMIT 20;
Étape 3 : Exécuter des opérations d'écriture via le proxy
Dans la même session, exécutez l'instruction CREATE TABLE suivante trois fois :
CREATE TABLE Products11 (
prod_id CHAR(10) NOT NULL,
vend_id CHAR(10) NOT NULL,
prod_name CHAR(254) NOT NULL,
prod_price DECIMAL(8,2) NOT NULL,
prod_desc VARCHAR(1000) NULL
);
Étape 4 : Vérifier les résultats de routage dans SQL Explorer et Audit
Consultez les journaux SQL sur les deux instances pour confirmer que chaque requête a été acheminée vers l'instance appropriée.
Vérifiez l'instance principale : aucun enregistrement SELECT ne doit apparaître.
Dans le volet de navigation de gauche de la page des détails de l'instance principale, choisissez Autonomy Services > SQL Explorer and Audit.
Sélectionnez une plage horaire couvrant votre test, puis cliquez sur Query.
Confirmez qu'aucun enregistrement d'instruction SELECT n'apparaît. Les enregistrements CREATE TABLE doivent être présents.
Vérifiez l'instance en lecture seule : six enregistrements SELECT doivent apparaître.
Dans le volet de navigation de gauche de la page des détails de l'instance principale, cliquez sur Basic Information. Dans la section Instance Distribution, survolez le compteur situé à côté de Read-only Instance et cliquez sur l'ID de l'instance en lecture seule.
Dans le volet de navigation de gauche de l'instance en lecture seule, choisissez Autonomy Services > SQL Explorer and Audit.
Sélectionnez la même plage horaire et cliquez sur Query. Confirmez que six enregistrements d'instructions SELECT apparaissent.

Vérifiez à nouveau l'instance principale : trois enregistrements CREATE TABLE doivent apparaître.
Dans le volet de navigation de gauche de la page des détails de l'instance principale, choisissez Autonomy Services > SQL Explorer and Audit. Sélectionnez la même plage horaire et cliquez sur Query. Les trois enregistrements d'instructions CREATE TABLE doivent apparaître.
Conclusion de la vérification
Avec le poids de l'instance en lecture seule défini sur 10000 et celui de l'instance principale sur 0 :
Toutes les requêtes d'écriture (CREATE TABLE) sont traitées par l'instance principale
Toutes les requêtes de lecture (SELECT) sont traitées par l'instance en lecture seule
Cela confirme que la répartition lecture/écriture fonctionne correctement.