Uso de una base de datos IBM Db2 para Linux, Unix, Windows y Amazon RDS (Db2 LUW) como origen para AWS DMS - AWS Database Migration Service

Uso de una base de datos IBM Db2 para Linux, Unix, Windows y Amazon RDS (Db2 LUW) como origen para AWS DMS

Los datos de una base de datos IBM Db2 para Linux, Unix, Windows y Amazon RDS (Db2 LUW) pueden migrarse a cualquier base de datos de destino admitida con AWS Database Migration Service (AWS DMS).

Para obtener información sobre las versiones de Db2 en Linux, Unix, Windows y RDS que AWS DMS admite como origen, consulte Orígenes para AWS DMS.

Puede utilizar la Capa de conexión segura (SSL) para cifrar las conexiones entre el punto de enlace de Db2 LUW y la instancia de replicación. Para obtener más información sobre cómo utilizar SSL con un punto de enlace de Db2 LUW, consulte Uso de SSL con AWS Database Migration Service.

Requisitos previos al utilizar Db2 LUW como origen para AWS DMS

Los siguientes requisitos previos son necesarios para poder utilizar una base de datos Db2 LUW como origen.

Para habilitar la replicación continua, también llamada captura de datos de cambios (CDC), haga lo siguiente:

  • Establezca la base de datos para que sea recuperable, que AWS DMS requiere para capturar los cambios. Una base de datos es recuperable si uno o ambos parámetros de configuración de la base de datos, LOGARCHMETH1 y LOGARCHMETH2, se establecen en ON.

    Si la base de datos es recuperable, AWS DMS puede acceder a Db2 ARCHIVE LOG si lo necesita.

  • Asegúrese de que los registros de transacciones de DB2 estén disponibles y que tengan un periodo de retención suficiente para que los procese AWS DMS.

  • DB2 requiere una autorización SYSADM o DBADM para extraer los registros de transacciones. Conceda a la cuenta de usuario los siguientes permisos:

    • SYSADM o DBADM

    • DATAACCESS

    nota

    Para las tareas exclusivas de carga completa, la cuenta de usuario de DMS necesita el permiso DATAACCESS.

  • Cuando utilice la versión 9.7 de IBM DB2 para LUW como origen, establezca el atributo de conexión adicional (ECA), CurrentLSN de la siguiente manera:

    CurrentLSN=LSN donde LSN especifica un número de secuencia de registro (LSN) donde desea que comience la replicación. O CurrentLSN=scan.

  • Al usar Amazon RDS para Db2 LUW como origen, asegúrese de que los registros de archivo estén disponibles para AWS DMS. Dado que las bases de datos Db2 administradas por AWS purgan los registros binarios tan pronto como es posible, debe aumentar el tiempo durante el cual los registros permanecen disponibles. Por ejemplo, para incrementar la retención de registros a 24 horas, ejecute el siguiente comando:

    db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"

    Para obtener más información sobre los procedimientos de Amazon RDS para Db2 LUW, consulte la Referencia de procedimientos almacenados de Amazon RDS para Db2 en la Guía del usuario de Amazon Relational Database Service.

Restricciones al usar Db2 LUW como origen para AWS DMS

AWS DMS no admite bases de datos en clúster. Sin embargo, puede definir una base de datos Db2 LUW independiente para cada uno de los puntos de enlace de un clúster. Por ejemplo, puede crear una tarea de migración de carga completa con cualquiera de los nodos del clúster y, a continuación, crear tareas independientes de cada nodo.

AWS DMS no admite el tipo de datos BOOLEAN de la base de datos Db2 LUW de origen.

Al utilizar la replicación continua (CDC), se aplican las siguientes restricciones:

  • Al truncarse una tabla con varias particiones, el número de eventos DDL que se muestra en la consola de AWS DMS es igual al número de particiones. Esto se debe a que Db2 LUW registra un DDL individual para cada partición.

  • Las siguientes acciones de DDL no se admiten en las tablas con particiones:

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DETACH PARTITION

    • ALTER TABLE ATTACH PARTITION

  • AWS DMS no admite una migración de replicación continua desde una instancia en espera de recuperación de desastres de alta disponibilidad (HADR) de DB2. No se puede acceder al modo de espera.

  • No se admite el tipo de datos DECFLOAT. Por lo tanto, los cambios en las columnas DECFLOAT se omiten durante la replicación continua.

  • No se admite la instrucción RENAME COLUMN.

  • Al realizar actualizaciones en las tablas de clústeres multidimensionales (MDC), cada actualización se muestra en la consola de AWS DMS como INSERT + DELETE.

  • Cuando la opción de tarea Include LOB columns in replication (Incluir columnas LOB en la replicación) no está habilitada, toda tabla que tenga columnas LOB se suspende durante la replicación continua.

  • Para Db2 LUW versión 10.5 y posteriores: las columnas de cadena de longitud variable con datos que se almacenan fuera de fila se omiten. Esta limitación solo se aplica a las tablas creadas con un tamaño de fila ampliado para columnas con tipos de datos como VARCHAR y VARGRAPHIC. Para evitar esta limitación, mueva la tabla a un espacio de tabla con un tamaño de página superior. Para obtener más información, consulte Qué puedo hacer si quiero cambiar el tamaño de página de los espacios de tablas de DB2.

  • Para una replicación continua, DMS no admite la migración de los datos cargados en nivel de página por la utilidad DB2 LOAD. En su lugar, utilice la utilidad IMPORT, que utiliza inserciones SQL. Para obtener más información, consulte las diferencias entre las utilidades de importación y carga.

  • Mientras se ejecuta una tarea de replicación, DMS captura DDL de CREATE TABLE solo si las tablas se crearon con el atributo DATA CAPTURE CHANGE.

  • DMS presenta las siguientes limitaciones al utilizar la característica de partición de bases de datos de Db2:

    • DMS no puede coordinar las transacciones entre los nodos de Db2 en un entorno de partición de bases de datos. Esto se debe a las limitaciones de la interfaz de la API DB2READLOG de IBM. En el entorno de partición de bases de datos, las transacciones pueden abarcar varios nodos de Db2, según la forma en que Db2 particione los datos. Como resultado, la solución de DMS debe capturar las transacciones de cada nodo de Db2 de forma independiente.

    • DMS puede capturar las transacciones locales de cada nodo de Db2 en el clúster de partición de bases de datos si se establece connectNode en 1 en varios puntos de conexión de origen de DMS. Esta configuración corresponde a los números de nodos lógicos definidos en el archivo db2nodes.cfg de configuración del servidor Db2.

    • Las transacciones locales en nodos individuales de Db2 pueden formar parte de una transacción global más grande. DMS aplica cada transacción local de forma independiente en el destino, sin coordinación con las transacciones de otros nodos de Db2. Este procesamiento independiente puede provocar complicaciones, sobre todo cuando se mueven las filas entre las particiones.

    • Cuando DMS se replica desde varios nodos de Db2, no se garantiza el orden correcto de las operaciones en el destino, ya que DMS aplica las operaciones de forma independiente para cada nodo de Db2. Debe asegurarse de que la captura de transacciones locales con independencia de cada nodo de Db2 funcione para su caso de uso específico.

    • Al migrar desde un entorno de partición de bases de datos, se recomienda ejecutar primero una tarea de carga completa sin eventos en caché y, después, ejecutar tareas exclusivas de CDC. Se recomienda ejecutar una tarea por nodo de Db2, a partir de la marca de tiempo de inicio de carga completa o del identificador de registro que haya establecido mediante la configuración del punto de conexión StartFromContext. Para obtener información sobre cómo determinar el punto de inicio de la replicación, consulte la sección para encontrar el valor LSN o LRI para el inicio de la replicación en la documentación de soporte de IBM.

  • Para la replicación continua (CDC), si planea iniciar la replicación desde una marca temporal específica, debe establecer el atributo de conexión StartFromContext en la marca temporal requerida.

  • Actualmente, DMS no admite la característica pureScale de Db2, una extensión de DB2 LUW que puede utilizar para escalar la solución de base de datos.

Configuración de punto de conexión cuando se utiliza Db2 LUW como origen para AWS DMS

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

La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con Db2 LUW como origen.

Nombre Descripción

CurrentLSN

Para la replicación continua de cambios (CDC), utilice CurrentLSN para especificar un número de secuencia de registro (LSN) donde desea que comience la replicación.

MaxKBytesPerRead

Número máximo de bytes por lectura, como valor NUMBER. El valor predeterminado es 64 KB.

SetDataCaptureChanges

Habilita la replicación continua (CDC) como valor booleano. El valor predeterminado es true.

StartFromContext

Para la replicación continua (CDC), utilice StartFromContext para especificar un límite inferior de un registro desde donde desea que comience la replicación. StartFromContext acepta diferentes formas de valores. Los valores válidos son:

  • timestamp (UTC). Por ejemplo:

    '{"StartFromContext": "timestamp:2021-09-21T13:00:00"}'
  • NOW

    Para IBM DB2 LUW versión 10.5 y superior, NOW combinado con CurrentLSN: análisis, inicia la tarea desde la versión de LSO más reciente. Por ejemplo:

    '{"CurrentLSN": "scan", "StartFromContext": "NOW"}'
  • Un valor LRI específico. Por ejemplo:

    '{"StartFromContext": "0100000000000022CC000000000004FB13"}'

Para determinar el rango de LRI/LSN de un archivo de registro, ejecute el comando db2flsn como se muestra en el siguiente ejemplo.

db2flsn -db SAMPLE -lrirange 2

El resultado de ese ejemplo es similar al siguiente.

S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to 000000000000000100000000000022CC000000000004FB13

En ese resultado, el archivo de registro es S0000002.LOG y el valor LRI de StartFromContext son los 34 bytes que se encuentran al final del rango.

0100000000000022CC000000000004FB13

Tipos de datos de origen para IBM Db2 LUW

La migración de datos que utiliza Db2 LUW como origen para AWS DMS admite la mayoría de los tipos de datos de Db2 LUW. En la siguiente tabla se muestran los tipos de datos de origen de Db2 LUW que se admiten cuando se utiliza AWS DMS y el mapeo predeterminado de los tipos de datos de AWS DMS. Para obtener más información sobre los tipos de datos de Db2 LUW, consulte la documentación sobre Db2 LUW.

Para obtener más información sobre cómo ver el tipo de datos que se asigna en el destino, consulte la sección del punto de enlace de destino que esté utilizando.

Para obtener más información sobre los tipos de datos de AWS DMS, consulte Tipos de datos de AWS Database Migration Service.

Tipos de datos de Db2 LUW

Tipos de datos de AWS DMS

INTEGER

INT4

SMALLINT

INT2

BIGINT

INT8

DECIMAL (p,s)

NUMERIC (p,s)

FLOAT

REAL8

DOBLE

REAL8

REAL

REAL4

DECFLOAT (p)

Si la precisión es 16, entonces REAL8; si la precisión es 34, entonces STRING

GRAPHIC (n)

WSTRING, para cadenas de gráficos de longitud fija de caracteres de dos bytes con una longitud mayor que 0 y menor o igual a 127

VARGRAPHIC (n)

WSTRING, para cadenas de gráficos de longitud variable con una longitud mayor que 0 y menor o igual a 16.352 caracteres de dos bytes

LONG VARGRAPHIC (n)

CLOB, para cadenas de gráficos de longitud variable con una longitud mayor que 0 y menor o igual a 16.352 caracteres de dos bytes

CHARACTER (n)

STRING, para cadenas de longitud fija de caracteres de dos bytes con una longitud mayor que 0 y menor o igual a 255

VARCHAR (n)

STRING, para cadenas de longitud variable de caracteres de dos bytes con una longitud mayor que 0 y menor o igual a 32.704

LONG VARCHAR (n)

CLOB, para cadenas de longitud variable de caracteres de dos bytes con una longitud mayor que 0 y menor o igual a 32.704

CHAR (n) FOR BIT DATA

BYTES

VARCHAR (n) FOR BIT DATA

BYTES

LONG VARCHAR FOR BIT DATA

BYTES

FECHA

FECHA

HORA

HORA

MARCA DE TIEMPO

DATETIME

BLOB (n)

BLOB

La longitud máxima es de 2 147 483 647 bytes

CLOB (n)

CLOB

La longitud máxima es de 2 147 483 647 bytes

DBCLOB (n)

CLOB

La longitud máxima es 1 073 741 824 de caracteres de dos bytes

XML

CLOB