Descripción general
Database Migration Service admite migraciones únicas y continuas de bases de datos de origen a bases de datos de destino de Cloud SQL.
Entre las bases de datos de origen admitidas para MySQL, se incluyen las siguientes:
- Amazon RDS 5.6, 5.7 y 8.0
- MySQL autoadministrado (local o en cualquier VM en la nube que controlas por completo) 5.5, 5.6, 5.7 y 8.0
- Cloud SQL para MySQL 5.6, 5.7, 8.0 y 8.4
- Amazon Aurora 5.6, 5.7 y 8.0
- Microsoft Azure Database para MySQL 5.7 y 8.0
En el caso de las fuentes de MySQL 8.0, Database Migration Service también admite las siguientes versiones secundarias: 8.0.18, 8.0.26, 8.0.27, 8.0.28, 8.0.30, 8.0.31, 8.0.32, 8.0.33, 8.0.34, 8.0.35, 8.0.36, 8.0.37, 8.0.39 y 8.0.40.
Para configurar una base de datos de origen, completa los siguientes pasos:
- Para fuentes de Cloud SQL: Si migras desde una instancia de Cloud SQL que usa una conexión de IP privada a una instancia de Cloud SQL que usa un rango de IP de dirección que no es RFC 1918, agrega el rango que no es RFC 1918 a la configuración de red de tu instancia de Cloud SQL de origen. Consulta Configura redes autorizadas en la documentación de Cloud SQL.
- Antes de migrar datos de la base de datos de origen a la base de datos de destino, asegúrate de detener todas las operaciones de escritura del lenguaje de definición de datos (DDL) durante la fase de volcado completo. Puedes usar una secuencia de comandos para verificar que se detengan las operaciones de DDL. Una vez que la migración esté en la fase de CDC, puedes reanudar las operaciones de DDL.
- Asegúrate de que tu base de datos de origen no contenga metadatos definidos por los usuarios con la cláusula DEFINER. Consulta Crea y ejecuta un trabajo de migración de MySQL que contenga metadatos con una cláusula DEFINER.
- Si tu base de datos de origen contiene objetos que hacen referencia a tablas en los esquemas del sistema
mysql
,performance_schema
,information_schema
,ndbinfo
osys
, asegúrate de que las bases de datos de réplica también contengan estas tablas de esquemas del sistema.Si las bases de datos de réplica no tienen estas tablas, es posible que tu trabajo de migración falle con el error
Unknown table in system schema
. - Debes configurar la opción server-id en un valor de 1 o mayor. Para obtener más información, consulta Opciones y variables de replicación y registro binario.
- Para configurar el registro del ID de transacción global (GTID), establece
GTID_MODE
enON
oOFF
. No se admite el valorGTID_MODE
deON_PERMISSIVE
.El valor que debes usar depende de los requisitos de migración:
- Si
migras a una instancia de destino existente que tiene habilitadas las réplicas de lectura, establece
GTID_MODE
enON
. - Si usas un volcado manual para migrar tus datos, establece
GTID_MODE
enON
.
GTID_MODE
, consulta la variable del sistema de ID de transacción global. - Si
migras a una instancia de destino existente que tiene habilitadas las réplicas de lectura, establece
-
Debes configurar la cuenta de usuario que se usa para conectarse a la base de datos de origen para que acepte conexiones desde cualquier lugar (host =
%
). Se puede restringir el acceso a este usuario en un paso posterior.Para limitar la posibilidad de poner en riesgo otros aspectos de la base de datos, te recomendamos que crees una cuenta aparte.
Existen cuatro tipos de combinaciones de migraciones y volcados:
- Tipo 1: Migración continua y volcado administrado
- Tipo 2: Migración continua y volcado manual
- Tipo 3: Migración única y volcado administrado
- Tipo 4: Migración única y volcado manual
Los privilegios para cada tipo de combinación de migración y volcado se enumeran en las pestañas que aparecen a continuación.
La cuenta de usuario que configures debe contar con los siguientes privilegios:
REPLICATION SLAVE
EXECUTE
SELECT
SHOW VIEW
REPLICATION CLIENT
RELOAD
TRIGGER
- (Solo para migrar desde Amazon RDS y Amazon Aurora)
LOCK TABLES
MySQL 8.0 o versiones posteriores: Para obtener un rendimiento óptimo, asegúrate de no otorgar el privilegio
BACKUP_ADMIN
a esta cuenta.La cuenta de usuario que configures debe contar con los siguientes privilegios:
REPLICATION SLAVE
EXECUTE
La cuenta de usuario que configures debe contar con los siguientes privilegios:
SELECT
SHOW VIEW
TRIGGER
- (Solo para migrar desde Amazon RDS y Amazon Aurora)
LOCK TABLES
- (Solo para migrar desde fuentes con la configuración
GTID_MODE = ON
)RELOAD
MySQL 8.0 o versiones posteriores: Para obtener un rendimiento óptimo, asegúrate de no otorgar el privilegio
BACKUP_ADMIN
a esta cuenta.No se requieren privilegios.
- Antes de configurar los registros binarios, asegúrate de lo siguiente:
- Habilita los registros binarios en tu base de datos de origen.
- Usa el registro binario basado en filas.
- Conservar los registros binarios durante un período lo suficientemente extenso como para admitir la migración de la base de datos Por lo general, una semana es suficiente.
Para configurar los registros binarios, expande la sección de tu fuente:
MySQL autoalojado
Según la versión de MySQL, especifica un período con tiempo suficiente para que se produzca la replicación:
- MySQL 5.5 a 5.7:
expire_logs_days
- MySQL 8.0:
expire_logs_days
,binlog_expire_logs_seconds
Microsoft Azure Database para MySQL
El registro binario está habilitado de forma predeterminada en Microsoft Azure Database para MySQL. No es necesario que lo habilites. Para obtener más información, consulta la documentación de Microsoft.
Configura los siguientes parámetros obligatorios:
Establece
binlog_expire_logs_seconds
en un período lo suficientemente extenso como para admitir la migración de la base de datos.Para obtener más información, consulta Cómo configurar parámetros del servidor en Azure Database for PostgreSQL y el parámetro
binlog_expire_logs_seconds
en la documentación de Microsoft.- Reinicia el servidor para que se apliquen los cambios.
Amazon RDS
En el caso de Amazon RDS, debes configurar el parámetro
binlog retention hours
para establecer la configuración basada en filas en el grupo de parámetros. Este parámetro se usa para especificar cuántas horas Amazon RDS debe retener los archivos de registro binarios.Para establecer el período de retención de los registros binarios en Amazon RDS, usa el procedimiento almacenado
mysql.rds_set_configuration
y especifica un período con suficiente tiempo para que se produzca la replicación. Por ejemplo:call mysql.rds_set_configuration('binlog retention hours',168);
Amazon Aurora
Para Amazon Aurora, sigue estos pasos:
- Habilita el registro binario para tu base de datos de MySQL.
- Configura el período de retención de registros binarios:
mysql> call mysql.rds_set_configuration('binlog retention hours', 168);
- Reinicia el servidor para que se apliquen los cambios.
- Todas las tablas (excepto las de las bases de datos del sistema) deben usar el motor de almacenamiento InnoDB.
- La contraseña de la cuenta de usuario que se usa para conectarse a la base de datos de origen no debe tener más de 32 caracteres. Este es un problema específico de la replicación de MySQL.
Solo para fuentes de Microsoft Azure Database para MySQL: Verifica el valor de la configuración de
require_secure_transport
.De forma predeterminada, las bases de datos de Microsoft Azure requieren la encriptación SSL/TLS para todas las conexiones entrantes. Según el valor de
require_secure_transport
, usa una de las siguientes opciones de configuración de encriptación cuando crees el perfil de conexión de origen:- Si
require_secure_transport
está configurado enon
, selecciona Básico, TLS o mTLS. - Si
require_secure_transport
está configurado comooff
, selecciona None.
- Si