Antes de utilizar una base de datos MySQL autogestionada como origen de DTS, debe crear una cuenta de base de datos y habilitar el registro binario. Ambos elementos son obligatorios para superar la verificación previa en tareas de migración incremental, sincronización o seguimiento de cambios.
Requisitos previos
MySQL 5.6 o posterior
Acceso al archivo de configuración de MySQL (
my.cnfen Linux,my.inien Windows)Privilegios de root o administrador en el servidor MySQL
Capacidad para reiniciar el servicio de MySQL
Permisos obligatorios
DTS requiere los siguientes permisos para la migración incremental, la sincronización y el seguimiento de cambios:
|
Permiso |
Propósito |
|
SELECT |
Leer datos de los objetos que se van a migrar, sincronizar o rastrear |
|
REPLICATION CLIENT |
Leer la posición del registro binario |
|
REPLICATION SLAVE |
Leer eventos del registro binario |
|
SHOW VIEW |
Leer definiciones de vistas |
|
CREATE en |
Crear una base de datos llamada |
Paso 1: Crear la cuenta de la base de datos
Conéctese a la base de datos MySQL autogestionada.
-
Cree una cuenta dedicada para DTS.
CREATE USER 'username'@'host' IDENTIFIED BY 'password';Parámetro
Descripción
usernameNombre de la cuenta que se va a crear
hostHost de inicio de sesión permitido. Utilice
%para cualquier host.passwordContraseña de la cuenta
-
Otorgue los permisos necesarios.
Otorgue permisos sobre las bases de datos y tablas que se van a migrar:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;Otorgue el permiso CREATE:
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;Parámetro
Descripción
privilegesSELECT, INSERT, UPDATE o ALL
databasenameNombre de la base de datos. Utilice
*para todas las bases de datos.tablenameNombre de la tabla. Utilice
*para todas las tablas.usernameCuenta a la que se otorgan los permisos
hostHost de inicio de sesión permitido. Utilice
%para cualquier host.WITH GRANT OPTIONOpcional. Permite que la cuenta otorgue permisos a otros usuarios.
Ejemplo: Cree una cuenta
dtsmigrationcon permisos completos:CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456'; GRANT ALL ON *.* TO 'dtsmigration'@'%'; -
Compruebe los permisos de la cuenta.
SHOW GRANTS FOR 'dtsmigration'@'%';La salida debe incluir
GRANT ALL PRIVILEGES ON *.* TO 'dtsmigration'@'%'.
Paso 2: Configurar el registro binario
Los cambios en el registro binario requieren reiniciar MySQL. Planifique esta tarea fuera del horario de mayor actividad.
Parámetros del registro binario
|
Parámetro |
Valor obligatorio |
Descripción |
|
|
|
Habilita el registro binario y establece el prefijo del archivo de registro. |
|
|
|
Registra cambios a nivel de fila. Los formatos STATEMENT y MIXED pueden causar inconsistencias en los datos. |
|
|
Entero mayor que 1 (ejemplo: |
Identificador único del servidor en una topología de replicación. |
|
|
|
Registra imágenes completas del estado anterior y posterior de cada fila. Obligatorio para versiones de MySQL posteriores a la 5.6. |
|
|
|
Retención de registros en días. Solo para versiones de MySQL anteriores a la 8.0. Valor predeterminado: |
|
|
|
Retención de registros en segundos. Solo para MySQL 8.0 y posteriores. Valor predeterminado: |
|
|
|
Registra eventos replicados en el registro binario local. Obligatorio solo para clústeres con primario dual. |
Editar el archivo de configuración
-
Abra el archivo de configuración de MySQL.
-
Linux: Edite my.cnf con
vimu otro editor.vim /path/to/my.cnfNotaLa ubicación de
my.cnfvaría según la distribución. Rutas comunes:/etc/my.cnf,/etc/mysql/my.cnf,/etc/mysql/mysql.conf.d/mysqld.cnf. Windows: Abra my.ini en un editor de texto.
-
-
Agregue o modifique estos parámetros en la sección
[mysqld]:log_bin=mysql_bin binlog_format=row server_id=2 binlog_row_image=full -
Establezca el periodo de retención del registro binario.
MySQL 5.7 y anteriores:
expire_logs_days=7NotaEl parámetro
expire_logs_daysestá obsoleto en MySQL 8.0 y versiones posteriores.MySQL 8.0 y posteriores:
binlog_expire_logs_seconds=604800 -
(Opcional) Para implementaciones de clúster con primario dual, agregue:
log_slave_updates=ON -
Reinicie el servicio de MySQL.
-
Linux:
/etc/init.d/mysqld restart -
Windows: Utilice el Administrador de servicios o ejecute:
net stop mysql net start mysql
-
Verificar el registro binario
Después de reiniciar, conéctese a MySQL y compruebe la configuración:
SHOW VARIABLES LIKE 'log_bin';
-- Expected: log_bin | ON
SHOW VARIABLES LIKE 'binlog_format';
-- Expected: binlog_format | ROW
SHOW VARIABLES LIKE 'binlog_row_image';
-- Expected: binlog_row_image | FULL
SHOW VARIABLES LIKE 'server_id';
-- Expected: server_id | <integer greater than 1>