

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.

# Migre Db2 for LUW a Amazon EC2 mediante el envío de registros para reducir el tiempo de interrupción
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar y Saurabh Sharma, Amazon Web Services*

## Resumen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Cuando los clientes migran sus cargas de trabajo de IBM Db2 for LUW (Linux, UNIX y Windows) a Amazon Web Services (AWS), la forma más rápida es utilizar Amazon Elastic Compute Cloud (Amazon EC2) con el modelo Bring Your Own License (BYOL). Sin embargo, la migración de grandes cantidades de datos de Db2 en las instalaciones a AWS puede ser un desafío, especialmente cuando el periodo de interrupción es corto. Muchos clientes intentan establecer el periodo de interrupción en menos de 30 minutos, lo que deja poco tiempo para la propia base de datos.

Este patrón explica cómo realizar una migración a Db2 con un breve periodo de interrupción mediante el envío del registro de transacciones. Este enfoque se aplica a Db2 en una plataforma Linux little endian.

## Requisitos previos y limitaciones
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una instancia de Db2 que se ejecuta en una instancia que coincide con los diseños del EC2 sistema de archivos local
+ Un bucket de Amazon Simple Storage Service (Amazon S3) al que pueda acceder la instancia EC2 
+ Un rol y una política de AWS Identity and Access Management (IAM) para hacer llamadas programáticas a Amazon S3
+ Relojes del sistema y zona horaria sincronizados en Amazon EC2 y el servidor local
+ La red local conectada a AWS a través de [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/) o [AWS Direct Connect](https://aws.amazon.com/directconnect/)

**Limitaciones**
+ La instancia local de Db2 y Amazon EC2 deben estar en la misma familia de [plataformas](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ Se debe registrar la carga de trabajo en las instalaciones de Db2. Establezca `blocknonlogged=yes` en la configuración de la base de datos para bloquear cualquier transacción no registrada.

**Versiones de producto**
+ Db2 para LUW, versión 11.5.9 y posteriores

## Arquitectura
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Pila de tecnología de origen**
+ Db2 en Linux** **x86\$164

**Pila de tecnología de destino**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity y Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN o Direct Connect

**Arquitectura de destino**

El siguiente diagrama muestra una instancia de Db2 que se ejecuta localmente con una conexión de red privada virtual (VPN) a Db2 en Amazon. EC2 Las líneas de puntos representan el túnel de VPN entre su centro de datos y la nube de AWS.

![\[Flujo de trabajo para llevar a cabo una migración a Db2 con un breve periodo de interrupción mediante el envío del registro de transacciones.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Tools (Herramientas)
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Servicios de AWS**
+ La [interfaz de la línea de comandos de AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le permite interactuar con los servicios de AWS mediante comandos en su intérprete de comandos de línea de comandos.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) vincula su red interna con una ubicación de Direct Connect a través de un cable estándar Ethernet de fibra óptica. Con esta conexión, puede crear interfaces virtuales directamente en servicios públicos de AWS omitiendo a los proveedores de servicios de Internet en su ruta de acceso a la red.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) proporciona volúmenes de almacenamiento a nivel de bloques para utilizarlos con instancias de Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ La [ Site-to-SiteVPN de AWS](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) le ayuda a transferir el tráfico entre las instancias que lanza en AWS y su propia red remota.

**Otras herramientas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) es el comando CLI interactivo de Db2.

## Prácticas recomendadas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ En la base de datos de destino, utilice los [puntos de conexión de puerta de enlace de Amazon S3 para](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) acceder a la imagen de copia de seguridad y a los archivos de registro de la base de datos en Amazon S3.
+ En la base de datos de origen, utilice [AWS PrivateLink para Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) para enviar la imagen de respaldo y los archivos de registro de la base de datos a Amazon S3.

## Epics
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Configuración de las variables de entorno
<a name="set-environment-variables"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure las variables de entorno. | Este patrón utiliza los siguientes nombres:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Puede cambiarlos para adaptarlos a su entorno. | Administrador de base de datos | 

### Configure el servidor Db2 en las instalaciones
<a name="configure-the-on-premises-db2-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure la CLI de AWS. | Utilice los siguientes comandos para descargar e instalar la versión más reciente de la AWS CLI:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrador de Linux | 
| Configure un destino en las instalaciones para los registros de archivos de Db2. | Para mantener la base de datos de destino de Amazon EC2 sincronizada con la base de datos de origen local, es necesario recuperar los registros de transacciones más recientes de la fuente.En esta configuración, `/db2logs` se establece como `LOGARCHMETH2` en la fuente como área de almacenamiento provisional. Los registros archivados en este directorio se sincronizarán con Amazon S3 y Db2 en Amazon podrá acceder a ellos. EC2 El patrón usa `LOGARCHMETH2` porque `LOGARCHMETH1` podría haberse configurado para usar una herramienta de un proveedor externo a la que el comando de la CLI de AWS no pudiera acceder. Para recuperar los registros, ejecute el siguiente comando: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | Administrador de base de datos | 
| Realice una copia de seguridad de la base de datos en línea. | Haga una copia de seguridad de la base de datos en línea y guárdela en el sistema de archivos de copia de seguridad local: <pre>db2 backup db sample online to /backup </pre> | Administrador de base de datos | 

### Configuración del bucket de S3 y de la política de IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un bucket de S3. | Cree un bucket de S3 para que el servidor en las instalaciones envíe los archivos de registro y las imágenes Db2 de copia de seguridad a AWS. Amazon también accederá al depósito EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Administrador de sistemas de AWS | 
|  Cree una política de IAM. | El archivo `db2bucket.json` contiene la política de IAM para acceder al bucket de Amazon S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Utilice el siguiente comando de la AWS CLI para crear la política:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> El resultado de JSON muestra el nombre de recurso de Amazon (ARN) para la política, donde `aws_account_id` representa el ID de la cuenta:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Administrador AWS, administrador de sistemas AWS | 
| Adjunta la política de IAM a la función de IAM utilizada por la EC2 instancia. | En la mayoría de los entornos de AWS, una EC2 instancia en ejecución tiene un rol de IAM establecido por el administrador del sistema. Si la función de IAM no está configurada, cree la función y elija **Modificar la función de IAM en la EC2 consola para asociar la función** a la EC2 instancia que aloja la base de datos de Db2. Adjunte la política de IAM al rol de IAM con el ARN de la política:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Una vez asociada la política, cualquier EC2 instancia asociada a la función de IAM puede acceder al bucket de S3. | Administrador AWS, administrador de sistemas AWS | 

### Envíe los archivos de registro y la imagen de copia de seguridad de la base de datos de origen a Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure la AWS CLI en el servidor de Db2 en las instalaciones. | Configure la AWS CLI con el `Access Key ID` y la `Secret Access Key` que generó en el paso anterior:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | Administrador AWS, administrador de sistemas AWS | 
| Envíe la imagen de copia de seguridad a Amazon S3. | Anteriormente, se guardó una copia de seguridad de la base de datos en línea en el directorio `/backup` en las instalaciones. Para enviar la imagen de copia de seguridad al bucket de S3, ejecute el siguiente comando:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Administrador de AWS, ingeniero de migraciones | 
| Envíe los registros de archivo Db2 a Amazon S3. | Sincronice los registros del archivo Db2 local con el depósito de S3 al que puede acceder la instancia de Db2 de destino en Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Ejecute este comando periódicamente mediante cron u otras herramientas de programación. La frecuencia depende de la periodicidad con la que la base de datos de origen archiva los archivos de registro de transacciones.  | Administrador de AWS, ingeniero de migraciones | 

### Conecte Db2 de Amazon EC2 a Amazon S3 e inicie la sincronización de la base de datos
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un almacén de PKCS12 claves. | Db2 utiliza un almacén de claves de cifrado de estándares de criptografía de clave pública (PKCS) para mantener la seguridad de la clave de acceso de AWS. Cree un almacén de claves y configure la instancia de Db2 de origen para utilizarlo:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | Administrador de base de datos | 
| Cree el alias de acceso al almacenamiento de Db2. | Para crear el [alias de acceso al almacenamiento](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), utilice la siguiente sintaxis de script:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Por ejemplo, el script podría tener el siguiente aspecto: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | Administrador de base de datos | 
| Establece el área de almacenamiento provisional. | De forma predeterminada, Db2 usa `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` como área de montaje para cargar y descargar archivos desde y hacia Amazon S3. La ruta predeterminada es `sqllib/tmp/RemoteStorage.xxxx`, en el directorio principal de la instancia, y `xxxx` hace referencia al número de partición de Db2. Tenga en cuenta que el área de montaje debe tener capacidad suficiente para almacenar las imágenes de copia de seguridad y los archivos de registro. Puede usar el registro para apuntar el área de montaje a un directorio diferente.También recomendamos usar `DB2_ENABLE_COS_SDK=ON`, `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore` y el enlace a la biblioteca de `awssdk` para omitir el área de almacenamiento provisional de Amazon S3 a fin de hacer copias de seguridad de bases de datos y restaurarlas:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | Administrador de base de datos | 
| Restaure la base de datos a partir de la imagen de copia de seguridad. | Restaure la base de datos de destino en Amazon EC2 a partir de la imagen de respaldo del bucket S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | Administrador de base de datos | 
| Restaure la base de datos. | Una vez completada la restauración, la base de datos de destino pasará al estado pendiente de recuperación. Configure `LOGARCHMETH1` y `LOGARCHMETH2` para que Db2 sepa dónde obtener los archivos de registro de transacciones:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Inicie la recuperación de la base de datos:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Este comando procesa todos los archivos de registro que se han transferido al bucket de S3. Ejecútelo periódicamente en función de la frecuencia del comando `s3 sync` en los servidores Db2 locales. Por ejemplo, si `s3 sync` se ejecuta cada hora y se tarda 10 minutos en sincronizar todos los archivos de registro, configure el comando para que se ejecute 10 minutos después de cada hora.  | Administrador de base de datos | 

### Ponga Db2 en Amazon en EC2 línea durante el período de transición
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ponga en línea la base de datos de destino. | Durante el periodo de transición, realice una de las siguientes acciones:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Una vez sincronizado el último registro de transacciones con Amazon S3, ejecute el comando `ROLLFORWARD` por última vez:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Coloque la base de datos de destino en línea y dirija las conexiones de la aplicación a Db2 en Amazon EC2. | Administrador de base de datos | 

## Resolución de problemas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Si varias bases de datos tienen el mismo nombre de instancia y nombre de base de datos en diferentes hosts (DEV, QA, PROD), las copias de seguridad y los registros pueden ir al mismo subdirectorio. | Utilice distintos buckets de S3 para DEV, QA y PROD y agregue el nombre de host como prefijo del subdirectorio para evitar confusiones. | 
| Si hay múltiples imágenes de copia de seguridad en la misma ubicación, aparecerá el siguiente error al restaurar:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | En el comando `restore`, agregue la marca de tiempo de la copia de seguridad:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Recursos relacionados
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operaciones de copia de seguridad y restauración de Db2 entre diferentes sistemas operativos y plataformas de hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configure STORAGE ACCESS ALIAS y REMOTE de Db2 DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Comando Db2 ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Método de archivo de registro secundario de Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)