Uso de una base de datos de Microsoft SQL Server como destino para AWS Database Migration Service - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de una base de datos de Microsoft SQL Server como destino para AWS Database Migration Service

Puede migrar datos a bases de datos de Microsoft SQL Server mediante AWS DMS. Con una base de datos de SQL Server como destino, podrá migrar datos desde otra base de datos de SQL Server o desde una de las bases de datos compatibles.

Para obtener información sobre las versiones del servidor de SQL que AWS DMS admite como destino, consulte Objetivos para AWS DMS.

AWS DMS es compatible con las ediciones en las instalaciones y Amazon RDS de Enterprise, Standard, Workgroup y Developer.

Para obtener más información sobre cómo trabajar con AWS DMS y las bases de datos de destino de SQL Server, consulte lo siguiente.

Restricciones al uso de SQL Server como destino para AWS Database Migration Service

Cuando se utiliza una base de datos de SQL Server como destino para AWS DMS, se aplican las siguientes restricciones:

  • Al crear manualmente una tabla de destino de SQL Server con una columna calculada, no se admite la replicación de carga completa al utilizar la utilidad de copia en masa de BCP. Para utilizar la replicación de carga completa, desactive la carga de BCP configurando el atributo de conexión adicional (ECA) 'useBCPFullLoad=false' en el punto de conexión. Para obtener información sobre la configuración de ECA en puntos de conexión, consulte Creación de puntos de enlace de origen y destino. Para obtener más información sobre cómo trabajar con BCP, consulte la documentación de Microsoft SQL Server.

  • Al replicar tablas con SQL Server y tipos de datos espaciales (GEOMETRY y GEOGRAPHY), AWS DMS reemplaza cualquier identificador de referencia espacial (SRID) que podría haber insertado con el SRID predeterminado. El SRID predeterminado es 0 para GEOMETRY y 4326 para GEOGRAPHY.

  • No se permite usar tablas temporales. La migración de tablas temporales podría funcionar con una tarea de solo replicación en modo de aplicación transaccional si dichas tablas se crean manualmente en el destino.

  • Actualmente, los tipos de datos boolean de un origen de PostgreSQL se migran a un destino de SQLServer como tipo de datos bit con valores incoherentes.

    Para resolver este problema, haga lo siguiente:

    • Cree previamente la tabla con un tipo datos VARCHAR(1) para la columna (o deje que AWS DMS cree la tabla). A continuación, haga que el procesamiento descendente trate la "F" como falso y la "T" como verdadero.

    • Para evitar tener que cambiar el procesamiento posterior, agregue una regla de transformación a la tarea para cambiar los valores “F” a “0” y los valores “T” a 1 y guárdelos como el tipo de datos de bits del servidor SQL.

  • AWS DMS no admite el procesamiento de cambios para establecer la nulabilidad de las columnas (se usa la cláusula ALTER COLUMN [SET|DROP] NOT NULL con las instrucciones ALTER TABLE).

  • No se admite la autenticación de Windows.

Requisitos de seguridad al utilizar SQL Server como destino para AWS Database Migration Service

A continuación se describen los requisitos de seguridad para utilizar AWS DMS con Microsoft SQL Server como destino:

  • La cuenta de usuario de AWS DMS debe tener al menos el rol de usuario db_owner en la base de datos de SQL Server a la que se está conectando.

  • Un administrador del sistema de SQL Server deberá proporcionar este permiso a todas las cuentas de usuario de AWS DMS.

Configuración de punto de conexión cuando se utiliza SQL Server como destino para AWS DMS

Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino de SQL Server de forma similar al uso de atributos de conexión adicionales. Se especifican los ajustes cuando se crea el punto de conexión de destino mediante la consola de AWS DMS o mediante el comando create-endpoint en la AWS CLI, con la sintaxis JSON --microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'.

La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con SQL Server como destino.

Nombre Descripción

ControlTablesFileGroup

Especifique un grupo de archivos para las tablas internas de AWS DMS. Cuando la tarea de replicación comienza, todas las tablas de control internas de AWS DMS (awsdms_ apply_exception, awsdms_apply, awsdms_changes) se crean en el grupo de archivos especificado.

Valor predeterminado: n/a

Valores válidos: string

Ejemplo: --microsoft-sql-server-settings '{"ControlTablesFileGroup": "filegroup1"}'

A continuación se ofrece un ejemplo de un comando para la creación de un grupo de archivos.

ALTER DATABASE replicate ADD FILEGROUP Test1FG1; GO ALTER DATABASE replicate ADD FILE (        NAME = test1dat5,        FILENAME = 'C:\temp\DATA\t1dat5.ndf',        SIZE = 5MB,        MAXSIZE = 100MB,        FILEGROWTH = 5MB    )    TO FILEGROUP Test1FG1;    GO

ExecuteTimeout

Utilice este atributo de conexión adicional (ECA) para establecer el tiempo de espera de la instrucción del cliente para la instancia de SQL Server, en segundos. El valor de predeterminado es de 60 segundos.

Ejemplo: '{"ExecuteTimeout": 100}'

UseBCPFullLoad

Utilice este atributo para transferir datos para operaciones de carga completa con BCP. Cuando la tabla de destino contiene una columna de identidad que no existe en la tabla de origen, debe desactivar la opción Usar BCP para cargar la tabla.

Valor predeterminado: verdadero

Valores válidos: true/false

Ejemplo: --microsoft-sql-server-settings '{"UseBCPFullLoad": false}'

Tipos de datos de destino para Microsoft SQL Server

La siguiente tabla muestra los tipos de datos de destino de Microsoft SQL Server que se admiten cuando se utiliza AWS DMS y la asignación predeterminada desde los tipos de datos de AWS DMS. Para obtener más información sobre los tipos de datos de AWS DMS, consulte Tipos de datos de AWS Database Migration Service.

Tipo de datos AWS DMS

Tipos de datos de SQL Server

BOOLEAN

TINYINT

BYTES

VARBINARY (longitud)

FECHA

Para SQL Server 2008 y versiones superiores, utilice DATE.

Para versiones anteriores, si la escala es 3 o inferior, utilice DATETIME. En el resto de casos, utilice VARCHAR (37).

TIME

Para SQL Server 2008 y superiores, use DATETIME2 (%d).

Para versiones anteriores, si la escala es 3 o inferior, utilice DATETIME. En el resto de casos, utilice VARCHAR (37).

DATETIME

Para SQL Server 2008 y superiores, use DATETIME2 (escala).

Para versiones anteriores, si la escala es 3 o inferior, utilice DATETIME. En el resto de casos, utilice VARCHAR (37).

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC (p,s)

REAL4

REAL

REAL8

FLOAT

STRING

Si la columna es una columna de fecha u hora, haga lo siguiente:

  • Para SQL Server 2008 y superiores, use DATETIME2.

  • Para versiones anteriores, si la escala es 3 o inferior, utilice DATETIME. En el resto de casos, utilice VARCHAR (37).

Si la columna no es una columna de fecha o de hora, utilice VARCHAR (longitud).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR (longitud)

BLOB

VARBINARY (máx.)

IMAGE

Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de BLOB para una tarea en particular. AWS DMS solo es compatible con tipos de datos BLOB en tablas que incluyan una clave principal.

CLOB

VARCHAR (máx.)

Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de CLOB para una tarea concreta. En la captura de datos de cambios (CDC), AWS DMS admite tipos de datos CLOB solo en tablas que incluyan una clave principal.

NCLOB

NVARCHAR (máx.)

Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de NCLOB para una tarea en particular. En la CDC, AWS DMS admite tipos de datos NCLOB solo en las tablas que incluyan una clave principal.