Data Transmission Service (DTS) le permite migrar datos de una base de datos SQL Server a una instancia de ApsaraDB RDS for PostgreSQL. Este tema utiliza como origen una base de datos SQL Server autogestionada con acceso público habilitado y describe los pasos obligatorios.
Actualmente, esta función solo es compatible con las regiones China (Qingdao), China (Beijing) y China (Hong Kong).
Requisitos previos
Los bloques CIDR de los servidores de DTS deben estar agregados en la configuración de seguridad de la base de datos SQL Server autogestionada. Esto incluye reglas de security group, reglas de firewall o listas de permisos para permitir el acceso desde los servidores de DTS.
-
Cree una instancia de destino de ApsaraDB RDS for PostgreSQL cuyo espacio de almacenamiento sea mayor que el espacio utilizado por la base de datos SQL Server de origen. Para obtener información sobre cómo crear una instancia, consulte Quickly create an ApsaraDB RDS for PostgreSQL instance.
NotaPara conocer las versiones compatibles con las bases de datos de origen y de destino, consulte Migration scenarios.
Cree una base de datos en la instancia de destino de ApsaraDB RDS for PostgreSQL para recibir los datos. Para obtener información sobre cómo crear una base de datos, consulte Create a database.
-
Si la instancia de origen presenta alguna de las siguientes condiciones, se recomienda dividir la migración en varias tareas:
Los datos que se van a migrar pertenecen a varios esquemas.
Se ejecutan copias de seguridad de registros más de una vez por hora en una sola base de datos.
Se ejecutan más de 100 operaciones de lenguaje de definición de datos (DDL) por hora en una sola base de datos.
La tasa de generación de registros de una sola base de datos supera los 20 MB/s.
Es necesario habilitar la captura de datos modificados (CDC) en más de 1,000 tablas.
Notas de uso
DTS migra las claves externas durante la migración del esquema.
Durante la migración completa e incremental de datos, DTS deshabilita temporalmente las comprobaciones de restricciones y las cascadas de claves externas a nivel de sesión. Las actualizaciones o eliminaciones en cascada en la base de datos de origen mientras se ejecuta la tarea pueden provocar inconsistencias en los datos.
|
Tipo |
Descripción |
|
Límites de la base de datos de origen |
|
|
Otros límites |
|
|
Casos especiales |
Si el origen es una instancia de ApsaraDB RDS for SQL Server, DTS crea una cuenta de sistema llamada |
Facturación
Tipo de migración | Cargo por configuración de enlace | Cargo por tráfico de Internet |
Migración de esquema y migración completa de datos | Sin cargo. | Sin cargo en este ejemplo. Nota Se le cobrará cuando Access Method de la instancia de base de datos de destino sea Public IP Address. Para obtener más información, consulte Billing overview. |
Migración incremental de datos | Con cargo. Para obtener más información, consulte Billing overview. |
Operaciones SQL compatibles con la migración incremental
Tipo de operación | Instrucciones SQL |
DML | INSERT, UPDATE, DELETE Nota No se admiten las instrucciones UPDATE que solo actualizan campos grandes. |
Permisos obligatorios para las cuentas de base de datos
|
Base de datos |
Permisos obligatorios |
Métodos de creación de cuentas y autorización |
|
SQL Server autogestionado de origen |
Permiso sysadmin. |
|
|
Instancia de destino de ApsaraDB RDS for PostgreSQL |
Permiso de propietario (cuenta de autorización) de la base de datos de destino. |
Requisitos previos
Para ejecutar una migración incremental, debe configurar los ajustes de registro y crear índices agrupados en su base de datos SQL Server autogestionada antes de configurar la tarea de migración de datos.
Si necesita migrar varias bases de datos, debe repetir los pasos del 1 al 3 para cada una. De lo contrario, podrían producirse inconsistencias en los datos.
-
Ejecute el siguiente comando en su base de datos SQL Server autogestionada para cambiar el modelo de recuperación de la base de datos de origen al modelo de recuperación completa.
use master; GO ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOParámetros:
<database_name>: el nombre de la base de datos de origen.
Ejemplo:
use master; GO ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GO -
Ejecute el siguiente comando para crear una copia de seguridad lógica de la base de datos de origen. Puede omitir este paso si ya existe una copia de seguridad lógica.
BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>'; GOParámetros:
<database_name>: el nombre de la base de datos de origen.
<physical_backup_device_name>: la ruta y el nombre del archivo de copia de seguridad.
Ejemplo:
BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak'; GO -
Ejecute el siguiente comando para respaldar el registro de transacciones de la base de datos de origen.
BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init; GOParámetros:
<database_name>: el nombre de la base de datos de origen.
<physical_backup_device_name>: la ruta y el nombre del archivo de copia de seguridad.
Ejemplo:
BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init; GO
Procedimiento
-
Vaya a la página de la lista de tareas de migración de la región de destino mediante uno de los métodos a continuación.
Desde la consola de DTS
Inicie sesión en la consola de Data Transmission Service (DTS).
En el panel de navegación izquierdo, haga clic en Data Migration.
En la esquina superior izquierda de la página, seleccione la región donde se encuentra la instancia de migración.
Desde la consola de DMS
NotaLas operaciones reales pueden variar según el modo y el diseño de la consola de DMS. Para obtener más información, consulte Simple mode console y Customize the layout and style of the DMS console.
Inicie sesión en la consola de Data Management (DMS).
En la barra de menú superior, elija .
A la derecha de Data Migration Tasks, seleccione la región donde se encuentra la instancia de migración.
Haga clic en Create Task para ir a la página de configuración de la tarea.
-
Configure las bases de datos de origen y de destino.
Categoría
Parámetro
Descripción
Ninguna
Task Name
DTS genera automáticamente un nombre para la tarea. Se recomienda especificar un nombre descriptivo que facilite su identificación. No es necesario que el nombre sea único.
Source Database
Select Existing Connection
Para usar una instancia de base de datos que ya se haya added to the system (creado o guardado), seleccione la instancia deseada en la lista desplegable. La información de la base de datos que aparece a continuación se configurará automáticamente.
NotaEn la consola de DMS, este parámetro se denomina Select a DMS database instance..
Si no ha registrado la instancia de base de datos en el sistema o no necesita usar una instancia registrada, configure manualmente la información de la base de datos que aparece a continuación.
Database Type
Seleccione SQL Server.
Access Method
Seleccione esta opción según la ubicación de despliegue de la base de datos de origen. En este ejemplo, seleccione Public IP Address.
NotaSi selecciona un método de acceso distinto para una base de datos autogestionada, debe completar los preparativos correspondientes. Para obtener más información, consulte Preparation overview.
Instance Region
Seleccione la región a la que pertenece la base de datos SQL Server de origen.
Domain Name or IP
Introduzca la dirección de acceso de la base de datos SQL Server de origen.
Port Number
Introduzca el puerto de servicio de la base de datos SQL Server de origen. El puerto predeterminado es 1433.
Database Account
Introduzca la cuenta de la base de datos SQL Server de origen. Para obtener información sobre los permisos obligatorios, consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
Seleccione Non-encrypted o SSL-encrypted según sus requisitos empresariales.
-
Si el cifrado SSL está deshabilitado en la base de datos de origen, seleccione Non-encrypted.
-
Si el cifrado SSL está habilitado en la base de datos de origen, seleccione SSL-encrypted. De forma predeterminada, DTS confía en el certificado del servidor.
Destination Database
Select Existing Connection
Para usar una instancia de base de datos que ya se haya added to the system (creado o guardado), seleccione la instancia deseada en la lista desplegable. La información de la base de datos que aparece a continuación se configurará automáticamente.
NotaEn la consola de DMS, este parámetro se denomina Select a DMS database instance..
Si no ha registrado la instancia de base de datos en el sistema o no necesita usar una instancia registrada, configure manualmente la información de la base de datos que aparece a continuación.
Database Type
Seleccione PostgreSQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región de la instancia de destino de ApsaraDB RDS for PostgreSQL.
Instance ID
Seleccione el identificador de la instancia de destino de ApsaraDB RDS for PostgreSQL.
Database Name
Introduzca el nombre de la base de datos que recibirá los datos en la instancia de destino de ApsaraDB RDS for PostgreSQL.
Database Account
Introduzca la cuenta de la base de datos de la instancia de destino de ApsaraDB RDS for PostgreSQL. Para obtener información sobre los permisos obligatorios, consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
Indica si se cifra la conexión a la base de datos de origen. Configure este parámetro según sus requisitos empresariales. En este ejemplo, se selecciona Non-encrypted.
Si desea establecer una conexión con cifrado SSL hacia la base de datos de origen, siga estos pasos: seleccione SSL-encrypted, cargue CA Certificate, Client Certificate y Private Key of Client Certificate según sea necesario, y luego especifique Private Key Password of Client Certificate.
Nota-
Si establece SSL-encrypted en Encryption para una base de datos PostgreSQL autogestionada, debe cargar CA Certificate.
-
Si desea usar el certificado de cliente, debe cargar Client Certificate y Private Key of Client Certificate, además de especificar Private Key Password of Client Certificate.
-
Para obtener información sobre cómo configurar el cifrado SSL en una instancia de ApsaraDB RDS for PostgreSQL, consulte SSL encryption.
-
Una vez completada la configuración, haga clic en Test Connectivity and Proceed en la parte inferior de la página. En el cuadro de diálogo CIDR Blocks of DTS Servers que aparece, haga clic en Test Connectivity.
NotaAsegúrese de que los segmentos de direcciones IP del servicio DTS se agreguen de forma automática o manual a la configuración de seguridad de las bases de datos de origen y de destino. Esto permite el acceso desde los servidores de DTS. Para obtener más información, consulte Add DTS server IP addresses to a whitelist.
-
Configure los objetos de la tarea.
-
En la página Configure Objects, configure los objetos que desea migrar.
Parámetro
Descripción
Migration Types
Si solo necesita ejecutar una migración completa, seleccione tanto Schema Migration como Full Data Migration.
Para ejecutar una migración sin tiempo de inactividad, seleccione Schema Migration, Full Data Migration e Incremental Data Migration.
NotaSi no selecciona Schema Migration, asegúrese de que exista una base de datos y tablas para recibir los datos en la base de datos de destino. También puede usar la función de asignación de nombres de objetos en el cuadro Selected Objects según sea necesario.
Si no selecciona Incremental Data Migration, no escriba datos nuevos en la instancia de origen durante la migración de datos. Esto garantiza la consistencia de los datos.
SQL Server Incremental Synchronization Mode
Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing):
Ventajas:
Admite escenarios con tablas de montón de origen, tablas sin claves primarias, tablas comprimidas o tablas con columnas calculadas.
Ofrece alta estabilidad de enlace. Este modo obtiene instrucciones DDL completas y es compatible con una amplia variedad de escenarios DDL.
Desventajas:
DTS crea el desencadenador
dts_cdc_sync_ddl, la tabla de latidosdts_sync_progressy la tabla de almacenamiento DDLdts_cdc_ddl_historyen la base de datos de origen. También habilita CDC a nivel de base de datos y CDC para algunas tablas.No puede ejecutar las instrucciones
SELECT INTO,TRUNCATEniRENAME COLUMNen tablas con CDC habilitado en la base de datos de origen. Tampoco puede eliminar manualmente los desencadenadores que DTS creó en la base de datos de origen.
Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):
Ventaja:
Este modo no interfiere con la base de datos de origen.
Desventaja:
Este modo no admite escenarios con tablas de montón de origen, tablas sin claves primarias, tablas comprimidas o tablas con columnas calculadas.
Polling and querying CDC instances for incremental synchronization:
Ventajas:
Admite la migración completa e incremental cuando la base de datos de origen es Amazon RDS for SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure SQL Server on Virtual Machine o Google Cloud SQL for SQL Server.
Este modo usa el componente CDC nativo de SQL Server para obtener datos incrementales. Esto mejora la estabilidad de la migración incremental y reduce el uso del ancho de banda de red.
Desventajas:
La cuenta de la base de datos de origen que usa la instancia de DTS debe tener permisos para habilitar CDC. La migración de datos incrementales presenta una latencia de aproximadamente 10 segundos.
Cuando migra varias tablas en múltiples bases de datos, podría experimentar problemas de estabilidad y rendimiento.
NotaEste parámetro solo está disponible cuando la selección en Migration Types incluye Incremental Data Migration.
The maximum number of tables for which CDC is enabled that DTS supports.
Puede establecer un límite en la cantidad de tablas con CDC habilitado para la instancia de migración actual, según sus requisitos empresariales. El valor predeterminado es 1000.
NotaEste parámetro no está disponible si establece SQL Server Incremental Synchronization Mode en Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).
Processing Mode of Conflicting Tables
Precheck and Report Errors: comprueba si existen tablas con el mismo nombre en la base de datos de destino. Si no existen tablas con el mismo nombre, la comprobación previa se aprueba. Si existen tablas con el mismo nombre, se reporta un error durante la comprobación previa y la tarea de migración de datos no inicia.
NotaSi una tabla de la base de datos de destino tiene el mismo nombre pero no se puede eliminar ni renombrar fácilmente, puede cambiar el nombre de la tabla en la base de datos de destino. Para obtener más información, consulte Object name mapping.
Ignore Errors and Proceed: omite la comprobación de tablas con el mismo nombre.
AvisoSeleccionar Ignore Errors and Proceed puede provocar inconsistencias en los datos y riesgos para el negocio. Por ejemplo:
Si los esquemas de las tablas son consistentes y un registro de la base de datos de destino tiene el mismo valor de clave primaria que un registro de la base de datos de origen:
Durante la migración completa, DTS conserva el registro en la base de datos de destino. El registro de la base de datos de origen no se migra.
Durante la migración incremental, DTS no conserva el registro en la base de datos de destino. El registro de la base de datos de origen sobrescribe el registro de la base de datos de destino.
Si los esquemas de las tablas no son consistentes, es posible que solo se migren algunas columnas de datos o que la migración falle. Proceda con precaución.
Capitalization of Object Names in Destination Instance
Puede configurar la política de distinción entre mayúsculas y minúsculas para los nombres de los objetos migrados, como bases de datos, tablas y columnas, en la instancia de destino. De forma predeterminada, se selecciona DTS default policy. También puede elegir mantener la distinción entre mayúsculas y minúsculas coherente con la política predeterminada de la base de datos de origen o de destino. Para obtener más información, consulte Case sensitivity of object names in the destination database.
Source Objects
En el panel Source Objects, haga clic en las tablas que desea migrar y luego haga clic en
para moverlas al panel Selected Objects.ImportanteLa granularidad de los objetos que se pueden seleccionar para la migración corresponde a tablas, y todas las tablas por migrar deben pertenecer al mismo esquema. De lo contrario, podrían producirse inconsistencias en los datos o errores en la tarea.
Selected Objects
De forma predeterminada, se usa el nombre del esquema de origen como nombre del esquema de destino, y el nombre de la tabla de origen como nombre de la tabla de destino.
Si desea modificar el nombre del esquema que recibe los datos en la instancia de destino de ApsaraDB RDS for PostgreSQL, haga clic con el botón secundario en el esquema de la tabla por migrar dentro del panel Selected Objects. En el cuadro de diálogo Edit Schema que aparece, modifique Schema Name.
NotaTambién puede hacer clic con el botón secundario en la tabla por migrar dentro del panel Selected Objects para modificar el nombre de la tabla de destino o los nombres de las columnas, o bien establecer una cláusula WHERE para filtrar datos. Para obtener más información, consulte Filter task data with an SQL condition y Object name mapping.
Para seleccionar las operaciones SQL de la migración incremental, haga clic con el botón secundario en el objeto por migrar dentro del panel Selected Objects y seleccione las operaciones SQL necesarias en el cuadro de diálogo que aparece.
Para quitar un objeto de migración ya seleccionado, haga clic en el objeto por migrar dentro del panel Selected Objects y luego haga clic en
para moverlo al panel Source Objects.
-
Haga clic en Next: Advanced Settings para configurar los parámetros avanzados.
Parámetro
Descripción
Dedicated Cluster for Task Scheduling
De forma predeterminada, DTS programa las tareas en un clúster compartido. No es necesario seleccionar uno. Si desea tareas más estables, puede adquirir un dedicated cluster para ejecutar las tareas de migración de DTS.
Retry Time for Failed Connections
Una vez iniciada la tarea de migración, si falla la conexión a la base de datos de origen o de destino, DTS reporta un error y comienza a reintentar la conexión de inmediato. La duración predeterminada de reintento es de 720 minutos. Puede personalizar el tiempo de reintento con un valor de 10 a 1440 minutos. Se recomienda establecer una duración superior a 30 minutos. Si DTS se reconecta a las bases de datos de origen y de destino dentro del tiempo especificado, la tarea de migración se reanuda automáticamente. De lo contrario, la tarea finaliza con errores.
NotaCuando varias instancias de DTS comparten el mismo origen o destino, el tiempo de reintento de red lo determina la configuración de la última tarea creada.
Dado que se le cobra por la tarea durante el periodo de reintento de conexión, se recomienda personalizar el tiempo de reintento según sus necesidades empresariales. También puede liberar la instancia de DTS tan pronto como se liberen las instancias de las bases de datos de origen y de destino.
Retry Time for Other Issues
Una vez iniciada la tarea de migración, si ocurre un problema ajeno a la conectividad en la base de datos de origen o de destino, como una excepción de ejecución DDL o DML, DTS reporta un error y comienza a reintentar la operación de inmediato. La duración predeterminada de reintento es de 10 minutos. Puede personalizar el tiempo de reintento con un valor de 1 a 1440 minutos. Se recomienda establecer una duración superior a 10 minutos. Si las operaciones relacionadas se ejecutan correctamente dentro del tiempo de reintento especificado, la tarea de migración se reanuda automáticamente. De lo contrario, la tarea finaliza con errores.
ImportanteEl valor de Retry Time for Other Issues debe ser menor que el valor de Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Durante la migración completa, DTS consume recursos de lectura y escritura en las bases de datos de origen y de destino, lo cual puede aumentar la carga de la base de datos. Si es necesario, puede habilitar la limitación de velocidad para la tarea de migración completa. Establezca Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s) para reducir la carga en la base de datos de destino.
NotaEste elemento de configuración solo está disponible si selecciona Full Data Migration en Migration Types.
También puede adjust the full migration speed después de que la instancia de migración esté en ejecución.
Enable Throttling for Incremental Data Migration
Si es necesario, también puede establecer límites de velocidad para la tarea de migración incremental. Establezca RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s) para reducir la carga en la base de datos de destino.
NotaEste elemento de configuración solo está disponible si selecciona Incremental Data Migration en Migration Types.
También puede adjust the incremental migration speed después de que la instancia de migración esté en ejecución.
Environment Tag
Puede seleccionar una etiqueta de entorno para identificar la instancia según sus necesidades empresariales. Este ejemplo no requiere ninguna etiqueta.
Configure ETL
Elija si desea habilitar la función de extracción, transformación y carga (ETL). Para obtener más información, consulte What is ETL? Valores válidos:
-
Yes: habilita la función ETL. Introduzca las instrucciones de procesamiento de datos en el editor de código. Para obtener más información, consulte Configure ETL in a data migration or data synchronization task.
-
No: deshabilita la función ETL.
Monitoring and Alerting
Seleccione si desea configurar alertas y recibir notificaciones de alerta según sus necesidades empresariales.
No: no configura ninguna alerta.
Yes: configura alertas al establecer un alert threshold y un alert notifications. Si una migración falla o la latencia supera el umbral, el sistema envía una notificación de alerta.
-
Haga clic en Next: Data Validation para configurar una tarea de validación de datos.
Para obtener más información sobre la función de validación de datos, consulte Configure data validation.
-
-
Guarde la tarea y ejecute una comprobación previa.
Para ver los parámetros de configuración de esta instancia al llamar a la operación de API, coloque el puntero sobre el botón Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters en la burbuja que aparece.
Si no necesita ver los parámetros de API o ya terminó de revisarlos, haga clic en Next: Save Task Settings and Precheck en la parte inferior de la página.
NotaAntes de iniciar la tarea de migración, DTS ejecuta una comprobación previa. La tarea solo inicia después de aprobar dicha comprobación.
Si la comprobación previa falla, haga clic en View Details junto al elemento fallido, corrija el problema siguiendo las indicaciones y vuelva a ejecutar la comprobación previa.
-
Si se reporta una advertencia durante la comprobación previa:
Para los elementos de comprobación que no se pueden ignorar, haga clic en View Details junto al elemento fallido, corrija el problema siguiendo las indicaciones y vuelva a ejecutar la comprobación previa.
Para los elementos de comprobación que se pueden ignorar, haga clic en Confirm Alert Details, Ignore, OK y Precheck Again para omitir el elemento de advertencia y volver a ejecutar la comprobación previa. Si decide ignorar una advertencia, podrían producirse problemas como inconsistencias en los datos, lo cual representa un riesgo para su negocio.
-
Adquiera una instancia.
Cuando Success Rate alcance el 100 %, haga clic en Next: Purchase Instance.
-
En la página Purchase, seleccione la especificación de enlace para la instancia de migración de datos. Para obtener más información, consulte la tabla a continuación.
Categoría
Parámetro
Descripción
New Instance Class
Resource Group Settings
Seleccione el resource group al que pertenece la instancia. El valor predeterminado es default resource group. Para obtener más información, consulte What is resource management?
Instance Class
DTS ofrece especificaciones de migración con distintos niveles de rendimiento. La especificación de enlace afecta la velocidad de migración. Seleccione una especificación según su escenario empresarial. Para obtener más información, consulte Data migration link specifications.
Una vez completada la configuración, lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Haga clic en Buy and Start. En el cuadro de diálogo OK que aparece, haga clic en OK.
Puede consultar el progreso de la tarea de migración en la página de lista Data Migration Tasks.
NotaSi la tarea de migración no incluye migración incremental, se detiene automáticamente al finalizar la migración completa. Una vez detenida, su Status cambia a Completed.
Si la tarea de migración incluye migración incremental, no se detiene automáticamente. La tarea de migración incremental continúa ejecutándose. Mientras la tarea de migración incremental se ejecuta, el Status de la tarea es Running.