Configuración de un clúster activo-activo con nuevas instancias de base de datos
Realice los siguientes pasos para configurar un clúster activo-activo mediante las nuevas instancias de base de datos de Amazon RDS para MySQL.
Si va a configurar un clúster activo-activo con instancias de base de datos en más de una VPC, asegúrese de completar los requisitos previos que se indican en Preparación de un clúster activo-activo entre VPC.
Temas
- Paso 1: defina los parámetros del clúster activo-activo en uno o más grupos de parámetros personalizados
- Paso 2: cree nuevas instancias de base de datos de RDS para MySQL para el clúster activo-activo
- Paso 3: especifique las instancias de base de datos del clúster activo-activo
- Paso 4: inicialice el grupo en una instancia de base de datos e inicie la replicación
- Paso 5: inicie la replicación en las demás instancias de base de datos del clúster activo-activo
- Paso 6: (recomendado) compruebe el estado del clúster activo-activo
- Paso 7: (opcional) importe los datos a una instancia de base de datos del clúster activo-activo
Paso 1: defina los parámetros del clúster activo-activo en uno o más grupos de parámetros personalizados
Las instancias de base de datos de RDS para MySQL de un clúster activo-activo deben estar asociadas a un grupo de parámetros personalizado que tenga la configuración correcta para los parámetros necesarios. Para obtener más información sobre los parámetros y la configuración necesaria para cada uno, consulte Configuración de parámetros obligatorios para los clústeres activo-activo.
Puede configurar estos parámetros en grupos de parámetros nuevos o en grupos de parámetros existentes. Sin embargo, para evitar que afecte accidentalmente a las instancias de base de datos que no forman parte del clúster activo-activo, le recomendamos encarecidamente que cree un nuevo grupo de parámetros personalizado. Las instancias de base de datos de un clúster activo-activo se pueden asociar al mismo grupo de parámetros de base de datos o a diferentes grupos de parámetros de base de datos.
Puede utilizar la AWS Management Console o la AWS CLI para crear un nuevo grupo de parámetros personalizado. Para obtener más información, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS. En el siguiente ejemplo, se ejecuta el comando de la AWS CLI create-db-parameter-group para crear un grupo de parámetros de base de datos personalizado denominado
:myactivepg
Para Linux, macOS o:Unix
aws rds create-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters
"
En:Windows
aws rds create-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters
"
También puede utilizar la AWS Management Console o la AWS CLI para establecer los parámetros del grupo de parámetros personalizado. Para obtener más información, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
En el siguiente ejemplo, se ejecuta el comando de la AWS CLI modify-db-parameter-group para establecer los parámetros:
Para Linux, macOS o:Unix
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
En:Windows
aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='
11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
Paso 2: cree nuevas instancias de base de datos de RDS para MySQL para el clúster activo-activo
Los clústeres activo-activo son compatibles con las instancias de base de datos de RDS para MySQL de la versión 8.0.35 y posteriores. Puede crear hasta nueve instancias de base de datos nuevas para el clúster.
Puede utilizar la AWS Management Console o la AWS CLI para crear las nuevas instancias de base de datos. Para obtener más información acerca de la creación de una instancia de base de datos, consulte Creación de una instancia de base de datos de Amazon RDS. Al crear la instancia de base de datos, asóciela a un grupo de parámetros de base de datos que haya creado o modificado en el paso anterior.
Paso 3: especifique las instancias de base de datos del clúster activo-activo
En el grupo de parámetros de base de datos asociado a cada instancia de base de datos, defina el parámetro group_replication_group_seeds
en los puntos de conexión de las instancias de base de datos que desee incluir en el clúster.
Puede usar la AWS Management Console o la AWS CLI para establecer el parámetro. No es necesario reiniciar la instancia de base de datos después de configurar este parámetro. Para obtener más información acerca de cómo configurar los parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
En el siguiente ejemplo, se ejecuta el comando de la AWS CLI modify-db-parameter-group para establecer los parámetros:
Para Linux, macOS o:Unix
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
En:Windows
aws rds modify-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
sugerencia
Asegúrese de configurar el parámetro group_replication_group_seeds
en cada grupo de parámetros de base de datos que esté asociado a una instancia de base de datos del clúster activo-activo.
Paso 4: inicialice el grupo en una instancia de base de datos e inicie la replicación
Puede elegir cualquier base de datos nueva para inicializar el grupo e iniciar la replicación. Para ello, complete los siguientes pasos.
-
Elija una instancia de base de datos en el clúster activo-activo y conéctese a esa instancia de base de datos en un cliente de SQL. Para obtener más información sobre la conexión a una instancia de base de datos de RDS para MySQL, consulte Conexión a una instancia de base de datos que ejecuta el motor de base de datos de MySQL.
-
En el cliente de SQL, ejecute los siguientes procedimientos almacenados y sustituya
group_replication_user_password
por la contraseña del usuariordsgrprepladmin
. El usuariordsgrprepladmin
está reservado para las conexiones de Group Replication de un clúster activo-activo. La contraseña de este usuario debe ser la misma en todas las instancias de base de datos de un clúster activo-activo.call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(1);En este ejemplo, se establece el valor de
binlog retention hours
en168
, lo que significa que los archivos de registro binarios se conservan durante siete días en la instancia de base de datos. Puede ajustar este valor de acuerdo con sus requisitos.En este ejemplo, se especifica
1
en el procedimiento almacenadomysql.rds_group_replication_start
para que se inicialice un grupo nuevo con la instancia de base de datos actual.Para obtener más información acerca de los procedimientos almacenados a los que se hace referencia en el ejemplo, consulte Administración de clústeres activo-activo.
Paso 5: inicie la replicación en las demás instancias de base de datos del clúster activo-activo
Para cada una de las instancias de base de datos del clúster activo-activo, utilice un cliente de SQL para conectarse a la instancia y ejecute los siguientes procedimientos almacenados. Sustituya group_replication_user_password
por la contraseña del usuario rdsgrprepladmin
.
call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(0);
En este ejemplo, se establece el valor de binlog retention hours
en 168
, lo que significa que los archivos de registro binarios se conservan durante siete días en cada instancia de base de datos. Puede ajustar este valor de acuerdo con sus requisitos.
En este ejemplo, se especifica 0
en el procedimiento almacenado mysql.rds_group_replication_start
para que se una la instancia de base de datos actual a un grupo existente.
sugerencia
Asegúrese de ejecutar estos procedimientos almacenados en todas las demás instancias de base de datos del clúster activo-activo.
Paso 6: (recomendado) compruebe el estado del clúster activo-activo
Para asegurarse de que cada miembro del clúster esté configurado correctamente, compruebe el estado del clúster conectándose a una instancia de base de datos del clúster activo-activo y ejecutando el siguiente comando SQL:
SELECT * FROM performance_schema.replication_group_members;
En el resultado se debería mostrar ONLINE
para el MEMBER_STATE
de cada instancia de base de datos, como en el siguiente ejemplo de salida:
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
Para obtener información acerca de los valores posibles de MEMBER_STATE
, consulte Group Replication Server States
Paso 7: (opcional) importe los datos a una instancia de base de datos del clúster activo-activo
Puede importar datos desde una base de datos MySQL a una instancia de base de datos del clúster activo-activo. Una vez importados los datos, Group Replication los replica en las demás instancias de base de datos del clúster.
Para obtener información acerca de cómo importar los datos, consulte Importación de datos a una base de datos de Amazon RDS MariaDB o MySQL con un tiempo de inactividad reducido.