En este tema se describe cómo comprobar la división de lectura y escritura en una instancia de ApsaraDB RDS for MySQL que ejecuta RDS High-availability Edition. Para ello, se conecta una instancia de Elastic Compute Service (ECS) a la instancia RDS mediante una red interna.
Requisitos previos
Se creó una instancia RDS principal que ejecuta RDS High-availability Edition.
Una read-only RDS instance is created para la instancia RDS principal.
-
Se creó como mínimo una base de datos con al menos una tabla en la instancia RDS. También se creó una cuenta de prueba para dicha instancia, la cual puede ser estándar o privilegiada. Para obtener más información, consulte Create accounts and databases.
NotaSi crea una cuenta estándar, debe otorgarle los permisos Read/Write (DDL + DML) sobre la base de datos correspondiente.
En este ejemplo, se crearon una base de datos llamada testdb01, una tabla llamada products y una cuenta de prueba llamada cxx1.
Se configuró una IP address whitelist para la instancia RDS.
La instancia ECS conectada a la instancia RDS reside en la misma virtual private cloud (VPC). Además, el cliente de MySQL ya está instalado en la instancia ECS.
La database proxy feature is enabled de la instancia RDS.
La SQL Explorer and Audit feature está habilitada para la instancia RDS.
Contexto
La función de división de lectura y escritura de database proxy feature reenvía las solicitudes de escritura a la instancia RDS principal y las de lectura a la instancia RDS de solo lectura. De esta forma, se implementa la división automática de lectura y escritura, lo que descarga las solicitudes de lectura de la instancia principal. Una vez que habilite y configure la función de proxy de base de datos, siga los pasos de este tema para comprobar si las solicitudes se reenvían según los pesos de lectura especificados.
Procedimiento de comprobación
En este ejemplo, se conecta una instancia ECS a la instancia RDS mediante una red interna para comprobar la eficacia de la división de lectura y escritura. Siga estos pasos:
En la consola de ApsaraDB RDS, establezca el peso de la instancia RDS de solo lectura en un múltiplo de 100 y el de la instancia RDS principal en 0. Esta configuración garantiza que todas las solicitudes de lectura se reenvíen a la instancia de solo lectura. En este ejemplo, el peso de la instancia de solo lectura se establece en 10000 y el de la instancia principal en 0.
Use la cuenta de prueba para conectar la instancia ECS a la instancia RDS mediante el endpoint del proxy de base de datos. Después, ejecute operaciones de lectura y escritura.
En la página SQL Explorer and Audit de la consola de ApsaraDB RDS, consulte los registros de las sentencias SQL ejecutadas en la instancia RDS principal y en la de solo lectura.
Revise los registros de ejecución de las sentencias SQL para comprobar si la instancia de solo lectura procesó las solicitudes de lectura y si la instancia principal procesó las de escritura. Así determinará si la división de lectura y escritura funciona correctamente.
Procedimiento
-
Especifique los pesos de lectura.
Inicie sesión en la consola de ApsaraDB RDS y vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside la instancia RDS principal. Luego, busque dicha instancia y haga clic en su ID.
En el panel de navegación izquierdo, haga clic en Database Proxy. En la sección Connection Information, busque el ID del endpoint de proxy de destino.
En la columna Actions del endpoint de proxy de destino, haga clic en Modify Configuration.
-
En el cuadro de diálogo que aparece, configure los siguientes parámetros:
Establezca Read/Write Attributes en Read/Write (Read/Write Splitting).
En Read Weight Allocation, seleccione Custom. Establezca el peso de la instancia de solo lectura en 10000 y el de la instancia principal en 0. Por último, haga clic en OK.
En la sección Connection Information, obtenga el endpoint de proxy de tipo VPC.
-
Use la cuenta de prueba cxx1 para conectar la instancia ECS a la base de datos y ejecutar operaciones de lectura.
-
Inicie sesión en la instancia ECS que desea conectar a la instancia RDS.
NotaPara obtener más información sobre cómo iniciar sesión en una instancia ECS, consulte Connect to an instance.
-
Ejecute el siguiente comando para conectar la instancia ECS a la instancia RDS:
mysql -hProxy endpoint -PPort number -uUsername -pPasswordA continuación se describen los parámetros utilizados en el comando anterior.
Parámetro
Descripción
Configuración
Proxy Endpoint
El endpoint de proxy de tipo VPC-type que obtuvo en Step 1.
Si usa un cliente para conectarse a la instancia RDS, debe utilizar un endpoint de proxy public.
P
El número de puerto. Introduzca el número de puerto después de la letra P mayúscula.
No aplica.
-u
El nombre de usuario. Introduzca el nombre de usuario después de la letra u.
No aplica.
p
La contraseña. Introduzca la contraseña después de la letra p minúscula.
Introduzca la contraseña inmediatamente después de
-p, sin dejar espacios.También puede introducir la contraseña después de ejecutar el comando, en lugar de escribirla tras
-pantes de ejecutarlo. Esto evita que la contraseña se muestre en texto plano. -
Ejecute el siguiente comando para acceder a la base de datos testdb01:
USE testdb01; -
Ejecute seis veces las sentencias SQL de operaciones de lectura. Sentencia de ejemplo:
SELECT * FROM products LIMIT 20;
-
-
Ejecute tres veces las sentencias SQL de operaciones de escritura en la base de datos testdb01. Sentencia de ejemplo:
NotaEn el paso anterior, ya conectó la instancia ECS a la instancia RDS y accedió a la base de datos testdb01. Para obtener más información, consulte Step 2.
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 ); -
Consulte los registros de las sentencias SQL ejecutadas en la instancia RDS principal y en la instancia RDS de solo lectura.
Confirme que la instancia de solo lectura procesó todas las consultas
SELECTy que la instancia principal procesó todas las consultasCREATE. Asegúrese de que no aparezcan registros de consultasCREATEen la instancia de solo lectura.Inicie sesión en la consola de ApsaraDB RDS y vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside la instancia RDS principal. Luego, busque dicha instancia y haga clic en su ID.
En el panel de navegación izquierdo de la instancia principal, elija . Seleccione un intervalo de tiempo y haga clic en Search. Confirme que no aparezcan registros de ejecución de la consulta
SELECT.En el panel de navegación izquierdo de la instancia principal, haga clic en Basic Information. Pase el cursor sobre el número junto a Read-only Instance y haga clic en el ID de la instancia de solo lectura en el cuadro de diálogo que aparece.
En el panel de navegación izquierdo de la instancia de solo lectura, elija . Seleccione un intervalo de tiempo y haga clic en Search. Los registros de auditoría SQL mostrarán seis entradas para la consulta
SELECT * FROM products LIMIT 20. La base de datos es testdb01, el tipo de operación es SELECT y el estado de todas las operaciones es Success.En el panel de navegación izquierdo de la instancia principal, elija . Seleccione un intervalo de tiempo y haga clic en Search. Verá tres registros de ejecución del comando
CREATE. Por ejemplo, estos registros podrían corresponder a consultas comoCREATE TABLE Products11,CREATE TABLE Products12yCREATE TABLE Products13. La base de datos es testdb01 y el estado de todas las operaciones es Success.
Conclusión de la comprobación
Si el peso de la instancia RDS de solo lectura se establece en 10000 y el de la instancia RDS principal en 0, la instancia principal procesa todas las solicitudes de escritura y la de solo lectura procesa todas las de lectura. De este modo, se implementa la división de lectura y escritura.