Este tema explica cómo migrar una base de datos SQL Server autogestionada a Alibaba Cloud RDS SQL Server mediante la consola de Data Transmission Service (DTS). Puede combinar la migración de esquemas, la migración completa de datos y la migración incremental de datos para lograr una migración de base de datos sin tiempo de inactividad.
Requisitos previos
Cree una target RDS for SQL Server instance con un espacio de almacenamiento mayor que el de la base de datos de origen. Si el espacio de almacenamiento es insuficiente, increase the storage space of the instance por adelantado.
Precauciones
Revise estas precauciones clave antes de la migración. Ignorarlas puede provocar errores o fallos en la tarea:
Límite de cantidad de bases de datos: una sola tarea de migración admite un máximo de 10 bases de datos. Superar este límite introduce riesgos de estabilidad y rendimiento.
Límite de cantidad de tablas: cuando una tarea incluye migración incremental, la base de datos de origen no puede contener más de 1,000 tablas. Exceder este límite puede causar retrasos o inestabilidad en la tarea.
Restricciones de operación en la base de datos de origen: durante las fases de migración de esquemas y migración completa, no ejecute operaciones DDL en el esquema de la base de datos ni en el de las tablas. De lo contrario, la tarea de migración fallará.
Requisitos del esquema de tabla: las tablas migradas deben tener una clave primaria o una restricción única, y todos los nombres de columna deben ser únicos. De lo contrario, pueden generarse datos duplicados en la base de datos de destino.
Claves externas y desencadenadores: en las tareas que incluyen migración incremental, debe deshabilitar todos los desencadenadores y claves externas activos en la base de datos de destino para evitar fallos en la tarea o pérdida de datos.
Convenciones de nomenclatura de bases de datos: si el nombre de una base de datos que se va a migrar no cumple con las convenciones de nomenclatura de RDS for SQL Server, debe manually create the database en RDS for SQL Server por adelantado. De lo contrario, es posible que la tarea no se ejecute correctamente.
Periodo de retención del registro de transacciones: para las tareas de migración incremental, los registros de transacciones de la base de datos de origen deben conservarse durante más de 24 horas. En las tareas que incluyen migración completa e incremental, los registros de transacciones deben conservarse como mínimo 7 días. De lo contrario, la tarea podría fallar o producirse inconsistencias en los datos.
Facturación
|
Tipo de migración |
Cargo por configuración de la instancia |
Cargo por tráfico de Internet |
|
Migración de esquemas y migración completa de datos |
Sin cargo. |
Cuando el parámetro Access Method de la base de datos de destino se establece en Public IP Address, se le cobra por el tráfico de Internet. 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. |
Permisos de cuentas de base de datos
Para completar la migración de datos, asegúrese de que las cuentas de las bases de datos de origen y de destino tengan los siguientes permisos:
Para otorgar permisos a una base de datos SQL Server autogestionada, consulte CREATE USER.
Use la consola de RDS para Create a database account y modify the permissions of the account.
|
Base de datos |
Migración de esquemas |
Migración completa |
Migración incremental |
|
Base de datos SQL Server autogestionada |
Permiso SELECT |
Permiso SELECT |
sysadmin |
|
Instancia de RDS SQL Server |
Permisos de lectura y escritura |
||
Requisitos previos
Para realizar una migración incremental, prepare su base de datos SQL Server autogestionada antes de configurar la tarea de migración de datos. Establezca el modelo de recuperación de la base de datos de destino en completo para asegurar que el registro de transacciones registre todos los cambios. Luego, cree una copia de seguridad lógica completa y una copia de seguridad incremental de registros. Estas copias de seguridad son obligatorias para la migración de datos.
Si va a migrar varias bases de datos, debe repetir los pasos del 1 al 3 para cada base de datos. De lo contrario, puede producirse inconsistencia de 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 a completo.
use master; GO ALTER DATABASE <database_to_migrate> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOPor ejemplo:
use master; GO ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GO -
Cree una copia de seguridad lógica de la base de datos ejecutando el siguiente comando. Puede omitir este paso si ya cuenta con una copia de seguridad lógica reciente.
BACKUP DATABASE <database_to_migrate> TO DISK='<path_and_filename_for_backup_file>'; GOPor ejemplo:
BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak'; GO -
Realice una copia de seguridad del registro de transacciones de la base de datos ejecutando el siguiente comando.
BACKUP LOG <database_to_migrate> to DISK='<path_and_filename_for_backup_file>' WITH init; GOPor ejemplo:
BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init; GO
Procedimiento
Vaya a la consola de Data Transmission Service (DTS).
En el panel de navegación izquierdo, haga clic en Data Migration y luego seleccione una región en la parte superior de la página.
-
Haga clic en Create Task y configure las bases de datos de origen y de destino.
Categoría
Configuración
Descripción
N/A
Task Name
Introduzca un nombre descriptivo que le ayude a identificar la tarea más adelante. El nombre no tiene que ser único. También puede conservar el nombre generado por el sistema.
Source database information
Select Existing Connection
Si guardó previamente la conexión de la base de datos de origen en la página DTS Data Connection Management, selecciónela aquí para evitar introducir los detalles nuevamente.
Database Type
Seleccione SQL Server.
Access Method
Seleccione Public IP Address.
NotaSi selecciona una base de datos autoalojada, también debe completar la configuración preparations obligatoria.
Instance Region
Seleccione la región donde se encuentra su base de datos SQL Server autoalojada.
Hostname or IP address
Introduzca la dirección de acceso de la base de datos SQL Server autoalojada. En este ejemplo, introduzca una dirección pública.
Port
Introduzca el puerto de servicio de la base de datos SQL Server autoalojada. El puerto predeterminado es 1433.
Database Account
Introduzca la cuenta de la base de datos para su instancia SQL Server autoalojada. Para obtener más información sobre los requisitos de permisos, consulte Permission requirements for database accounts.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
-
Si el cifrado SSL no está habilitado 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. DTS confía en el certificado del servidor de forma predeterminada.
Destination database information
Select Existing Connection
Si guardó previamente la conexión de la base de datos de destino en la página DTS Data Connection Management, selecciónela aquí para evitar introducir los detalles nuevamente.
Database Type
Seleccione SQL Server.
Access Method
Seleccione Cloud instance.
Instance Region
Seleccione la región de la instancia de destino de RDS SQL Server.
Instance ID
Seleccione el identificador de la instancia de destino de RDS SQL Server.
Database Account
Introduzca la cuenta de la base de datos para la instancia de destino de RDS SQL Server. Para obtener más información sobre los requisitos de permisos, consulte Permission requirements for database accounts.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
-
Si el cifrado SSL no está habilitado en la base de datos de destino, seleccione Non-encrypted.
-
Si el cifrado SSL está habilitado en la base de datos de destino, seleccione SSL-encrypted. DTS confía en el certificado del servidor de forma predeterminada.
-
-
Una vez completada la configuración, haga clic en Test Connectivity and Proceed. En el cuadro de diálogo CIDR Blocks of DTS Servers, haga clic en Test Connectivity.
ImportanteAsegúrese de haber agregado IP address ranges of DTS servers a la configuración de seguridad de la base de datos de origen para permitir el acceso desde DTS.
-
Configure los objetos de la tarea.
-
En la página Configure Objects, configure los objetos que desea migrar.
Configuración
Descripción
Migration Types
-
Para una migración completa, seleccione Schema Migration y Full Data Migration.
-
Para una migración sin tiempo de inactividad, seleccione Schema Migration, Full Data Migration y Incremental Data Migration.
Nota-
Para obtener más información, consulte Appendix 1: SQL operations supported by incremental migration y Appendix 2: Objects supported by schema migration.
-
Si no selecciona Schema Migration, asegúrese de que la base de datos de destino ya cuente con las bases de datos y tablas necesarias. Si es necesario, utilice el cuadro Selected Objects para asignar los nombres de esquemas, tablas y columnas.
-
Si no selecciona Incremental Data Migration, no escriba datos nuevos en la instancia de origen durante la migración de datos para garantizar la consistencia de los datos.
Method to Migrate Triggers in Source Database
Seleccione un método de migración de triggers. Puede omitir esta configuración si la migración no involucra triggers. Para obtener más información, consulte Configure how to synchronize or migrate triggers.
NotaEsta opción solo está disponible cuando se seleccionan Migration Types y Schema Migration para Incremental Data Migration.
SQL Server Incremental Synchronization Mode
NotaEsta configuración solo está disponible si se selecciona Migration Types como Incremental Data Migration.
The maximum number of tables for which CDC is enabled that DTS supports.
Establezca un límite razonable para el número de tablas en las que se puede habilitar CDC en esta instancia de migración. El valor predeterminado es 1000.
NotaEsta configuración no está disponible cuando selecciona SQL Server Incremental Synchronization Mode como Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).
Processing Mode of Conflicting Tables
-
Precheck and Report Errors: comprueba si la base de datos de destino contiene tablas con los mismos nombres que las del origen. Si no existen dichas tablas, la tarea se inicia normalmente. De lo contrario, la comprobación previa falla y la tarea no se inicia.
Solución: si no puede eliminar o cambiar el nombre de la tabla en conflicto en la base de datos de destino, utilice schema, table, and column name mapping para modificar el nombre de la tabla en el destino.
-
Ignore Errors and Proceed: omite la comprobación de tablas con el mismo nombre en la base de datos de destino.
AvisoSeleccionar Ignore Errors and Proceed puede provocar inconsistencias en los datos y representar riesgos para su negocio. Por ejemplo:
-
Si las estructuras de las tablas son iguales y la tabla de destino ya contiene registros con los mismos valores de clave primaria que la de origen:
-
Durante la migración completa, DTS conserva los registros existentes en la tabla de destino y no migra los registros correspondientes del origen.
-
Durante la migración incremental, los datos nuevos del origen podrían sobrescribir los datos de la tabla de destino, lo que provoca la pérdida de datos históricos.
-
-
Si las estructuras de las tablas son diferentes, es posible que solo se migren datos parciales o que la migración falle. Utilice esta opción con precaución.
-
Source Objects
En el cuadro Source Objects, haga clic en los objetos que desea migrar y luego haga clic en
para moverlos al cuadro Selected Objects.NotaLa granularidad para seleccionar objetos de migración es esquema, tabla y columna. Si selecciona únicamente tablas o columnas como objetos de migración, otros objetos como vistas, triggers y procedimientos almacenados no se migrarán a la base de datos de destino.
Selected Objects
-
Para cambiar el nombre de un solo objeto de migración en la instancia de destino, haga clic con el botón derecho en el objeto dentro del cuadro Selected Objects. Para obtener más información, consulte Map individual schema, table, and column names.
-
Para cambiar los nombres de varios objetos de migración en la instancia de destino, haga clic en Selected Objects en la esquina superior derecha del cuadro Batch Edit. Para obtener más información, consulte Map multiple schema, table, and column names.
Nota-
Si utiliza la asignación de nombres de objetos, la migración de otros objetos que dependan del objeto renombrado podría fallar.
-
Para filtrar datos mediante una cláusula WHERE, haga clic con el botón derecho en una tabla dentro del cuadro Selected Objects y aplique set the filter conditions en el cuadro de diálogo que aparece.
-
Para seleccionar las operaciones SQL que se van a migrar a nivel de base de datos o de tabla, haga clic con el botón derecho en un objeto dentro del cuadro Selected Objects y elija las operaciones SQL deseadas en el cuadro de diálogo.
-
-
Haga clic en Next: Advanced Settings para configurar los parámetros avanzados.
Configuración
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
Después de que se inicie la tarea de migración, si la conexión a la base de datos de origen o de destino falla, DTS reporta un error y comienza inmediatamente a reintentar la conexión. La duración predeterminada de reintento es de 720 minutos. Puede personalizar el tiempo de reintento a un valor de entre 10 y 1440 minutos. Se recomienda establecer la duración en más de 30 minutos. Si DTS se vuelve a conectar a las bases de datos de origen y de destino dentro de la duración especificada, la tarea de migración se reanuda automáticamente. De lo contrario, la tarea falla.
NotaPara varias instancias de DTS que comparten el mismo origen o destino, el tiempo de reintento de red se determina según 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 de negocio, o liberar la instancia de DTS lo antes posible después de liberar las instancias de las bases de datos de origen y de destino.
Retry Time for Other Issues
Después de que se inicie la tarea de migración, si ocurre un problema que no sea de conectividad en la base de datos de origen o de destino, como una excepción en la ejecución de DDL o DML, DTS reporta un error y comienza inmediatamente a reintentar la operación. La duración predeterminada de reintento es de 10 minutos. Puede personalizar el tiempo de reintento a un valor de entre 1 y 1440 minutos. Se recomienda establecer la duración en más de 10 minutos. Si las operaciones relacionadas se ejecutan correctamente dentro de la duración de reintento especificada, la tarea de migración se reanuda automáticamente. De lo contrario, la tarea falla.
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 que 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. Puede configurar 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 optar por establecer límites de velocidad para la tarea de migración incremental. Puede configurar 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. Esto no es obligatorio para este ejemplo.
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 de negocio.
No: no configura ninguna alerta.
Yes: configura alertas estableciendo 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 consultar 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 consultar 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 que comience la tarea de migración, DTS ejecuta una comprobación previa. La tarea solo se inicia después de aprobar dicha comprobación.
Si la comprobación previa falla, haga clic en View Details junto al elemento con errores, resuelva 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 con errores, resuelva 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 surgir problemas como inconsistencias en los datos y representar riesgos para su negocio.
-
Adquiera la instancia.
Cuando Success Rate sea del 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 siguiente tabla.
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. Puede seleccionar una especificación según su escenario de negocio. 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 una vez completada la migración total. Después de que la tarea se detenga, 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 esté en ejecución, el Status de la tarea será Running.
Apéndice 1: operaciones de SQL para la migración incremental
Operaciones DML
INSERT, UPDATE, DELETE
No se admiten las instrucciones UPDATE que modifican exclusivamente objetos grandes.
Operaciones DDL
-
CREATE TABLE
NotaNo se admiten particiones ni funciones dentro de las definiciones de tabla.
-
ALTER TABLE
Solo se admiten ADD COLUMN y DROP COLUMN.
DROP TABLE
CREATE INDEX, DROP INDEX
No se admiten las operaciones DDL transaccionales. Por ejemplo, ejecutar una sola instrucción que agregue varias columnas o que combine operaciones DDL y DML puede provocar pérdida de datos.
No se admiten las operaciones DDL que involucran tipos definidos por el usuario.
No se admiten las operaciones DDL en línea.
No se admiten las operaciones DDL que usan una palabra clave reservada como nombre de atributo.
No se admiten las operaciones DDL provenientes de un procedimiento almacenado del sistema.
No se admiten las operaciones TRUNCATE TABLE.
Apéndice 2: objetos compatibles
Objetos compatibles: tablas, vistas, desencadenadores de tabla, sinónimos, procedimientos almacenados de SQL, funciones de SQL, guías de plan, tipos definidos por el usuario, reglas, valores predeterminados y secuencias.
Objetos no compatibles: ensamblados, service brokers, índices de texto completo, catálogos de texto completo, esquemas distribuidos, funciones distribuidas, procedimientos almacenados CLR, funciones escalares CLR, funciones con valores de tabla CLR, tablas internas, objetos del sistema y funciones de agregado.