Antes de utilizar la función de cambio de esquema sin bloqueo de Data Management (DMS), debe habilitarla para la instancia de destino.
Requisitos previos
Tipos de base de datos compatibles: ApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL y MySQL de otros orígenes.
El modo de control de la instancia es Stable Change o Security Collaboration. Para obtener más información, consulte View control modes.
Cuenta con el rol de DBA o administrador. Para consultar su rol, véase View my system roles.
Habilitar el cambio de esquema sin bloqueo
Inicie sesión en DMS 5.0.
-
En la página principal de la consola, dentro de la lista Database Instances, haga clic derecho sobre la instancia de destino y seleccione Lock-free Schema Change.
NotaComo alternativa, puede ir a desde la barra de menú superior. En la pestaña Instance List, haga clic en a la derecha de la instancia de destino y habilite el cambio de esquema sin bloqueo en la sección Advanced Information.
La siguiente tabla describe las opciones disponibles.
Opción
Descripción
Observaciones
Enable (DMS OnlineDDL First)
DMS utiliza su motor propietario de cambios DDL sin bloqueo para garantizar que la tabla no se bloquee.
NotaEn los siguientes casos, DMS OnlineDDL no se puede utilizar y el sistema recurre automáticamente al OnlineDDL nativo de MySQL. La tarea falla si DMS detecta que la ejecución nativa bloqueará la tabla o devolverá un error.
La tabla de destino está vacía. Se usa la ejecución nativa porque es más rápida y realizar DDL en una tabla vacía implica bajo riesgo.
DMS OnlineDDL no admite agregar una restricción única (UK).
La ejecución es más lenta que el OnlineDDL nativo de MySQL, pero no afecta el comportamiento de replicación y tiene menor probabilidad de causar retraso en la replicación.
Enable (MySQL Native OnlineDDL First)
DMS intenta primero el OnlineDDL nativo de MySQL. Si detecta que la ejecución nativa bloqueará tablas o fallará, cambia automáticamente a DMS OnlineDDL para evitar el bloqueo de tablas.
La ejecución es relativamente rápida, pero puede provocar que la replicación paralela de la instancia recurra a la replicación serial, lo cual puede causar retraso en la replicación.
Close
DMS envía la sentencia nativa directamente a MySQL para su ejecución sin ningún procesamiento adicional.
N/A
-
En el cuadro de diálogo Modify Lock-free Schema Change, haga clic en OK.
Después de habilitar el cambio de esquema sin bloqueo para la instancia, puede submit a lock-free schema change ticket.
Deshabilitar el cambio de esquema sin bloqueo
Para deshabilitar el cambio de esquema sin bloqueo, utilice el mismo punto de entrada que para habilitarlo:
-
En la página principal de la consola, dentro de la lista Database Instances, haga clic derecho sobre la instancia de destino y seleccione Lock-free Schema Change > Close.
NotaTambién puede elegir Data Assets > Instances desde la barra de menú superior. En la pestaña Instances, haga clic en en la columna Actions de la instancia de destino y deshabilite el cambio de esquema sin bloqueo en la sección Advanced Information.
En el cuadro de diálogo Modify Lock-free Schema Change, seleccione Close y luego haga clic en OK.
Después de deshabilitar el cambio de esquema sin bloqueo, DMS envía las sentencias DDL nativas directamente a MySQL para su ejecución sin ningún procesamiento adicional. El hecho de que las tablas se bloqueen durante los cambios de esquema depende de la compatibilidad del motor de base de datos con Online DDL:
Si la base de datos admite Online DDL, la operación DDL solo mantiene un bloqueo breve de metadatos y no bloquea la tabla por un período prolongado.
Si la base de datos no admite Online DDL, la tabla permanece bloqueada durante toda la operación DDL.
Deshabilitar o volver a habilitar el cambio de esquema sin bloqueo no requiere reiniciar la instancia ni afecta su estado o sus datos. Esta configuración solo aplica a los tickets de cambio de esquema enviados a través de DMS y no afecta las sentencias DDL ejecutadas directamente por otros clientes.
Operaciones relacionadas
Una vez habilitado el cambio de esquema sin bloqueo para una instancia, DMS prioriza este método para los siguientes tipos de tickets en dicha instancia:
-
Nota
Los cambios de esquema enviados en un ticket de cambio de datos normal generalmente utilizan el método de cambio de esquema sin bloqueo. Sin embargo, si el ticket tiene como objetivo una instancia completa en lugar de una base de datos específica, actualmente no se admite el cambio de esquema sin bloqueo. En este caso, la tarea recurre al método de ejecución nativa incluso si la función está habilitada para la instancia.
Preguntas frecuentes
¿Deshabilitar y volver a habilitar el cambio de esquema sin bloqueo de DMS tiene algún impacto?
No. Deshabilitar y volver a habilitar la opción de cambio de esquema sin bloqueo no afecta el estado de la instancia ni los datos, no requiere reiniciar la instancia y no representa ningún riesgo para los datos. Durante el período en que el cambio de esquema sin bloqueo está deshabilitado, DMS utiliza DDL nativo para ejecutar los cambios de esquema. Al volver a habilitar el cambio de esquema sin bloqueo, DMS reanuda el uso de su motor de cambio de esquema sin bloqueo para los tickets enviados a través de DMS.