

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 la base de datos IBM Db2 para Linux, Unix, Windows y Amazon RDS (Db2 LUW) como fuente para AWS DMS
<a name="CHAP_Source.DB2"></a>

Puede migrar datos de una base de datos IBM Db2 para Linux, Unix, Windows y Amazon RDS (Db2 LUW) a cualquier base de datos de destino compatible mediante (). AWS Database Migration Service AWS DMS

Para obtener información sobre las versiones de Db2 en Linux, Unix, Windows y RDS que son compatibles como fuente, consulte. AWS DMS [Fuentes de AWS DMS](CHAP_Introduction.Sources.md) 

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](CHAP_Security.SSL.md).

Cuando AWS DMS lee los datos de una base de datos fuente de IBM Db2, utiliza el nivel de aislamiento CURSOR STABILITY (CS) predeterminado para la versión 9.7 y superior de Db2. Para obtener más información, consulte la documentación de [IBM Db2 for Linux, UNIX and Windows](https://www.ibm.com/docs/en/db2/12.1.0).

## Requisitos previos al utilizar Db2 LUW como fuente de AWS DMS
<a name="CHAP_Source.DB2.Prerequisites"></a>

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:
+ Configure la base de datos para que sea recuperable, lo que AWS DMS requiere 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 su base de datos es recuperable, AWS DMS puede acceder al Db2 si es necesario. `ARCHIVE LOG`
+ Asegúrese de que los registros de transacciones del DB2 estén disponibles y que tengan un período de retención suficiente para procesarlos. 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`
+ Para las tareas que **solo se cargan a plena carga**, la cuenta de usuario del DMS necesita los siguientes permisos:

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_SYS_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DB2_CF TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO USER <DMS_USER>;
  
  -- Use the following queries to generate the grants, and then execute the resulting statements.
  SELECT 'GRANT SELECT ON SYSCAT.' || RTRIM(TABNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SYSCAT' AND TYPE = 'V';
  SELECT 'GRANT SELECT ON SYSIBM.' || RTRIM(TABNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SYSIBM' AND TYPE in ('T', 'V');
  SELECT 'GRANT EXECUTE ON PACKAGE NULLID.' || RTRIM(PKGNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.PACKAGES WHERE PKGSCHEMA = 'NULLID';
  SELECT 'GRANT EXECUTE ON PROCEDURE SYSIBM.' || RTRIM(PROCNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.PROCEDURES WHERE PROCSCHEMA = 'SYSIBM';
  
  -- For all the source tables grant the select permission
  GRANT SELECT ON <SCHEMA>.<TABLE> TO USER <DMS_USER>;
  ```
+ 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}}`.
+ Cuando utilice Amazon RDS para Db2 LUW como fuente, asegúrese de que los registros del archivo estén disponibles para. AWS DMS Dado que las bases AWS de datos Db2 administradas purgan los registros del archivo lo antes posible, debe aumentar el tiempo que 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-stored-procedures.html) en la *Guía del usuario de Amazon Relational Database Service*.
+ Conceda los siguientes privilegios si utiliza las evaluaciones previas a la migración específicas de DB2:

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.SCHEMATA TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.COLUMNS TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.TABLES TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO <DMS_USER>;
  GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO USER <DMS_USER>;
  ```

## Limitaciones a la hora de utilizar Db2 LUW como fuente de AWS DMS
<a name="CHAP_Source.DB2.Limitations"></a>

AWS DMS no admite bases de datos agrupadas. 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 `BOOLEAN` datos de la base de datos LUW Db2 de origen.

Al utilizar la replicación continua (CDC), se aplican las siguientes restricciones:
+ Cuando se trunca una tabla con varias particiones, el número de eventos DDL que se muestran en la AWS DMS consola 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 ante desastres (HADR) 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 actualizar las tablas de agrupamiento en Multi-Dimensional clústeres (MDC), cada actualización se muestra en la AWS DMS consola 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]( https://www.ibm.com/support/pages/what-can-i-do-if-i-want-change-pagesize-db2-tablespaces ).
+ 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]( https://www.ibm.com/docs/en/db2/11.1?topic=utilities-differences-between-import-load-utility). 
+ 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 DPF, se recomienda ejecutar primero una tarea a plena carga sin eventos en caché y, a continuación, ejecutar las tareas. CDC-only Recomendamos ejecutar una tarea por nodo de Db2, empezando por la marca de tiempo de inicio a plena carga o el LRI (identificador de registro) que haya configurado con el atributo de conexión adicional del punto final. `StartFromContext` Para obtener información sobre cómo determinar el punto de inicio de la replicación, consulte [Finding the LSN or LRI value for replication start](https://www.ibm.com/support/pages/db2-finding-lsn-or-lri-value-replication-start) en la *documentación de soporte de IBM*. 
+ Para la replicación continua (CDC), si planea iniciar la replicación desde una marca de tiempo específica, debe establecer el atributo de conexión `StartFromContext` adicional en la marca de tiempo 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.
+ La opción de tabla `DATA CAPTURE CHANGES` es un requisito previo fundamental para los procesos de replicación de datos de DB2. Si no se habilita esta opción al crear tablas, es posible que falten datos, especialmente en el caso de la CDC (Change Data Capture), que solo se trata de tareas de replicación iniciadas desde un punto de partida anterior. AWS DMS activará este atributo de forma predeterminada al reiniciar una tarea de CDC o FULL\+CDC. Sin embargo, es posible que se omita cualquier cambio realizado en la base de datos de origen antes del reinicio de la tarea.

  ```
  ALTER TABLE TABLE_SCHEMA.TABLE_NAME DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
  ```

AWS DMS no admite la migración de tablas de los siguientes esquemas del sistema DB2:
+ `SYSIBM`
+ `SYSIBMADM`
+ `SYSCAT`
+ `SYSSTAT`
+ `SYSPROC`
+ `SYSFUN`
+ `SYSPUBLIC`
+ `SYSTOOLS`

Estos esquemas contienen tablas del catálogo del sistema DB2 cuyos metadatos no se pueden recuperar. AWS DMS Si las reglas de selección de mapeo de tablas incluyen estos esquemas (por ejemplo, utilizando un patrón comodín, como el nombre del esquema), es posible `%` que la tarea de migración no se realice correctamente.

Para evitar este problema, utilice uno de los siguientes enfoques en las reglas de mapeo de tablas:
+ Especifique solo los esquemas de usuario que desee migrar en sus `include` reglas.
+ Añada una `exclude` regla explícita para los esquemas del sistema DB2 antes de la regla. `include`

El siguiente ejemplo muestra las reglas de mapeo de tablas que excluyen los esquemas del sistema DB2 mediante un patrón comodín y, a continuación, incluyen todos los esquemas de usuario restantes.

```
	{
	  "rules": [
	    {
	      "rule-type": "selection",
	      "rule-id": "1",
	      "rule-name": "exclude-db2-system-schemas",
	      "object-locator": {
	        "schema-name": "SYS%",
	        "table-name": "%"
	      },
	      "rule-action": "exclude"
	    },
	    {
	      "rule-type": "selection",
	      "rule-id": "2",
	      "rule-name": "include-user-schemas",
	      "object-locator": {
	        "schema-name": "%",
	        "table-name": "%"
	      },
	      "rule-action": "include"
	    }
	  ]
	}
```

**Nota:** En las reglas de mapeo de tablas, las reglas se evalúan antes que `exclude` las reglas. `include` En este ejemplo, la `exclude` regla AWS DMS impide seleccionar ninguna tabla en los esquemas que comiencen por SYS, mientras que la `include` regla selecciona todas las tablas de los esquemas restantes.

## Configuración del punto final cuando se utiliza Db2 LUW como fuente de AWS DMS
<a name="CHAP_Source.DB2.ConnectionSettings"></a>

Puede especificar la configuración al crear el punto final de origen mediante la AWS DMS consola o mediante el `create-endpoint` comando de [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), con

`--ibm-db2-settings {{'{"EndpointSetting1": "value1","EndpointSetting2": "value2"}'}}`

Sintaxis JSON.

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


| Nombre de configuración | Description (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. | 

## Atributos de conexión adicionales (ECA) cuando se utiliza Db2 LUW como fuente de AWS DMS
<a name="CHAP_Source.DB2.ConnectionAttrib"></a>

Puede especificar los atributos de conexión adicionales (ECA) al crear el punto final de origen mediante la AWS DMS consola o mediante el `create-endpoint` comando de [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), con

`--extra-connection-attributes {{'ECAname1=value1;ECAname2=value2;'}}`

En la siguiente tabla se muestran las ECA que puede utilizar con Db2 LUW como fuente.


| Nombre de atributo | Description (Descripción) | 
| --- | --- | 
| `ConnectionTimeout` | Utilice este ECA para establecer el tiempo de espera de la conexión del punto final para el punto final LUW de Db2, en segundos. El valor de predeterminado es de 10 segundos.<br />Ejemplo: `ConnectionTimeout=30;` | 
| `executeTimeout` | Atributo de conexión adicional que establece el tiempo de espera de la instrucción (consulta) para el punto de conexión DB2 LUW, en segundos. El valor de predeterminado es de 60 segundos.<br />Ejemplo: `executeTimeout=120;` | 
| `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:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Source.DB2.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Source.DB2.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Source.DB2.html)<br />Para determinar el LRI/LSN rango de un archivo de registro, ejecute el `db2flsn` comando como se muestra en el siguiente ejemplo.<pre>db2flsn -db {{SAMPLE}} -lrirange 2</pre><br />El resultado de ese ejemplo es similar al siguiente. <pre><br />S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to <br />000000000000000100000000000022CC000000000004FB13</pre><br />En ese resultado, el archivo de registro es S0000002.LOG y el valor de **StartFromContext**LRI es de 34 bytes al final del rango.<pre>0100000000000022CC000000000004FB13</pre> | 

## Tipos de datos de origen para IBM Db2 LUW
<a name="CHAP_Source.DB2.DataTypes"></a>

La migración de datos que utiliza Db2 LUW como fuente es AWS DMS compatible con la mayoría de los tipos de datos LUW de Db2. La siguiente tabla muestra los tipos de datos de origen LUW de Db2 que se admiten cuando se utilizan AWS DMS y el mapeo predeterminado a partir de los tipos de datos. AWS DMS Para obtener más información sobre los tipos de datos de Db2 LUW, consulte la [documentación sobre Db2 LUW](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008483.html).

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 información adicional sobre AWS DMS los tipos de datos, consulte. [Tipos de datos de AWS Database Migration Service](CHAP_Reference.DataTypes.md)


|  Tipos de datos de Db2 LUW  |  AWS DMS tipos de datos  | 
| --- | --- | 
| INTEGER | INT4 | 
| SMALLINT | INT2 | 
| BIGINT | INT8 | 
| DECIMAL (p,s) | NUMERIC (p,s) | 
| FLOAT | REAL8 | 
| DOUBLE | 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 | 
| DATE | DATE | 
| TIME | TIME | 
| TIMESTAMP | DATETIME | 
| BLOB (n) | BLOB<br />La longitud máxima es de 2 147 483 647 bytes | 
| CLOB (n) | CLOB<br />La longitud máxima es de 2 147 483 647 bytes | 
| DBCLOB (n) | CLOB<br />La longitud máxima es 1 073 741 824 de caracteres de dos bytes | 
| XML | CLOB | 