La sincronización de esquemas compara los esquemas de dos bases de datos, genera las sentencias DDL necesarias para eliminar las diferencias y ejecuta dichas sentencias en la base de datos de destino, sin modificar ningún dato de fila.
Utilice la sincronización de esquemas para mantener la consistencia entre entornos: de producción a pruebas, de pruebas a pruebas o de producción a producción.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una base de datos de origen y otra de destino de un tipo compatible
La regla de seguridad Enable execution capability (if closed, other rules are invalid) habilitada para la base de datos de destino (consulte Enable execution capability)
Permisos de consulta en la base de datos de origen (consulte View owned permissions)
Permisos para modificar tablas en la base de datos de destino (consulte View owned permissions)
Sin la regla de seguridad Enable execution capability, DMS puede comparar esquemas pero no puede ejecutar las sentencias SQL generadas.
Tipos de base de datos compatibles
|
Motor |
Productos compatibles |
|
MySQL |
ApsaraDB RDS for MySQL, PolarDB for MySQL, ApsaraDB MyBase for MySQL, PolarDB-X, AnalyticDB for MySQL V3.0, bases de datos MySQL de otros orígenes |
|
SQL Server |
ApsaraDB RDS for SQL Server, ApsaraDB MyBase for SQL Server, bases de datos SQL Server de otros orígenes |
|
PostgreSQL |
ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, ApsaraDB MyBase for PostgreSQL, AnalyticDB for PostgreSQL, bases de datos PostgreSQL de otros orígenes |
|
MariaDB |
ApsaraDB RDS for MariaDB, bases de datos MariaDB de otros orígenes |
|
OceanBase |
ApsaraDB for OceanBase en modo MySQL |
|
PolarDB |
PolarDB for PostgreSQL (Compatible with Oracle) |
Funcionamiento de la sincronización de esquemas
La sincronización de esquemas solo modifica la estructura; nunca transfiere datos entre bases de datos.
Cuando DMS compara esquemas, el resultado depende de si existen nombres de tabla coincidentes en el destino:
|
Situación |
Comportamiento de DMS |
|
La tabla existe en el origen pero no en el destino |
Crea la tabla en la base de datos de destino |
|
La tabla existe en ambas bases de datos |
Agrega o elimina campos para que la tabla de destino coincida con la de origen |
|
La tabla existe en el destino pero no en el origen |
No realiza ninguna acción: DMS nunca elimina una tabla del destino |
Eliminar un campo también borra permanentemente todos los datos que contiene. Revise cuidadosamente las sentencias SQL generadas antes de confirmar la sincronización.
Sincronizar esquemas
El flujo de trabajo consta de cuatro etapas: configurar el ticket → analizar esquemas → obtener aprobación → ejecutar la sincronización.
Antes de empezar: Programe la sincronización de esquemas fuera del horario de mayor actividad. La duración depende del número de tablas y de la cola de tareas actual.
Inicie sesión en DMS console V5.0.
-
En la barra de navegación superior, seleccione Database Development > Schema Change > Schema Synchronization.
NotaEn el modo simple, pase el cursor sobre el icono
en la esquina superior izquierda y seleccione All Features > Database Development > Schema Change > Schema Synchronization. -
En la página Table Sync Tickets, configure los siguientes parámetros:
AvisoSeleccionar Ignore puede provocar que se omitan sentencias DDL, lo que resulta en una sincronización incompleta o inconsistente. Revise esta opción detenidamente antes de seleccionarla.
Parámetro
Descripción
Source database
Base de datos de origen para la sincronización de esquemas. Introduzca una palabra clave para buscarla. (Opcional) Especifique un version number del esquema; de forma predeterminada se utiliza la versión más reciente. Consulte Manage schema versions.
Destination database
Base de datos de destino para la sincronización de esquemas. Introduzca una palabra clave para buscarla. (Opcional) Especifique un version number del esquema; de forma predeterminada se utiliza la versión más reciente. Consulte Manage schema versions.
Synchronized table
Tablas por sincronizar. Seleccione Partial Tables para especificar los nombres de las tablas de origen y destino (el nombre de destino toma como valor predeterminado el mismo nombre que el origen), o bien All Tables para sincronizar todas las tablas de la base de datos de origen.
Whether to ignore error
Define cómo manejar los errores durante la ejecución de SQL. Not Ignore detiene la ejecución cuando ocurre un error. Ignore omite la sentencia fallida y continúa con el resto.
Haga clic en Submit. DMS inicia el análisis de esquemas. Si los esquemas cambian durante el análisis, haga clic en Re-analyze en el paso Schema Analysis.
Haga clic en Submit for Approval y espere a que se apruebe la solicitud.
Una vez aprobada, haga clic en Submit and Synchronize to Target Database.
-
Revise las sentencias SQL por ejecutar. Haga clic en Confirm Synchronization. Una vez iniciada la ejecución, haga clic en Details para consultar los registros de operación, incluidas las sentencias SQL, la duración de la ejecución y los detalles de programación.
AvisoCompruebe si hay eliminaciones de campos antes de continuar, ya que eliminar un campo borra permanentemente sus datos.
Cuando aparezca el mensaje Synchronized., los esquemas se sincronizan correctamente con la base de datos de destino.
Pasos siguientes
Manage schema versions — controle versiones y revierta cambios de esquema
View owned permissions — compruebe o solicite los permisos necesarios para la sincronización de esquemas