

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esegui la migrazione di Db2 for LUW ad Amazon EC2 utilizzando la spedizione di log per ridurre i tempi di interruzione
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

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

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

Quando i clienti migrano i loro carichi di lavoro IBM Db2 for LUW (Linux, UNIX e Windows) su Amazon Web Services (AWS), utilizzare Amazon Elastic Compute Cloud (Amazon) con il modello Bring Your Own License (BYOL) è il modo più veloce. EC2 Tuttavia, la migrazione di grandi quantità di dati da Db2 locale ad AWS può essere una sfida, soprattutto quando la finestra di interruzione è breve. Molti clienti cercano di impostare la finestra di interruzione su meno di 30 minuti, il che lascia poco tempo per il database stesso.

Questo modello illustra come eseguire una migrazione Db2 con una breve finestra di interruzione utilizzando la spedizione dei log delle transazioni. Questo approccio si applica a Db2 su una piattaforma Linux little-endian.

## Prerequisiti e limitazioni
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su EC2 un'istanza che corrisponde ai layout del file system locale
+ Un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) accessibile all'istanza EC2 
+ Una policy e un ruolo di AWS Identity and Access Management (IAM) per effettuare chiamate programmatiche ad Amazon S3
+ Fuso orario e orologi di sistema sincronizzati su Amazon EC2 e sul server locale
+ La rete locale connessa ad AWS tramite AWS [ Site-to-SiteVPN o AWS](https://aws.amazon.com/vpn/) [Direct Connect](https://aws.amazon.com/directconnect/)

**Limitazioni**
+ L'istanza locale Db2 e Amazon EC2 devono appartenere alla stessa famiglia di [piattaforme](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ Il carico di lavoro locale di Db2 deve essere registrato. Per bloccare qualsiasi transazione non registrata, impostala nella configurazione del database. `blocknonlogged=yes`

**Versioni del prodotto**
+ Db2 per LUW versione 11.5.9 e successive

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

**Stack tecnologico di origine**
+ Db2 su Linux x86\$164****

**Stack tecnologico Target**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Simple Storage Service (Amazon S3)
+ AWS Site-to-Site VPN o Direct Connect

**Architettura Target**

Il diagramma seguente mostra un'istanza Db2 in esecuzione in locale con una connessione di rete privata virtuale (VPN) a Db2 su Amazon. EC2 Le linee tratteggiate rappresentano il tunnel VPN tra il tuo data center e il cloud AWS.

![\[Flusso di lavoro per eseguire una migrazione Db2 entro una breve finestra di interruzione utilizzando la spedizione dei log delle transazioni.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


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

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, puoi creare interfacce virtuali direttamente ai servizi AWS pubblici bypassando i provider di servizi Internet nel tuo percorso di rete.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ti aiuta a trasferire il traffico tra le istanze che avvii su AWS e la tua rete remota.

**Altri strumenti**
+ [db2cli è il comando CLI](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) interattivo di Db2.

## Best practice
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Sul database di destinazione, utilizza gli [endpoint gateway per Amazon S3 per](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) accedere all'immagine di backup del database e ai file di log in Amazon S3.
+ Sul database di origine, usa [AWS PrivateLink per Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) per inviare l'immagine di backup del database e i file di log ad Amazon S3.

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

### Impostazione delle variabili di ambiente
<a name="set-environment-variables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Imposta le variabili di ambiente. | Questo modello utilizza i seguenti nomi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)È possibile modificarli per adattarli al proprio ambiente. | DBA | 

### Configura il server Db2 locale
<a name="configure-the-on-premises-db2-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare AWS CLI. | Per scaricare e installare la versione più recente dell'interfaccia a riga di comando di AWS, esegui i seguenti comandi:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Amministratore Linux | 
| Configura una destinazione locale per i log di archivio Db2. | Per mantenere il database di destinazione su Amazon EC2 sincronizzato con il database di origine locale, è necessario recuperare i log delle transazioni più recenti dall'origine.In questa configurazione, `/db2logs` viene impostato da `LOGARCHMETH2` on the source come area di staging. I log archiviati in questa directory verranno sincronizzati in Amazon S3 e vi si accederà da Db2 su Amazon. EC2 Il pattern utilizza `LOGARCHMETH2` because `LOGARCHMETH1` potrebbe essere stato configurato per utilizzare uno strumento di un fornitore di terze parti a cui il comando AWS CLI non può accedere. Per recuperare i log, esegui il seguente comando: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Esegui un backup del database online. | Esegui un backup del database online e salvalo nel file system di backup locale: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configura il bucket S3 e la policy IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Crea un bucket S3 per il server locale a cui inviare le immagini Db2 di backup e i file di log su AWS. Il bucket sarà accessibile anche da Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Amministratore di sistema AWS | 
|  Creare una policy IAM | Il `db2bucket.json` file contiene la policy IAM per accedere al bucket 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>Per creare la policy, usa il seguente comando AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> L'output JSON mostra l'Amazon Resource Name (ARN) per la policy, `aws_account_id` dove rappresenta l'ID del tuo account:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Collega la policy IAM al ruolo IAM utilizzato dall' EC2 istanza. | Nella maggior parte degli ambienti AWS, un' EC2 istanza in esecuzione ha un ruolo IAM impostato dall'amministratore di sistema. Se il ruolo IAM non è impostato, crea il ruolo e scegli **Modifica il ruolo IAM** sulla EC2 console per associare il ruolo all' EC2 istanza che ospita il database Db2. Collega la policy IAM al ruolo IAM con la policy ARN:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Dopo aver allegato la policy, qualsiasi EC2 istanza associata al ruolo IAM può accedere al bucket S3. | Amministratore AWS, amministratore di sistema AWS | 

### Inviare l'immagine di backup del database di origine e i file di log ad Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura l'AWS CLI sul server Db2 locale. | Configura la CLI AWS con `Access Key ID` e `Secret Access Key` generata nel passaggio precedente:<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>  | Amministratore AWS, amministratore di sistema AWS | 
| Invia l'immagine di backup ad Amazon S3. | In precedenza, un backup del database online veniva salvato nella directory `/backup` locale. Per inviare l'immagine di backup al bucket S3, esegui il seguente comando:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Amministratore AWS, ingegnere addetto alla migrazione | 
| Invia i log di archivio Db2 ad Amazon S3. | Sincronizza i log di archivio Db2 locali con il bucket S3 a cui può accedere l'istanza Db2 di destinazione su Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Esegui questo comando periodicamente utilizzando cron o altri strumenti di pianificazione. La frequenza dipende dalla frequenza con cui il database di origine archivia i file di registro delle transazioni.  | Amministratore AWS, ingegnere addetto alla migrazione | 

### Connetti Db2 su Amazon EC2 ad Amazon S3 e avvia la sincronizzazione del database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un PKCS12 keystore. | Db2 utilizza un keystore di crittografia Public-Key Cryptography Standards (PKCS) per proteggere la chiave di accesso AWS. Crea un keystore e configura l'istanza Db2 di origine per utilizzarlo:<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> | DBA | 
| Crea l'alias di accesso allo storage Db2. | Per creare l'[alias di accesso allo storage](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), utilizzate la seguente sintassi dello script:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ad esempio, lo script potrebbe avere il seguente aspetto: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Imposta l'area di staging. | Per impostazione predefinita, Db2 utilizza `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` come area di gestione temporanea per caricare e scaricare file da e verso Amazon S3. Il percorso predefinito si trova nella home `sqllib/tmp/RemoteStorage.xxxx` directory dell'istanza, con `xxxx` riferimento al numero di partizione Db2. Si noti che l'area di gestione temporanea deve avere una capacità sufficiente per contenere le immagini di backup e i file di registro. È possibile utilizzare il registro per indirizzare l'area di gestione temporanea in una directory diversa.Consigliamo inoltre di utilizzare `DB2_ENABLE_COS_SDK=ON` e il collegamento alla `awssdk` libreria per bypassare l'area di staging di Amazon S3 per il backup e il ripristino del database: `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`<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> | DBA | 
| Ripristina il database dall'immagine di backup. | Ripristina il database di destinazione su Amazon EC2 dall'immagine di backup nel bucket S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Esegui il rollforward del database. | Una volta completato il ripristino, il database di destinazione verrà messo in stato di attesa di rollforward. Configura `LOGARCHMETH1` e `LOGARCHMETH2` in modo che Db2 sappia dove trovare i file di registro delle transazioni:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Avvia il rollforward del database:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Questo comando elabora tutti i file di registro che sono stati trasferiti nel bucket S3. Eseguilo periodicamente in base alla frequenza del `s3 sync` comando sui server Db2 locali. Ad esempio, se `s3 sync` viene eseguito ogni ora e sono necessari 10 minuti per sincronizzare tutti i file di registro, imposta il comando in modo che venga eseguito 10 minuti dopo ogni ora.  | DBA | 

### Porta Db2 su Amazon EC2 online durante la finestra di cutover
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Porta online il database di destinazione. | Durante la finestra di cutover, effettuate una delle seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Dopo la sincronizzazione dell'ultimo log delle transazioni in Amazon S3, esegui `ROLLFORWARD` il comando per l'ultima volta:<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>Porta online il database di destinazione e indirizza le connessioni dell'applicazione a Db2 su Amazon EC2. | DBA | 

## risoluzione dei problemi
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Se più database hanno lo stesso nome di istanza e lo stesso nome di database su host diversi (DEV, QA, PROD), i backup e i log potrebbero andare nella stessa sottodirectory. | Usa diversi bucket S3 per DEV, QA e PROD e aggiungi il nome host come prefisso della sottodirectory per evitare confusione. | 
| Se sono presenti più immagini di backup nella stessa posizione, al momento del ripristino verrà visualizzato il seguente errore:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Nel `restore` comando, aggiungi il timestamp del backup:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Risorse correlate
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operazioni di backup e ripristino Db2 tra diversi sistemi operativi e piattaforme hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configura Db2 STORAGE ACCESS ALIAS e REMOTE 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)
+ [Metodo di archiviazione dei log secondario Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)