Importación de datos a una instancia de base de datos de Amazon RDS para MariaDB con tiempo de inactividad reducido - Amazon Relational Database Service

Importación de datos a una instancia de base de datos de Amazon RDS para MariaDB con tiempo de inactividad reducido

En algunos casos, es posible que tenga que importar datos de una base de datos MariaDB externa que admite una aplicación en directo a una instancia de base de datos de RDS para MariaDB. Utilice el siguiente procedimiento para minimizar el impacto en la disponibilidad de las aplicaciones. Este procedimiento también puede resultar útil al trabajar con una base de datos de gran tamaño. Con este procedimiento, puede reducir el coste de la importación al reducir la cantidad de datos que se transfieren a través de la red a AWS.

En el procedimiento, se transfiere primero una copia de los datos de la base de datos a una instancia de Amazon EC2 y después se importan los datos a una nueva base de datos de Amazon RDS. A continuación, se usa la replicación para actualizar la base de datos de Amazon RDS al estado de la instancia externa activa, antes de redirigir la aplicación a la base de datos de Amazon RDS. Si la instancia externa es MariaDB 10.0.24 o superior y la instancia de destino es RDS para MariaDB, configure la replicación de MariaDB en función de los identificadores de transacción globales (GTID). De lo contrario, debe configurar la replicación en función de las coordenadas de los registros binarios. Si la base de datos externa la admite, recomendamos la replicación basada en GTID porque es un método más fiable. Para obtener más información, consulte Global Transaction ID en la documentación de MariaDB.

El siguiente diagrama muestra la importación de una base de datos de MariaDB externa a una base de datos de MariaDB en Amazon RDS.

Flujo de trabajo que muestra la importación de una base de datos de MariaDB externa a una base de datos de MariaDB en Amazon RDS.

Tarea 1: Crear una copia de la base de datos existente

El primer paso del proceso de migración de una gran cantidad de datos a una base de datos de RDS para MariaDB con un tiempo de inactividad mínimo es crear una copia de los datos de origen.

El siguiente diagrama muestra la creación de una copia de seguridad de la base de datos de MariaDB.

Flujo de trabajo que muestra la creación de una copia de seguridad de la base de datos de MariaDB.

Puede usar la utilidad mysqldump o mariadb-dump para crear una copia de seguridad de la base de datos, ya sea en formato SQL o como texto delimitado. En MariaDB 10.5, el cliente se llama mariadb-dump. A partir de MariaDB 11.0.1, debe usar mariadb-dump en lugar de mysqldump. Recomendamos que haga una prueba con cada formato en un entorno que no sea de producción para determinar con qué método tarda menos la ejecución de mysqldump o mariadb-dump.

También se recomienda comparar el rendimiento de mysqldump o mariadb-dump con el beneficio que ofrece el uso del formato de texto delimitado para la carga. Una copia de seguridad con formato de texto delimitado crea un archivo de texto separado por tabuladores por cada tabla volcada. Los archivos obtenidos pueden cargarse en paralelo con el comando LOAD DATA LOCAL INFILE para reducir el tiempo necesario para importar la base de datos. Para obtener más información, consulte Paso 5: cargar los datos en la importación de datos de cualquier procedimiento de origen.

Antes de iniciar la operación de copia de seguridad, asegúrese de configurar las opciones de replicación para la base de datos de MariaDB que va a copiar en Amazon RDS. Las opciones de replicación incluyen la activación del registro binario y la configuración de un ID de servidor único. La activación de estas opciones hace que el servidor comience a registrar las transacciones de la base de datos y la prepare para ser una instancia de replicación de origen en una fase posterior del proceso.

Asegúrese de conocer las siguientes recomendaciones y consideraciones:

  • Utilice la opción --single-transaction con mysqldump o mariadb-dump porque vuelca un estado coherente de la base de datos. Para garantizar un archivo de volcado válido, no ejecute instrucciones de lenguaje de definición de datos (DDL) mientras mysqldump o mariadb-dump se está ejecutando. Puede programar un periodo de mantenimiento para estas operaciones.

  • Excluya los siguientes esquemas del archivo de volcado:

    • sys

    • performance_schema

    • information_schema

    Las utilidades mysqldump y mariadb-dump excluyen estos esquemas de forma predeterminada.

  • Si necesita migrar usuarios y privilegios, considere la posibilidad de usar una herramienta que genere el lenguaje de control de datos (DCL) para volver a crearlos, como la utilidad pt-show-grants.

Para establecer las opciones de replicación

  1. Edite el archivo my.cnf. Este archivo se suele encontrar en /etc.

    sudo vi /etc/my.cnf

    Añada las opciones log_bin y server_id a la sección [mysqld]. La opción log_bin proporciona un identificador de nombre de archivo para los archivos de log binarios. La opción server_id proporciona un identificador único para el servidor en las relaciones origen-réplica.

    El siguiente ejemplo muestra la sección [mariadb] actualizada de un archivo my.cnf:

    [mariadb] log-bin server-id=1 log-basename=master1 binlog-format=mixed

    Para obtener más información, consulte Setting the Replication Source Configuration en la documentación de MariaDB.

  2. Para la replicación con un clúster de base de datos multi-AZ, habilite gtid_strict_mode. Para obtener más información, consulte gtid_strict_mode en la documentación de MariaDB.

    La habilitación de gtid_strict_mode no es necesaria para la replicación con una instancia de base de datos.

  3. Reinicie el servicio mariadb.

    sudo service mariadb restart

Para crear una copia de seguridad de la base de datos existente

  1. Cree una copia de seguridad de los datos con la utilidad mysqldump o mariadb-dump, especificando el formato SQL o de texto delimitado.

    Para mejorar el desempeño y asegurar la integridad de los datos, use las opciones --order-by-primary y --single-transaction para mysqldump y mariadb-dump.

    Para evitar incluir la base de datos de sistema de MySQL en la copia de seguridad, no use la opción --all-databases con mysqldump o mariadb-dump. Para obtener más información, consulte Creating a Data Snapshot Using mysqldump en la documentación de MySQL.

    Use chmod, si es necesario, para asegurarse de que es posible escribir en el directorio donde se va a crear el archivo de copia de seguridad.

    importante

    En Windows, ejecute el símbolo del sistema como administrador.

    • Para generar la salida en formato SQL, ejecute el siguiente comando. Para versiones de MariaDB 10.11 y anteriores, sustituya mariadb-dump por mysqldump.

      Para Linux, macOS o Unix:

      sudo mariadb-dump \ --databases database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -ppassword
      nota

      Como práctica recomendada de seguridad, especifique credenciales distintas de las que se muestran en el ejemplo.

      Para Windows:

      mariadb-dump ^ --databases database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u local_user ^ -ppassword
      nota

      Como práctica recomendada de seguridad, especifique credenciales distintas de las que se muestran en el ejemplo.

    • Para generar la salida en formato de texto delimitado, ejecute el siguiente comando. Para MariaDB 11.01 y versiones posteriores, sustituya mysqldump por mariadb-dump.

      Para Linux, macOS o Unix:

      sudo mysqldump \ --tab=target_directory \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -ppassword

      Para Windows:

      mysqldump ^ --tab=target_directory ^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^ database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -ppassword
      nota

      Como práctica recomendada de seguridad, especifique credenciales distintas de las que se muestran en el ejemplo.

      Asegúrese de crear de forma manual procedimientos almacenados, desencadenadores, funciones o eventos en su base de datos de Amazon RDS. Si hay alguno de estos objetos en la base de datos que va a copiar, exclúyalo cuando ejecute mysqldump o mariadb-dump. Para hacerlo, incluya los siguientes argumentos con el comando mysqldump o mariadb-dump:

      • --routines=0

      • --triggers=0

      • --events=0

      Al ejecutar mysqldump y especificar el formato de texto delimitado, se devuelve un comentario CHANGE MASTER TO. Este comentario contiene el nombre y la ubicación del archivo de registro maestro. Si la instancia externa es distinta de MariaDB 10.0.23 o anterior, tenga en cuenta los valores de MASTER_LOG_FILE y MASTER_LOG_POS. Necesita estos valores al configurar la replicación.

      Se devuelve el siguiente resultado para las versiones de MariaDB.

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
  2. Si la instancia externa que utiliza es MariaDB versión 10.0.24 o posterior, use la reproducción basada en GTID. Ejecute SHOW MASTER STATUS en la instancia de MariaDB externa para obtener el nombre y ubicación del archivo de registro binario y, a continuación, conviértalos en un GTID ejecutando BINLOG_GTID_POS en la instancia de MariaDB externa.

    SELECT BINLOG_GTID_POS('binary_log_file_name', binary_log_file_position);

    Tenga en cuenta el GTID devuelto. Necesita GTID para configurar la replicación.

  3. Comprima los datos copiados para reducir los recursos de red necesarios para copiarlos a la base de datos de Amazon RDS. Tenga en cuenta el tamaño del archivo de copia de seguridad. Necesitará esta información para determinar el tamaño de la instancia de Amazon EC2 que se debe crear. Cuando haya terminado, comprima el archivo de copia de seguridad con GZIP o la utilidad de compresión que prefiera.

    • Para comprimir la salida en formato SQL, ejecute el siguiente comando:

      gzip backup.sql
    • Para comprimir la salida en formato de texto delimitado, ejecute el siguiente comando:

      tar -zcvf backup.tar.gz target_directory

Tarea 2: Crear una instancia de Amazon EC2 y copiar la base de datos comprimida

La copia del archivo de copia de seguridad comprimido a una instancia Amazon EC2 requiere menos recursos de red que una copia directa de los datos sin comprimir entre las instancias de base de datos. Una vez que los datos se encuentran en Amazon EC2, puede copiarlos desde allí directamente a la base de datos de MariaDB. Para ahorrar en el costo de los recursos de red, la instancia de Amazon EC2 debe estar en la misma Región de AWS que la instancia de base de datos de Amazon RDS. Tener la instancia de Amazon EC2 en la misma Región de AWS que la base de datos de Amazon RDS también reduce la latencia de red durante la importación.

El siguiente diagrama muestra cómo copiar la copia de seguridad de la base de datos a una instancia de Amazon EC2.

Flujo de trabajo que muestra cómo copiar la copia de seguridad de la base de datos a una instancia de Amazon EC2.

Para crear una instancia Amazon EC2 y copiar los datos

  1. En la Región de AWS donde tiene pensado crear la base de datos de Amazon RDS, cree una nube privada virtual (VPC), un grupo de seguridad de VPC y una subred de VPC. Asegúrese de que las reglas de entrada del grupo de seguridad de VPC permiten las direcciones IP necesarias para que la aplicación se conecte a AWS. Puede especificar un intervalo de direcciones IP, por ejemplo, 203.0.113.0/24, u otro grupo de seguridad de VPC. Puede usar la Consola de Amazon VPC para crear y administrar VPC, subredes y grupos de seguridad. Para obtener más información, consulte Introducción a Amazon VPC en la Guía del usuario de Amazon Virtual Private Cloud.

  2. Abra la consola de Amazon EC2 y elija la Región de AWS que contendrá la instancia de Amazon EC2 y la base de datos de Amazon RDS. Lance una instancia Amazon EC2 utilizando la VPC, la subred y el grupo de seguridad que creó en el paso 1. Asegúrese de seleccionar un tipo de instancia con suficiente espacio de almacenamiento para el archivo de copia de seguridad de base de datos sin comprimir. Para obtener más información sobre las instancias de Amazon EC2, consulte Introducción a Amazon EC2 en la Guía del usuario de Amazon Elastic Compute Cloud.

  3. Para conectarse a la base de datos de Amazon RDS desde la instancia de Amazon EC2, edite el grupo de seguridad de VPC. Agregue una regla de entrada que especifique la dirección IP privada de la instancia de EC2. La dirección IP privada aparece en la pestaña Details (Detalles) del panel Instance (Instancia) de la consola de EC2. Para editar el grupo de seguridad de VPC y agregar una regla de entrada, elija Security Groups (Grupos de seguridad) en el panel de navegación de la consola de EC2, elija el grupo de seguridad y, luego, agregue una regla de entrada para MySQL o Aurora que especifique la dirección IP privada de la instancia de EC2. Para obtener información sobre cómo agregar una regla de entrada a un grupo de seguridad de VPC, consulte Reglas de grupo de seguridad en la Guía del usuario de Amazon Virtual Private Cloud.

  4. Copie el archivo de copia de seguridad de base de datos comprimido del sistema local a la instancia Amazon EC2. Use chmod, si es necesario, para asegurarse de que tiene permiso de escritura para el directorio de destino de la instancia de Amazon EC2. Puede utilizar scp o un cliente de Secure Shell (SSH) para copiar el archivo. El siguiente comando es un comando scp de ejemplo:

    scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
    importante

    Al copiar la información confidencial, asegúrese de usar un protocolo de transferencia de red seguro.

  5. Establezca una conexión con la instancia de Amazon EC2 e instale las últimas actualizaciones y las herramientas de cliente de MariaDB con los comandos siguientes:

    sudo yum update -y sudo yum install mariadb1011-client-utils -y

    Para obtener más información, consulte Conexión a la instancia para instancias de Linux en la Guía del usuario de Amazon Elastic Compute Cloud y conectores de MariaDB en la documentación de MariaDB.

  6. Una vez establecida la conexión la instancia Amazon EC2 descomprima el archivo de copia de seguridad de base de datos. Los siguientes comandos son ejemplos.

    • Para descomprimir la salida en formato SQL, ejecute el siguiente comando:

      gzip backup.sql.gz -d
    • Para descomprimir la salida en formato de texto delimitado, ejecute el siguiente comando:

      tar xzvf backup.tar.gz

Tarea 3: creación de una base de datos de MariaDB e importación de los datos desde la instancia de Amazon EC2

Al crear una instancia de base de datos de RDS para MariaDB en la misma Región de AWS que la instancia de Amazon EC2, puede importar el archivo de copia de seguridad de base de datos desde Amazon EC2 más rápidamente que a través de Internet.

El siguiente diagrama muestra la importación de la copia de seguridad desde una instancia de Amazon EC2 a una base de datos de MariaDB.

Flujo de trabajo que muestra la importación de la copia de seguridad desde la instancia de EC2 a la base de datos de MariaDB.

Creación de una base de datos de MariaDB e importación de los datos

  1. Determine la clase de la instancia de base de datos y la cantidad de espacio de almacenamiento requeridas para atender la carga de trabajo prevista para esta base de datos de Amazon RDS. Como parte de este proceso, decida cuánto espacio y qué capacidad de procesamiento requieren los procedimientos de carga de datos. Decida también lo que se necesita para manejar la carga de trabajo de producción. Puede estimar esto en función del tamaño y los recursos de la base de datos de MariaDB de origen. Para obtener más información, consulte Clases de instancia de base de datos de .

  2. Cree una instancia de base de datos en la Región de AWS que contenga la instancia de Amazon EC2. Siga las instrucciones en Creación de una instancia de base de datos de Amazon RDS y use las siguientes directrices:

    • Especifique una versión del motor de base de datos compatible con la instancia de base de datos de origen.

    • Especifique la misma nube privada virtual (VPC) y el mismo grupo de seguridad de VPC que para la instancia de Amazon EC2. De este modo se asegura de que la instancia Amazon EC2 y la instancia de Amazon RDS sean visibles mutuamente a través de la red. Asegúrese de que la instancia de base de datos sea de acceso público. Para configurar la replicación con la base de datos de origen como se describe en la siguiente sección, la instancia de base de datos debe ser accesible públicamente.

    • No configure varias zonas de disponibilidad, retenciones de copia de seguridad ni réplicas de lectura hasta haber importado la copia de seguridad de la base de datos. Una vez completada la importación, puede configurar Multi-AZ y la retención de copia de seguridad para la instancia de producción.

  3. Revise las opciones de configuración predeterminadas para la base de datos de Amazon RDS. Si el grupo de parámetros predeterminado para la base de datos no tiene las opciones de configuración que desea, busque otro que sea adecuado o cree un grupo de parámetros nuevo. Para obtener más información acerca de cómo crear un grupo de parámetros, consulte Grupos de parámetros para Amazon RDS.

  4. Conéctese a la nueva base de datos de Amazon RDS como usuario maestro. Cree los usuarios necesarios para admitir a los administradores, las aplicaciones y los servicios que necesitan acceso a la instancia de base de datos. El nombre de host para la base de datos de Amazon RDS es el valor de Punto de conexión para esta instancia de base de datos, sin el número de puerto; por ejemplo, mysampledb.123456789012.us-west-2.rds.amazonaws.com. Puede encontrar el valor del punto de conexión en los detalles de la base de datos en la consola de Amazon RDS.

  5. Conéctese a la instancia de Amazon EC2. Para obtener más información, consulte Conexión a la instancia para instancias de Linux en la Guía del usuario de Amazon Elastic Compute Cloud.

  6. Conecte con la base de datos de Amazon RDS como host remoto desde la instancia de Amazon EC2 con el comando mysql. El siguiente comando es un ejemplo:

    mysql -h host_name -P 3306 -u db_master_user -p

    El host_name es el punto de conexión de la base de datos de Amazon RDS.

  7. En la petición de mysql, ejecute el comando source y pásele el nombre del archivo de volcado de la base de datos. Este comando carga los datos en la instancia de base de datos de Amazon RDS.

    • Para el formato SQL, utilice el siguiente comando:

      MariaDB [(none)]> source backup.sql;
    • Para el formato de texto delimitado, cree primero la base de datos, si no es la predeterminada que se creó cuando se configuró la base de datos de Amazon RDS.

      MariaDB [(none)]> create database database_name; MariaDB [(none)]> use database_name;

      A continuación, cree las tablas.

      MariaDB [(none)]> source table1.sql MariaDB [(none)]> source table2.sql etc...

      Importe entonces los datos.

      MariaDB [(none)]> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; MariaDB [(none)]> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...

      Para mejorar el rendimiento, puede ejecutar estas operaciones en paralelo desde varias conexiones, de modo que todas las tablas se creen y luego se carguen al mismo tiempo.

      nota

      Si utilizó alguna opción de formato de datos con mysqldump o mariadb-dump en el volcado inicial de la tabla, asegúrese de utilizar las mismas opciones con LOAD DATA LOCAL INFILE para garantizar una interpretación adecuada del contenido del archivo de datos.

  8. Ejecute una consulta SELECT sencilla en una o dos de las tablas de la base de datos importada para comprobar que la importación se ha completado correctamente.

Si ya no necesita la instancia de Amazon EC2 utilizada en este procedimiento, termine la instancia de EC2 para reducir el uso de recursos de AWS. Para terminar una instancia de EC2, consulte Terminación de una instancia en la Guía del usuario de Amazon Elastic Compute Cloud.

Tarea 4: Replicación de los datos de la base de datos externa a la nueva base de datos de Amazon RDS

Es probable que la base de datos de origen se haya actualizado durante el tiempo que tardó en copiar y transferir los datos a la base de datos MariaDB. Puede utilizar la replicación para actualizar la base de datos copiada con la base de datos de origen.

Flujo de trabajo que muestra la replicación de datos desde la base de datos de MariaDB externa a la base de datos en Amazon RDS.

Los permisos requeridos para comenzar la replicación en una base de datos de Amazon RDS están restringidos y no están disponibles para el usuario principal de Amazon RDS. Por ello, utilice el procedimiento almacenado de Amazon RDS adecuado:

Para iniciar la replicación

En la tarea 1, cuando estableció las opciones de replicación, activó el registro binario y estableció un ID de servidor único para la base de datos de origen. Ahora, puede configurar la base de datos de Amazon RDS como réplica estableciendo la base de datos activa como instancia de replicación de origen.

  1. En la consola de Amazon RDS, agregue la dirección IP del servidor que aloja la base de datos de origen al grupo de seguridad de VPC configurado para la base de datos de Amazon RDS. Para obtener más información sobre la configuración de un grupo de seguridad de VPC, consulte Configuración de reglas de grupos de seguridad en la Guía del usuario de Amazon Virtual Private Cloud.

    Es posible que también necesite configurar la red local para permitir las conexiones desde la dirección IP de la base de datos de Amazon RDS para que se pueda comunicar con la instancia de origen. Para encontrar la dirección IP de la base de datos de Amazon RDS, use el comando host:

    host host_name

    El host_name es el nombre de DNS del punto de conexión de la base de datos de Amazon RDS, por ejemplo, myinstance.123456789012.us-east-1.rds.amazonaws.com. Puede encontrar el valor del punto de conexión en los detalles de la instancia de base de datos en la consola de Amazon RDS.

  2. Con el cliente que prefiera, conecte con la instancia de origen y cree un usuario para la replicación. Esta cuenta se usa únicamente para la replicación y debe estar limitada a su dominio para mejorar la seguridad. El siguiente comando es un ejemplo:

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    nota

    Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.

  3. En la instancia de origen, conceda al usuario de replicación los privilegios REPLICATION CLIENT y REPLICATION SLAVE. Por ejemplo, para conceder los privilegios REPLICATION CLIENT y REPLICATION SLAVE referidos a todas las bases de datos al usuario "repl_user" del dominio, ejecute el siguiente comando:

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  4. Si utilizó el formato SQL para crear el archivo de copia de seguridad y la instancia externa no es MariaDB 10.0.24 o posterior, observe el contenido de ese archivo ejecutando el siguiente comando:

    cat backup.sql

    El archivo contiene un comentario CHANGE MASTER TO que contiene el nombre y la posición del archivo de registro maestro. Este comentario se incluye en el archivo de copia de seguridad cuando se usa la opción --master-data con mysqldump. Tenga en cuenta los valores de MASTER_LOG_FILE y MASTER_LOG_POS.

    -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

    Si utilizó el formato de texto delimitado para crear el archivo de copia de seguridad y la instancia externa no es MariaDB 10.0.24 o posterior, ya debe haber obtenido las coordenadas del registro binario del paso 1 en la tarea 1 cuando creó una copia de seguridad de la base de datos existente.

    Si la instancia externa es MariaDB 10.0.24 o posterior, ya debe haber obtenido el GTID desde el que se inicia la replicación del paso 2 en la tarea 1 cuando creó una copia de seguridad de la base de datos existente.

  5. Convertir la base de datos de Amazon RDS en la réplica. Si la instancia externa no es MariaDB 10.0.24 o una versión posterior, conéctese a la base de datos de Amazon RDS como usuario maestro e identifique la base de datos de origen como la instancia de replicación de origen con el procedimiento almacenado mysql.rds_set_external_master.

    Si tiene un archivo de copia de seguridad con formato SQL, utilice el nombre de archivo de registro y la ubicación del registro principal que determinó en el paso 4. Si utilizó formato de texto delimitado, utilice el nombre y la posición que determinó cuando se crearon los archivos de copia de seguridad. El siguiente comando es un ejemplo:

    CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
    nota

    Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.

    Si la instancia externa es MariaDB 10.0.24 o una versión posterior, conéctese a la base de datos de Amazon RDS como usuario maestro e identifique la base de datos de origen como la instancia de replicación de origen con el procedimiento almacenado mysql.rds_set_external_master_gtid. Utilice el GTID que determinó en el paso 2 de la tarea 1 cuando creó una copia de seguridad de la base de datos existente. El siguiente comando es un ejemplo:

    CALL mysql.rds_set_external_master_gtid ('source_server_ip_address', 3306, 'ReplicationUser', 'password', 'GTID', 1);

    source_server_ip_address es la dirección IP de la instancia de replicación de origen. Una dirección DNS privada de EC2 no se admite actualmente.

    nota

    Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.

  6. En la base de datos de Amazon RDS, para empezar la replicación, ejecute el comando siguiente que usa el procedimiento almacenado mysql.rds_start_replication:

    CALL mysql.rds_start_replication;
  7. En la base de datos de Amazon RDS, para determinar si la réplica está actualizada con la instancia de replicación de origen, ejecute el comando SHOW REPLICA STATUS. Los resultados del comando SHOW REPLICA STATUS incluyen el campo Seconds_Behind_Master. Cuando el campo Seconds_Behind_Master devuelve 0, la réplica está actualizada con la instancia de replicación de origen.

    Para una instancia de base de datos de MariaDB 10.5, 10.6, 10.11, 11.4 u 11.8, use el procedimiento almacenado mysql.rds_replica_status en lugar de ejecutar el comando de MySQL.

  8. Una vez que la base de datos de Amazon RDS esté actualizada, active las copias de seguridad automatizadas para poder restaurar la base de datos si es necesario. Puede activar o modificar copias de seguridad automatizadas para la base de datos de Amazon RDS mediante la consola de Amazon RDS. Para obtener más información, consulte Introducción a las copias de seguridad.

Tarea 5: Redirigir la aplicación en funcionamiento a la instancia de Amazon RDS

Una vez que la base de datos de MariaDB esté actualizada con la instancia de replicación de origen, puede actualizar la aplicación activa para utilizar la instancia de Amazon RDS.

Flujo de trabajo que muestra la detención de la replicación y el direccionamiento de la aplicación en funcionamiento a la base de datos en Amazon RDS.

Redirección de la aplicación activa a la base de datos de MariaDB y detención de la replicación

  1. Para añadir el grupo de seguridad de VPC para la base de datos de Amazon RDS, añada la dirección IP del servidor que aloja la aplicación. Para obtener más información sobre la modificación de un grupo de seguridad de VPC, consulte Configuración de reglas de grupos de seguridad en la Guía del usuario de Amazon Virtual Private Cloud.

  2. Compruebe que el valor del campo Seconds_Behind_Master en el comando SHOW REPLICA STATUS sea 0, lo que indica que la réplica está actualizada al estado de la instancia de reproducción de origen.

    SHOW REPLICA STATUS;

    Para una instancia de base de datos de MariaDB 10.5, 10.6, 10.11, 11.4 u 11.8, use el procedimiento mysql.rds_replica_status en lugar de ejecutar el comando de MySQL.

  3. Cierre todas las conexiones con el origen cuando se completen las transacciones.

  4. Actualice la aplicación para que use la base de datos de Amazon RDS. Normalmente, la actualización implicará cambar la configuración de conexión para identificar el nombre de host y el puerto de la base de datos de Amazon RDS, la cuenta de usuario y la contraseña con las que conectarse y la base de datos que se debe emplear.

  5. Conéctese a la instancia de base de datos.

  6. Detenga la replicación de la instancia de Amazon RDS mediante la ejecución del comando siguiente que usa el procedimiento almacenado mysql.rds_stop_replication:

    CALL mysql.rds_stop_replication;
  7. Restablezca la configuración de replicación para que esta instancia deje de considerarse una réplica mediante la ejecución del siguiente comando que usa el procedimiento almacenado mysql.rds_reset_external_master en la base de datos de Amazon RDS:

    CALL mysql.rds_reset_external_master;
  8. Active las características adicionales de Amazon RDS, como la compatibilidad con Multi-AZ y las réplicas de lectura. Para obtener más información, consulte Configuración y administración de una implementación multi-AZ para Amazon RDS y Trabajo con réplicas de lectura de instancias de base de datos.