Utilice Data Transmission Service (DTS) para transmitir cambios incrementales de datos desde una instancia de ApsaraDB RDS for SQL Server hacia un proyecto de DataHub en tiempo real. DTS emplea la captura de cambios de datos (CDC) para leer las operaciones INSERT, UPDATE y DELETE confirmadas del registro de transacciones de SQL Server y escribirlas en los topics de DataHub.
Funcionamiento
Al iniciar una tarea de migración de DTS, el servicio ejecuta la migración del esquema para replicar la estructura de los objetos seleccionados en el proyecto de DataHub de destino. Una vez completada la migración del esquema, DTS habilita CDC en la instancia de origen y comienza a capturar los cambios a nivel de fila. Cada cambio capturado se escribe en el topic correspondiente de DataHub. La tarea se ejecuta de forma continua y solo se detiene si usted la finaliza manualmente o si ocurre un error irrecuperable.
La migración completa de datos no es compatible con esta ruta de migración. Solo están disponibles la migración de esquemas y la migración incremental de datos.
Configuraciones compatibles
La siguiente tabla resume los límites estrictos para esta ruta de migración. Revíselos antes de empezar.
|
Categoría |
Valores o límites compatibles |
|
Tipos de migración |
Migración de esquemas, migración incremental de datos (la migración completa de datos no es compatible) |
|
Bases de datos por tarea |
Hasta 10 |
|
Tablas por tarea (al renombrar tablas o columnas) |
Hasta 1,000 |
|
SQL Server — Enterprise edition |
2008 o posterior |
|
SQL Server — Standard edition |
2016 SP1 o posterior |
|
Tamaño de cadena en destino |
Hasta 2 MB por valor de cadena |
|
Tablas CDC con valores de campo > 64 KB |
Ejecute |
|
Transparent Data Encryption (TDE) |
Debe deshabilitarse cuando se incluye la migración incremental de datos |
Requisitos previos
Antes de empezar:
La instancia de origen de ApsaraDB RDS for SQL Server ejecuta una versión compatible con DTS. Consulte Descripción general de los escenarios de migración de datos para ver las versiones compatibles.
DataHub está activado y se ha creado un proyecto para recibir los datos migrados. Consulte Get started with DataHub y Manage projects.
-
Si la instancia de origen cumple alguna de las siguientes condiciones, adquiera varias instancias de DTS y configure tareas de migración separadas:
La instancia contiene más de 10 bases de datos.
Una sola base de datos realiza copias de seguridad de sus registros de transacciones con una frecuencia mayor a una vez por hora.
Una sola base de datos ejecuta más de 100 sentencias DDL por hora.
Los registros de transacciones se escriben a más de 20 MB/s para una sola base de datos.
Es necesario habilitar CDC para más de 1,000 tablas.
Límites
Base de datos de origen
El servidor de origen debe contar con suficiente ancho de banda de salida. Un ancho de banda insuficiente reduce la velocidad de migración.
Las tablas que se van a migrar deben tener restricciones PRIMARY KEY o UNIQUE, y todos sus campos deben ser únicos. Las tablas sin estas restricciones pueden generar registros duplicados en el destino.
Si renombra tablas o columnas en el destino, una sola tarea de migración admite hasta 1,000 tablas. Superar este límite provoca un error de solicitud. En este caso, divida las tablas en varias tareas o realice la migración a nivel de base de datos.
Una sola tarea de migración admite hasta 10 bases de datos. Migrar más de 10 bases de datos en una sola tarea puede reducir el rendimiento y la estabilidad.
-
Para la migración incremental de datos:
Habilite el registro de datos en la base de datos de origen. Establezca el modo de copia de seguridad en Full y realice una copia de seguridad física completa.
Si ejecuta únicamente la migración incremental de datos, conserve los registros de transacciones durante más de 24 horas. Si ejecuta tanto la migración completa como la incremental, conserve los registros durante al menos 7 días. DTS podría no obtener los registros si el periodo de retención es demasiado corto, lo cual puede causar fallos en la tarea, inconsistencia de datos o pérdida de datos. Una vez completada la migración completa de datos, puede reducir el periodo de retención a más de 24 horas. Los periodos de retención que no cumplan estos requisitos quedan fuera del alcance del Acuerdo de Nivel de Servicio (SLA) de DTS.
-
Para que CDC funcione correctamente, se deben cumplir las siguientes condiciones. De lo contrario, la comprobación previa fallará:
El valor del campo
srvnameen la vistasys.sysserversdebe coincidir con el valor devuelto por la funciónSERVERPROPERTY.Para bases de datos de SQL Server autogestionadas, el propietario de la base de datos debe ser el usuario
sa. Para bases de datos de ApsaraDB RDS for SQL Server, el propietario debe ser el usuariosqlsa.Enterprise edition: SQL Server 2008 o posterior.
Standard edition: SQL Server 2016 SP1 o posterior.
Si el origen ejecuta SQL Server 2017 (Standard o Enterprise edition), actualice a una versión posterior antes de la migración.
DTS utiliza la función
fn_logpara leer los registros de la base de datos de origen. No borre los registros antes de que finalice la tarea, ya que esto puede provocar su fallo.Durante la migración de esquemas y la migración completa de datos, no ejecute sentencias DDL en la base de datos de origen. Los cambios de esquema durante la migración provocan el fallo de la tarea.
Si ejecuta únicamente la migración incremental de datos, no escriba datos en la base de datos de origen durante la migración. Para garantizar la consistencia de los datos, ejecute conjuntamente la migración de esquemas, la migración completa de datos y la migración incremental de datos.
Si el origen es una Azure SQL Database, solo se puede migrar una base de datos por tarea.
Si el origen es una instancia de ApsaraDB RDS for SQL Server y la tarea incluye migración incremental de datos, deshabilite Transparent Data Encryption (TDE) en la instancia. Consulte Configurar TDE.
Durante la migración completa de datos, habilite el nivel de aislamiento
READ_COMMITTED_SNAPSHOTen la base de datos de origen. Sin este nivel, los bloqueos compartidos pueden impedir escrituras, causar inconsistencia de datos o evitar que la instancia se ejecute. Estos problemas quedan fuera del alcance del SLA de DTS.-
En el modo de análisis basado en registros híbrido, no agregue ni elimine columnas más de una vez dentro de una ventana de 10 minutos. Por ejemplo, ejecutar las dos siguientes sentencias dentro de 10 minutos provoca un error en la tarea:
ALTER TABLE test_table DROP COLUMN Flag; ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
Proyecto de DataHub de destino
Un solo valor de cadena no puede superar los 2 MB de longitud.
Objetos y tipos de datos
DTS admite la migración de esquemas para: esquemas, tablas, vistas, funciones y procedimientos almacenados.
Los siguientes tipos de objetos no se migran:
Ensamblados
Service brokers
Índices de texto completo y catálogos de texto completo
Esquemas distribuidos y funciones distribuidas
Procedimientos almacenados de Common Language Runtime (CLR), funciones con valor escalar CLR y funciones con valor de tabla CLR
Tablas internas, objetos del sistema y funciones de agregado
Tablas que contienen columnas calculadas
Los siguientes tipos de datos de SQL Server no se migran:
|
Tipo de dato |
Notas |
|
CURSOR |
No compatible |
|
ROWVERSION |
No compatible |
|
SQL_VARIANT |
No compatible |
|
HIERARCHYID |
No compatible |
|
POLYGON |
No compatible |
|
GEOMETRY |
No compatible |
|
GEOGRAPHY |
No compatible |
Migración incremental de datos
-
Operaciones DML compatibles: INSERT, UPDATE, DELETE.
Si una operación UPDATE modifica únicamente valores de campos grandes, DTS no migra dicha operación.
-
No se permiten operaciones de reindexación mientras se ejecuta la migración incremental de datos. La reindexación puede provocar el fallo de la tarea y causar pérdida de datos.
DTS no puede migrar operaciones DDL relacionadas con la clave principal de una tabla con CDC habilitado.
Si el número de tablas con CDC habilitado en una sola tarea de migración supera el máximo admitido por DTS, la comprobación previa fallará.
-
Si las tablas con CDC habilitado requieren valores de campo superiores a 64 KB, ejecute el siguiente comando en la base de datos de origen antes de iniciar la tarea:
exec sp_configure 'max text repl size', -1;De forma predeterminada, un trabajo de CDC puede procesar datos de hasta 64 KB por campo.
DTS no migra claves externas. Las operaciones en cascada y de eliminación definidas en la base de datos de origen no se replican en el destino.
Objetos internos creados por DTS
DTS crea los siguientes objetos en la base de datos de origen para rastrear el progreso de la migración:
|
Modo |
Objetos creados |
|
Sincronización incremental basada en registros de la base de datos de origen |
Trigger |
|
Análisis basado en registros híbrido |
Igual que el anterior, además de CDC habilitado en la base de datos de origen y en tablas específicas |
Para las tablas con CDC habilitado, establezca la tasa máxima de ingesta en 1,000 registros por segundo (RPS).
Otras consideraciones
Migre los datos durante las horas de menor actividad. La migración completa de datos aumenta la carga de lectura y escritura tanto en el origen como en el destino.
No utilice herramientas distintas a DTS para escribir datos en el proyecto de DataHub de destino durante la migración. Hacerlo puede causar inconsistencia en los datos.
Varias instancias de DTS que comparten la misma base de datos de SQL Server de origen capturan los datos incrementales de forma independiente.
Si una tarea falla, el soporte técnico de DTS intenta restaurarla en un plazo de 8 horas. Durante la restauración, la tarea puede reiniciarse y se pueden modificar los parámetros de la tarea (no los parámetros de la base de datos). Para consultar los parámetros que se pueden modificar, véase Modificar parámetros de instancia.
La migración completa de datos utiliza operaciones INSERT simultáneas, lo que puede causar fragmentación de tablas en el destino. El tamaño del tablespace de destino puede ser mayor que el del origen después de la migración.
Casos especiales
Si el origen es una instancia de ApsaraDB RDS for SQL Server, DTS crea automáticamente una cuenta llamada rdsdt_dtsacct en la instancia. No elimine esta cuenta ni cambie su contraseña mientras se ejecuta la tarea de migración. Consulte Cuentas del sistema.
Facturación
|
Tipo de migración |
Costo de configuración de la tarea |
Costo de transferencia de datos |
|
Migración de esquemas |
Gratis |
Gratis (se aplican cargos solo al migrar a través de Internet desde Alibaba Cloud). Consulte Billing overview. |
|
Migración incremental de datos |
Con costo. Consulte Billing overview. |
— |
Permisos necesarios para la cuenta de base de datos
|
Instancia |
Migración de esquemas |
Migración incremental de datos |
|
ApsaraDB RDS for SQL Server de origen |
Permisos de lectura sobre los objetos a migrar |
Permisos de propietario sobre los objetos a migrar |
Consulte Create a privileged account or a standard account y Modify the permissions of an account.
Crear una tarea de migración
Paso 1: Abrir la página de migración de datos
Utilice una de las siguientes consolas:
Consola de DTS
Inicie sesión en la consola de DTS.
En el panel de navegación izquierdo, haga clic en Data Migration.
En la esquina superior izquierda, seleccione la región donde reside la instancia de migración.
Consola de DMS
La ruta de navegación exacta varía según el modo y el diseño de la consola de DMS. Consulte Modo simple y Personalizar el diseño y estilo de la consola de DMS .
Inicie sesión en la consola de DMS.
En la barra de navegación superior, vaya a Data + AI > DTS (DTS) > Data Migration.
En la lista desplegable junto a Data Migration Tasks, seleccione la región donde reside la instancia de migración.
Paso 2: Configurar la tarea
Haga clic en Create Task.
-
Configure las bases de datos de origen y de destino.
AvisoDespués de configurar las bases de datos de origen y de destino, lea los Límites mostrados en la parte superior de la página antes de continuar. Omitir este paso puede causar el fallo de la tarea o resultar en inconsistencia de datos.
Base de datos de origen
Parámetro
Descripción
Task Name
Nombre para la tarea de DTS. DTS genera un nombre automáticamente. Especifique un nombre descriptivo para facilitar la identificación de la tarea. El nombre no necesita ser único.
Select Existing Connection
Si la instancia de origen está registrada en DTS, selecciónela de la lista desplegable. DTS completará automáticamente los parámetros restantes. De lo contrario, configure los parámetros siguientes. En la consola de DMS, seleccione la instancia en Select a DMS database instance. Consulte Gestionar conexiones de base de datos.
Database Type
Seleccione SQL Server.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
La región donde reside la instancia de origen de ApsaraDB RDS for SQL Server.
Replicate Data Across Alibaba Cloud Accounts
Seleccione No para migraciones dentro de la misma cuenta.
RDS Instance ID
El ID de la instancia de origen de ApsaraDB RDS for SQL Server.
Database Account
La cuenta de base de datos para la instancia de origen. Consulte Required database account permissions.
Database Password
La contraseña de la cuenta de base de datos.
Encryption
Seleccione Non-encrypted si SSL está deshabilitado en la base de datos de origen. Seleccione SSL-encrypted si SSL está habilitado. DTS confía en el certificado del servidor de forma predeterminada.
Base de datos de destino
Parámetro
Descripción
Select Existing Connection
Si la instancia de destino está registrada en DTS, selecciónela de la lista desplegable. DTS completará automáticamente los parámetros restantes. De lo contrario, configure los parámetros siguientes. Consulte Gestionar conexiones de base de datos.
Database Type
Seleccione DataHub.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
La región donde reside el proyecto de DataHub de destino.
Project
El nombre del proyecto de DataHub de destino.
-
Haga clic en Test Connectivity and Proceed.
Los bloques CIDR de los servidores de DTS deben agregarse a la configuración de seguridad de las bases de datos de origen y de destino. DTS puede agregarlos automáticamente, o bien usted puede añadirlos manualmente. Consulte Agregar los bloques CIDR de los servidores de DTS . Si el origen o el destino es una base de datos autogestionada a la que no se accede mediante Alibaba Cloud Instance , haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers .
Paso 3: Seleccionar objetos a migrar
En la página Configure Objects, configure los siguientes parámetros:
|
Parámetro |
Descripción |
|
Migration Types |
Seleccione Schema Migration y Incremental Data Migration. Full Data Migration no está disponible para esta ruta de migración. Si no selecciona Incremental Data Migration, no escriba datos en la base de datos de origen durante la migración para mantener la consistencia de los datos. |
|
Naming Rules of Additional Columns |
Cuando DTS migra datos a DataHub, agrega columnas adicionales al topic de destino. Si estos nombres de columna entran en conflicto con columnas existentes en el topic, la migración falla. Seleccione New Rule o Previous Rule según sus necesidades. Compruebe si existen conflictos de nombres antes de configurar este parámetro. Consulte Modify the naming rules for additional columns. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: falla la comprobación previa si el destino contiene tablas con los mismos nombres que las tablas de origen. Utilice la función de asignación de nombres de objetos para resolver conflictos. Consulte Asignación de nombres de bases de datos, tablas y columnas. Ignore Errors and Proceed: omite la comprobación previa para nombres de tabla idénticos. Durante la migración completa, se conservan los registros de destino existentes con claves principales coincidentes. Durante la migración incremental, se sobrescriben. Si los esquemas difieren, solo se migran algunas columnas o la tarea puede fallar. |
|
Capitalization of Object Names in Destination Instance |
Controla el uso de mayúsculas en los nombres de bases de datos, tablas y columnas en el destino. El valor predeterminado es DTS default policy. Consulte Especificar el uso de mayúsculas en nombres de objetos en la instancia de destino. |
|
Source Objects |
Seleccione objetos de la lista Source Objects y luego haga clic en el icono de flecha derecha para agregarlos a Selected Objects. Puede seleccionar columnas, tablas o bases de datos. |
|
Selected Objects |
Para renombrar un solo objeto, haga clic derecho sobre él. Para renombrar varios objetos a la vez, haga clic en Edit en la esquina superior derecha. Consulte Renombrar objetos a migrar y Renombrar varios objetos a migrar a la vez. Nota: los nombres de bases de datos no se pueden asignar; renombrar una base de datos puede causar fallos en objetos dependientes. Para filtrar filas mediante condiciones WHERE, haga clic derecho en una tabla. Consulte Specify filter conditions. |
Paso 4: Configurar ajustes avanzados
Haga clic en Next: Advanced Settings y configure los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
| Dedicated Cluster for Task Scheduling | De forma predeterminada, DTS programa las tareas en el clúster compartido. Para mayor estabilidad, adquiera un clúster dedicado. Consulte ¿Qué es un clúster dedicado de DTS?. |
| Retry Time for Failed Connections | El intervalo de tiempo durante el cual DTS reintenta las conexiones fallidas. Valores válidos: 10–1,440 minutos. Valor predeterminado: 720 minutos. Establezca este valor en al menos 30 minutos. DTS reanuda la tarea si se reconecta dentro de esta ventana; de lo contrario, la tarea falla. Nota: si varias tareas comparten la misma base de datos de origen o de destino, prevalece el tiempo de reintento configurado más recientemente. Se aplican cargos de DTS durante los periodos de reintento de conexión. |
| Retry Time for Other Issues | El intervalo de tiempo durante el cual DTS reintenta las operaciones DDL o DML fallidas. Valores válidos: 1–1,440 minutos. Valor predeterminado: 10 minutos. Establezca este valor en al menos 10 minutos, y siempre inferior al valor de Retry Time for Failed Connections. |
| Enable Throttling for Incremental Data Migration | Disponible solo cuando se selecciona Incremental Data Migration. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s) para limitar la carga en el destino. |
| Environment Tag | Una etiqueta opcional para identificar la instancia de DTS. |
| Configure ETL | Seleccione Yes para habilitar la función de extracción, transformación y carga (ETL) e introducir sentencias de procesamiento de datos en el editor de código. Seleccione No para omitir ETL. Consulte ¿Qué es ETL? y Configurar ETL en una tarea de migración o sincronización de datos. |
| Monitoring and Alerting | Seleccione Yes para recibir notificaciones cuando la tarea falle o la latencia de migración supere el umbral. Configure el umbral de alerta y los ajustes de notificación. Consulte Configurar monitoreo y alertas al crear una tarea de DTS. |
Paso 5: Ejecutar la comprobación previa
Haga clic en Next: Save Task Settings and Precheck.
Para previsualizar los parámetros de la API para esta configuración de tarea, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.
DTS ejecuta una comprobación previa antes de iniciar la tarea de migración. La tarea solo puede comenzar después de aprobar la comprobación previa.
Si la comprobación previa falla:
Haga clic en View Details junto a cada elemento fallido, analice la causa, resuelva el problema y haga clic en Precheck Again.
Si se activa una alerta de comprobación previa:
Para alertas que no se pueden ignorar: haga clic en View Details, resuelva el problema y ejecute la comprobación previa nuevamente.
Para alertas que se pueden ignorar: haga clic en Confirm Alert Details > Ignore > OK, y luego haga clic en Precheck Again. Ignorar alertas puede resultar en inconsistencia de datos.
Paso 6: Adquirir una instancia de migración de datos
Espere hasta que Success Rate alcance 100%, luego haga clic en Next: Purchase Instance.
-
En la página Purchase Instance, configure lo siguiente:
Parámetro
Descripción
Resource Group
El resource group para la instancia de migración. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?
Instance Class
La clase de instancia determina la velocidad de migración. Seleccione una clase según su carga de trabajo. Consulte Clases de instancia de migración de datos.
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms.
Haga clic en Buy and Start, y luego haga clic en OK en el cuadro de diálogo de confirmación.
Verificar la tarea de migración
Una vez iniciada la tarea, compruebe su estado en la página Data Migration:
Completed: La tarea incluía únicamente migración de esquemas (sin migración incremental de datos). La tarea se ha detenido automáticamente.
Running: La tarea incluye migración incremental de datos. La tarea se ejecuta continuamente y no se detiene automáticamente.