

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 per LUW ad Amazon EC2 con disaster recovery ad alta disponibilità
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery"></a>

*Feng Cai, Aruna Gangireddy e Venkatesan Govindan, Amazon Web Services*

## Riepilogo
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-summary"></a>

Quando i clienti migrano il loro carico di lavoro IBM Db2 LUW (Linux, UNIX e Windows) su Amazon Web Services (AWS), utilizzare Amazon Elastic Compute Cloud (Amazon EC2) con il modello Bring Your Own License (BYOL) è il modo più veloce. 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 Db2 High Availability Disaster Recovery (HADR). Questo approccio si applica ai database Db2 che si trovano sulla piattaforma Linux little-endian e non utilizzano Data Partitioning Feature (DPF).

## Prerequisiti e limitazioni
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su un'istanza Amazon EC2 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/)
+ Comunicazione tra il server locale e Amazon EC2 su porte HADR

**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)
+ HADR non è supportato in un ambiente di database partizionato.
+ HADR non supporta l'uso di raw I/O (accesso diretto al disco) per i file di registro del database.
+ HADR non supporta la registrazione infinita.
+ `LOGINDEXBUILD`deve essere impostato su`YES`, il che aumenterà l'utilizzo del registro per la ricostruzione dell'indice.
+ Il carico di lavoro locale di Db2 deve essere registrato. Impostato `blocknonlogged=yes` nella configurazione del database per bloccare tutte le transazioni non registrate.

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

## Architecture
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-architecture"></a>

**Stack tecnologico di origine**
+ Db2 su Linux x86\_64****

**Stack tecnologico Target**
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Simple Storage Service (Amazon S3)
+  Site-to-SiteVPN AWS

**Architettura Target**

Nel diagramma seguente, Db2 locale viene eseguito `db2-server1` come principale. Ha due obiettivi di standby HADR. Un target di standby è in locale ed è opzionale. L'altro obiettivo in standby è Amazon EC2. `db2-ec2` Dopo che il database viene trasferito ad AWS, `db2-ec2` diventa il database principale.

![Flusso di lavoro per migrare con una breve finestra di interruzione un Db2 locale utilizzando Db2 HADR.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2db43e4b-f0ea-4a92-96da-4cafb7d3368b/images/5295420e-3cd8-4127-9a18-ade971c36339.png)


1. I log vengono trasmessi in streaming dal database locale primario al database locale in standby.

1. Utilizzando Db2 HADR, i log vengono trasmessi in streaming dal database locale primario tramite Site-to-Site VPN a Db2 su Amazon EC2.

1. I log di backup e archiviazione di Db2 vengono inviati dal database locale primario al bucket S3 su AWS.

## Tools (Strumenti)
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-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 Compute Cloud (Amazon EC2) 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-with-high-availability-disaster-recovery-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-with-high-availability-disaster-recovery-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 e porte:[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-with-high-availability-disaster-recovery.html)<br />È possibile modificarle per adattarle al proprio ambiente. | DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS CLI. | Per scaricare e installare la versione più recente di AWS CLI, 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. | Condizioni quali lavori di aggiornamento intensivi in batch e rallentamenti della rete possono causare un ritardo nel server di standby HADR. Per recuperare il ritardo, il server di standby necessita dei log delle transazioni del server primario. La sequenza di posizioni in cui richiedere i log è la seguente:[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-with-high-availability-disaster-recovery.html)<br />In questa configurazione, `/db2logs` viene impostata da `LOGARCHMETH2` on the source come area di staging. I log archiviati in questa directory verranno sincronizzati in Amazon S3 e accessibili da Db2 su Amazon EC2. Il modello 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:<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 da Amazon EC2:<pre>aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1 </pre> | Amministratore AWS | 
| Creare una policy IAM | Il `db2bucket.json` file contiene la policy IAM per l'accesso al bucket 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:::hadrmig-db2/*",<br />                "arn:aws:s3:::hadrmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre><br />Per creare la policy, usa il seguente comando AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3hapolicy \<br />      --policy-document file://db2bucket.json </pre><br />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/db2s3hapolicy"</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Allega la policy IAM al ruolo IAM. | Di solito, all'istanza EC2 con Db2 in esecuzione viene assegnato un ruolo IAM dall'amministratore di sistema. Se non viene assegnato alcun ruolo IAM, puoi scegliere **Modifica ruolo IAM** sulla console Amazon EC2.<br />Collega la policy IAM al ruolo IAM associato all'istanza EC2. Dopo aver allegato la policy, l'istanza EC2 può accedere al bucket S3:<pre>aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole   </pre> |  | 

### 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 AWS CLI sul server Db2 locale. | Configura l'interfaccia a riga di comando di AWS con `Access Key ID` e `Secret Access Key` che hai generato in precedenza:<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://hadrmig-db2/SAMPLE_backup</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Invia i log di archivio Db2 ad Amazon S3. | Sincronizza i log di archivio Db2 locali con il bucket Amazon S3 a cui può accedere l'istanza Db2 di destinazione su Amazon EC2:<pre>aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS</pre><br />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. |  | 

### Connetti Db2 su Amazon EC2 ad Amazon S3 e avvia la sincronizzazione iniziale del database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-initial-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 il Db2 sorgente 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. | Db2 utilizza un alias di accesso allo storage per accedere ad Amazon S3 direttamente con `INGEST` i comandi`LOAD`,`BACKUP DATABASE`, o. `RESTORE DATABASE` <br />Perché hai assegnato un ruolo IAM all'istanza EC2 `USER` e `PASSWORD` non sei obbligatorio:<br />`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`<br />Ad esempio, lo script potrebbe avere il seguente aspetto: <br />`db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'" ` | DBA | 
| Imposta l'area di staging. | Ti consigliamo di utilizzare `DB2_ENABLE_COS_SDK=ON` e il link 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_LOCAL_STAGING_PATH=/db2stage<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 create db sample on /data1<br />db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing</pre> | DBA | 

### Configura HADR senza HADR in locale
<a name="set-up-hadr-with-no-hadr-on-premises"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il server Db2 locale come principale. | Aggiorna le impostazioni di configurazione del database per HADR su `db2-server1` (l'origine locale) come principale. Imposta `HADR_SYNCMODE` sulla `SUPERASYNC` modalità, che ha il tempo di risposta delle transazioni più breve:<br />`db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully`<br />Sono previsti alcuni ritardi di rete tra il data center locale e AWS. (È possibile impostare un `HADR_SYNCMODE` valore diverso in base all'affidabilità della rete. Per ulteriori informazioni, vedere la sezione [Risorse correlate](#migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources)). | DBA | 
| Cambia la destinazione dell'archivio dei log del database di destinazione. | Modifica la destinazione dell'archivio di log del database di destinazione in modo che corrisponda all'ambiente Amazon EC2:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF<br />DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully</pre> | DBA | 
| Configura HADR per Db2 sul server Amazon EC2. | Aggiorna la configurazione del database per HADR in modalità standby: `db2-ec2`<br />`db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully` | DBA | 
| Verifica la configurazione HADR. | Verificare i parametri HADR sui server Db2 di origine e di destinazione.<br />Per verificare la configurazione su`db2-server1`, esegui il seguente comando:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-ec2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50012<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre><br /> Per verificare la configurazione attivata`db2-ec2`, esegui il seguente comando:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre><br />I `HADR_REMOTE_SVC` parametri `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`, e indicano una configurazione HADR principale e una in standby. | DBA | 
| Avvia l'istanza Db2 HADR. | Avvia prima l'istanza Db2 HADR sul server di standby: `db2-ec2`<pre>db2 start hadr on db sample as standby<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre><br />Avvia Db2 HADR sul server primario (di origine): `db2-server1`<pre>db2 start hadr on db sample as primary<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre><br />La connessione HADR tra Db2 locale e Amazon EC2 è stata ora stabilita con successo. Il server primario Db2 `db2-server1` avvia lo streaming dei record dei log delle transazioni in tempo reale. `db2-ec2` | DBA | 

### Configura HADR quando HADR esiste in locale
<a name="set-up-hadr-when-hadr-exists-on-premises"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi Db2 su Amazon EC2 come standby ausiliario. | Se HADR è in esecuzione sull'istanza Db2 locale, puoi aggiungere Db2 su Amazon EC2 come standby ausiliario eseguendo i seguenti comandi su: `HADR_TARGET_LIST` `db2-ec2`<br />`db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-server2:50011" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | DBA | 
| Aggiungi le informazioni di standby ausiliarie ai server locali. | Aggiornamento `HADR_TARGET_LIST` sui due server locali (primario e standby).<br />Su`db2-server1`, esegui il codice seguente:<br />`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.`<br />`db2-server2`Attivo, esegui il codice seguente:<br />`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.` | DBA | 
| Verifica la configurazione HADR. | Verificare i parametri HADR sui server Db2 di origine e di destinazione.<br />Attivo`db2-server1`, esegui il codice seguente:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50011<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre><br />`db2-server2`Attivo, esegui il codice seguente:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50011<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre><br />`db2-ec2`Attivo, esegui il codice seguente:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre><br />I `HADR_TARGET_LIST` parametri `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`,`HADR_REMOTE_SVC`, e indicano una configurazione HADR principale e due in standby. |  | 
| Arresta e avvia Db2 HADR. | `HADR_TARGET_LIST`è ora configurato su tutti e tre i server. Ogni server Db2 conosce gli altri due. Arresta e riavvia HADR (breve interruzione) per sfruttare la nuova configurazione.<br />Attivo`db2-server1`, esegui i seguenti comandi:<pre>db2 stop hadr on db sample<br />db2 deactivate db sample<br />db2 activate db sample</pre><br />`db2-server2`Attivo, esegui i seguenti comandi:<pre>db2 deactivate db sample<br />db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre><br />`db2-ec2`Attivo, esegui i seguenti comandi:<pre>db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre><br />`db2-server1`Attivo, esegui i seguenti comandi:<pre>db2 start hadr on db sample as primary<br />SQL1766W  The command completed successfully</pre><br />La connessione HADR tra Db2 locale e Amazon EC2 è ora stabilita con successo. Il server primario Db2 `db2-server1` avvia lo streaming dei record dei log delle transazioni su entrambi `db2-server2` e `db2-ec2` in tempo reale.  | DBA | 

### Imposta Db2 su Amazon EC2 come principale durante la finestra di cutover
<a name="make-db2-on-amazon-ec2-as-primary-during-the-cutover-window"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verificare che non vi sia alcun ritardo HADR sul server di standby. | Controllate lo stato HADR dal server primario. `db2-server1` Non allarmatevi quando `HADR_STATE` è in `REMOTE_CATCHUP` stato, il che è normale quando `HADR_SYNCMODE` è impostato su. `SUPERASYNC` Poi `PRIMARY_LOG_TIME` e `STANDBY_REPLAY_LOG_TIME` mostrano che sono sincronizzati:<pre>db2pd -hadr -db sample<br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL<br />                        HADR_SYNCMODE = SUPERASYNC<br />                           STANDBY_ID = 2<br />                        LOG_STREAM_ID = 0<br />                           HADR_STATE = REMOTE_CATCHUP<br />.....<br />                     PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />                     STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />              STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)</pre> | DBA | 
| Esegui HADR Takeover. | Per completare la migrazione, crea `db2-ec2` il database primario eseguendo il comando HADR takeover. Utilizzate il comando `db2pd` per verificare il `HADR_ROLE` valore:<pre>db2 TAKEOVER HADR ON DATABASE sample<br />DB20000I  The TAKEOVER HADR ON DATABASE command completed successfully.<br /><br />db2pd -hadr -db sample<br />Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988<br /><br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL</pre><br />Per completare la migrazione verso AWS, indirizza le connessioni dell'applicazione a Db2 su Amazon EC2. |  | 

## Risoluzione dei problemi
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Se utilizzi NAT per motivi di firewall e sicurezza, l'host può avere due indirizzi IP (uno interno e uno esterno), il che può causare un errore di controllo dell'indirizzo IP HADR. Il `START HADR ON DATABASE` comando restituirà il seguente messaggio:<br />`HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.` | Per [supportare HADR in un ambiente NAT,](https://www.ibm.com/docs/en/db2/11.5?topic=support-hadr-nat) è possibile configurarlo `HADR_LOCAL_HOST` con l'indirizzo interno ed esterno. Ad esempio, se il server Db2 ha il nome interno `host1` e il nome esterno`host1E`, `HADR_LOCAL_HOST` può essere. `HADR_LOCAL_HOST: "host1 \| host1E"` | 

## Risorse correlate
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-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)
+ [Disaster recovery ad alta disponibilità Db2](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)
+ [hadr\_syncmode - Modalità di sincronizzazione HADR per le scritture di log nel parametro di configurazione dello stato peer](https://www.ibm.com/docs/en/db2/11.5?topic=dcp-hadr-syncmode-hadr-synchronization-mode-log-writes-in-peer-state)