Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La migración de esquemas de MySQL es una nueva característica que permite a los usuarios migrar el esquema de objetos como bases de datos, tablas, vistas, desencadenadores, eventos, procedimientos almacenados y funciones. Esta característica es útil para automatizar parte del trabajo necesario para preparar la base de datos de destino antes de iniciar una migración.
Implementación actual
En la implementación actual, los usuarios pueden seleccionar los objetos de servidor (vistas, desencadenadores, eventos, rutinas) que quieren migrar en la pestaña Seleccionar bases de datos de la sección Seleccionar objetos de servidor al configurar el proyecto de migración de DMS. Además, pueden seleccionar las bases de datos en la sección Seleccionar bases de datos cuyo esquema se va a migrar.
Para migrar el esquema de los objetos de tabla, vaya a la pestaña Seleccionar tablas. Antes de rellenar la pestaña, DMS captura las tablas de las bases de datos seleccionadas en el origen y el destino y, a continuación, determina si la tabla existe y contiene datos. Si selecciona una tabla en la base de datos de origen que no exista en la base de datos de destino, el cuadro debajo de Migrar esquema estará seleccionado de forma predeterminada. En el caso de las tablas que ya existen en la base de datos de destino, una nota indicará que la tabla seleccionada ya contiene y se truncará. Además, si el esquema de una tabla en el servidor de destino no coincide con el esquema del origen, la tabla se descartará antes de que continúe la migración.
Al pasar a la siguiente pestaña, DMS valida las entradas y confirma que las tablas seleccionadas coinciden si se seleccionaron sin la entrada de migración de esquema. Una vez superada la validación, puede comenzar el escenario de migración.
Tras iniciar la migración y a medida que esta avanza, se crea cada tabla antes de migrar sus datos desde origen al destino. Excepto los desencadenadores y las vistas, que se migran una vez finalizada la migración de datos, los demás objetos se crean para las tablas antes de la migración de datos.
Funcionamiento de la migración de esquemas
La migración de esquemas se complementa con la sintaxis "SHOW CREATE" de MySQL para recopilar información de esquemas para objetos desde el origen. Al migrar el esquema de los objetos del origen al destino, DMS procesa la entrada y migra individualmente los objetos. DMS también incluye la intercalación, el juego de caracteres y otra información relevante proporcionada por la consulta "SHOW CREATE" en la consulta de creación que se procesa en el destino.
Las rutinas y los eventos se migran antes de migrar los datos. El esquema de cada tabla individual se migra inmediatamente antes de que comience el movimiento de datos de la tabla. Los desencadenadores se migran después de la parte de migración de datos. Para las vistas, dado que MySQL valida el contenido de las vistas y estas pueden depender de otras tablas, DMS crea primero tablas para las vistas antes del inicio del movimiento de datos de la base de datos y, a continuación, elimina la tabla temporal y crea la vista.
Al consultar el origen y el destino, si se produce un error transitorio, DMS reintenta las consultas. Sin embargo, si se produce un error del que DMS no puede recuperarse (por ejemplo, una sintaxis no válida al realizar una migración de actualización de versión), DMS falla e informa de ese mensaje de error al finalizar. Si se produce el error al crear una tabla, no se migran los datos de esa tabla, pero se intenta realizar la migración de datos y esquemas para las otras tablas seleccionadas. Si se produce un error irrecuperable para eventos, rutinas o al crear la tabla temporal para vistas, se produce un error en la migración antes de ejecutar la migración para las tablas seleccionadas y los objetos que se migran después de la parte de migración de datos.
Dado que se crea una tabla temporal para las vistas, si se produce un error al migrar una vista, la tabla temporal se deja en el destino. Una vez corregido el problema subyacente y reintentada la migración, DMS elimina esa tabla antes de crear la vista. Como alternativa, si decide no usar la migración de esquemas para vistas en una migración futura, la tabla temporal debe eliminarse manualmente antes de migrar manualmente la vista.
Requisitos previos
Para completar correctamente una migración de esquema, asegúrese de que se cumplen los siguientes requisitos previos.
Privilegio "READ" en la base de datos de origen.
Privilegio "SELECT" para poder seleccionar objetos de la base de datos
Si se van a migrar vistas, el usuario debe tener el privilegio "SHOW VIEW".
Si se van a migrar desencadenadores, el usuario debe tener el privilegio "TRIGGER".
Si se migran rutinas (procedimientos o funciones), el usuario debe citarse en la cláusula definer de la rutina. Como alternativa, dependiendo de la versión, el usuario debe tener el privilegio siguiente:
Para la versión 5.7, acceso "SELECT" a la tabla "mysql.proc".
Para la versión 8.0, privilegio "SHOW_ROUTINE", o bien "CREATE ROUTINE", "ALTER ROUTINE" o "EXECUTE" en un ámbito que abarque la rutina.
Si se van a migrar eventos, el usuario debe tener el privilegio "EVENT" para la base de datos desde la que se van a mostrar los eventos.
Limitaciones
Al migrar objetos que no son de tabla, DMS no permitirá cambiar el nombre de las bases de datos.
Al migrar a un servidor de destino que tenga bin_log habilitado, se debe habilitar log_bin_trust_function_creators para permitir la creación de rutinas y desencadenadores.
Actualmente no hay compatibilidad con la migración de la cláusula DEFINER para objetos. Todos los tipos de objeto con definidores en el origen se quitan y después de la migración, el definidor predeterminado para las tablas se establece en el inicio de sesión usado para ejecutar la migración.
Algunas actualizaciones de versiones no se admiten si hay cambios importantes en la compatibilidad de versiones. Consulte los documentos de MySQL para obtener más información sobre las actualizaciones de versiones.
Actualmente solo podemos migrar el esquema como parte del movimiento de datos. Si no se selecciona nada para el movimiento de datos, no se produce ninguna migración de esquema. Si se selecciona una tabla para la migración de esquemas, se selecciona para el movimiento de datos.