

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Migrieren Sie Db2 for LUW zu Amazon, EC2 indem Sie den Protokollversand verwenden, um die Ausfallzeit zu reduzieren
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

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

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

Wenn Kunden ihre IBM Db2 for LUW-Workloads (Linux, UNIX und Windows) zu Amazon Web Services (AWS) migrieren, ist die Verwendung von Amazon Elastic Compute Cloud (Amazon EC2) mit dem Bring Your Own License (BYOL) -Modell der schnellste Weg. Die Migration großer Datenmengen von lokalem Db2 nach AWS kann jedoch eine Herausforderung sein, insbesondere wenn das Ausfallfenster kurz ist. Viele Kunden versuchen, das Ausfallfenster auf weniger als 30 Minuten festzulegen, sodass wenig Zeit für die Datenbank selbst bleibt.

Dieses Muster beschreibt, wie eine Db2-Migration mit einem kurzen Ausfallfenster mithilfe des Transaktionsprotokollversands durchgeführt werden kann. Dieser Ansatz gilt für Db2 auf einer Little-Endian-Linux-Plattform.

## Voraussetzungen und Einschränkungen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Db2-Instance, die auf einer EC2 Instance ausgeführt wird, die den lokalen Dateisystem-Layouts entspricht
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket, auf den die EC2 Instance zugreifen kann
+ Eine Richtlinie und Rolle für AWS Identity and Access Management (IAM) für programmatische Aufrufe an Amazon S3
+ Synchronisierte Zeitzone und Systemuhren auf Amazon EC2 und dem lokalen Server
+ Das lokale Netzwerk, das über AWS [ Site-to-SiteVPN oder AWS AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect verbunden ist

**Einschränkungen**
+ Die lokale Db2-Instance und Amazon EC2 müssen sich auf derselben [Plattformfamilie](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms) befinden.
+ Der lokale Db2-Workload muss protokolliert werden. Um alle nicht protokollierten Transaktionen zu blockieren, legen Sie dies `blocknonlogged=yes` in der Datenbankkonfiguration fest.

**Versionen der Produkte**
+ Db2 für LUW Version 11.5.9 und höher

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

**Quelltechnologie-Stack**
+ Db2 auf Linux x86\$164****

**Zieltechnologie-Stack**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN oder Direct Connect

**Zielarchitektur**

Das folgende Diagramm zeigt eine lokal ausgeführte Db2-Instance mit einer VPN-Verbindung (Virtual Private Network) zu Db2 auf Amazon. EC2 Die gepunkteten Linien stellen den VPN-Tunnel zwischen Ihrem Rechenzentrum und der AWS-Cloud dar.

![\[Workflow zur Durchführung einer Db2-Migration innerhalb eines kurzen Ausfallzeitfensters mithilfe des Transaktions-Log-Versands.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


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

**AWS-Services**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS-Services erstellen und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Speichervolumes auf Blockebene zur Verwendung mit Amazon Elastic Compute Cloud (Amazon EC2) -Instances.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ Mit [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) können Sie den Datenverkehr zwischen Instances, die Sie auf AWS starten, und Ihrem eigenen Remote-Netzwerk weiterleiten.

**Andere Tools**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) ist der interaktive Db2-CLI-Befehl.

## Best Practices
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Verwenden Sie in der Zieldatenbank [Gateway-Endpunkte für Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html), um auf das Datenbank-Backup-Image und die Protokolldateien in Amazon S3 zuzugreifen.
+ Verwenden Sie in der Quelldatenbank [AWS PrivateLink für Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html), um das Datenbank-Backup-Image und die Protokolldateien an Amazon S3 zu senden.

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

### Festlegen von Umgebungsvariablen
<a name="set-environment-variables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Legen Sie Umgebungsvariablen fest. | Dieses Muster verwendet die folgenden Namen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Sie können sie an Ihre Umgebung anpassen. | DBA | 

### Konfigurieren Sie den lokalen Db2-Server
<a name="configure-the-on-premises-db2-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Einrichten des AWS CLI. | Führen Sie die folgenden Befehle aus, um die neueste Version der AWS-CLI herunterzuladen und zu installieren:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Linux-Administrator | 
| Richten Sie ein lokales Ziel für Db2-Archivprotokolle ein. | Um die Zieldatenbank auf Amazon EC2 mit der lokalen Quelldatenbank synchron zu halten, müssen die neuesten Transaktionsprotokolle von der Quelle abgerufen werden.In diesem Setup `/db2logs` wird von `LOGARCHMETH2` On the Source als Staging-Bereich festgelegt. Die archivierten Protokolle in diesem Verzeichnis werden mit Amazon S3 synchronisiert und von Db2 auf Amazon abgerufen. EC2 Das Muster wird verwendet`LOGARCHMETH2`, weil `LOGARCHMETH1` es möglicherweise für die Verwendung eines Drittanbietertools konfiguriert wurde, auf das der AWS-CLI-Befehl nicht zugreifen kann. Führen Sie den folgenden Befehl aus, um die Protokolle abzurufen: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Führen Sie eine Online-Datenbanksicherung durch. | Führen Sie eine Online-Datenbanksicherung aus und speichern Sie sie im lokalen Backup-Dateisystem: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Richten Sie den S3-Bucket und die IAM-Richtlinie ein
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket für den lokalen Server, an den die Backup-DB2-Images und Protokolldateien auf AWS gesendet werden sollen. Auf den Bucket wird auch Amazon zugreifen EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | AWS-Systemadministrator | 
|  Erstellen Sie eine IAM-Richtlinie. | Die `db2bucket.json` Datei enthält die IAM-Richtlinie für den Zugriff auf den Amazon S3 S3-Bucket:<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>Verwenden Sie den folgenden AWS-CLI-Befehl, um die Richtlinie zu erstellen:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> Die JSON-Ausgabe zeigt den Amazon-Ressourcennamen (ARN) für die Richtlinie, wobei `aws_account_id` es sich um Ihre Konto-ID handelt:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | AWS-Administrator, AWS-Systemadministrator | 
| Hängen Sie die IAM-Richtlinie an die von der Instance verwendete IAM-Rolle an EC2 . | In den meisten AWS-Umgebungen hat eine laufende EC2 Instance eine IAM-Rolle, die von Ihrem Systemadministrator festgelegt wurde. Wenn die IAM-Rolle nicht festgelegt ist, erstellen Sie die Rolle und wählen Sie in der EC2 Konsole **IAM-Rolle modifizieren aus, um die Rolle** der EC2 Instance zuzuordnen, die die Db2-Datenbank hostet. Hängen Sie die IAM-Richtlinie mit dem Richtlinien-ARN an die IAM-Rolle an:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Nachdem die Richtlinie angehängt wurde, kann jede EC2 Instance, die der IAM-Rolle zugeordnet ist, auf den S3-Bucket zugreifen. | AWS-Administrator, AWS-Systemadministrator | 

### Senden Sie das Backup-Image und die Protokolldateien der Quelldatenbank an Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS-CLI auf dem lokalen Db2-Server. | Konfigurieren Sie die AWS-CLI mit dem `Access Key ID` und, das im vorherigen Schritt `Secret Access Key` generiert wurde:<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>  | AWS-Administrator, AWS-Systemadministrator | 
| Senden Sie das Backup-Image an Amazon S3. | Zuvor wurde ein Online-Datenbank-Backup im `/backup` lokalen Verzeichnis gespeichert. Führen Sie den folgenden Befehl aus, um dieses Backup-Image an den S3-Bucket zu senden:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | AWS-Administrator, Migrationsingenieur | 
| Senden Sie die Db2-Archivprotokolle an Amazon S3. | Synchronisieren Sie die lokalen Db2-Archivprotokolle mit dem S3-Bucket, auf den die Db2-Zielinstanz bei Amazon zugreifen kann: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Führen Sie diesen Befehl regelmäßig mithilfe von Cron oder anderen Planungstools aus. Die Häufigkeit hängt davon ab, wie oft die Quelldatenbank Transaktionsprotokolldateien archiviert.  | AWS-Administrator, Migrationsingenieur | 

### Connect Db2 on Amazon mit Amazon EC2 S3 und starten Sie die Datenbanksynchronisierung
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen PKCS12 Keystore. | Db2 verwendet einen PKCS-Verschlüsselungs-Keystore (Public-Key Cryptography Standards), um den AWS-Zugriffsschlüssel zu schützen. Erstellen Sie einen Keystore und konfigurieren Sie die Db2-Quellinstanz so, dass sie ihn verwendet:<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 | 
| Erstellen Sie den Alias für den Db2-Speicherzugriff. | Verwenden Sie die folgende Skriptsyntax, um den [Alias für den Speicherzugriff](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access) zu erstellen:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ihr Skript könnte beispielsweise wie folgt aussehen: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Stellen Sie den Bereitstellungsbereich ein. | Standardmäßig verwendet Db2 `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` als Staging-Bereich zum Hoch- und Herunterladen von Dateien zu und von Amazon S3. Der Standardpfad befindet sich `sqllib/tmp/RemoteStorage.xxxx` im Home-Verzeichnis der Instance und `xxxx` bezieht sich auf die Db2-Partitionsnummer. Beachten Sie, dass der Staging-Bereich über genügend Kapazität für die Backup-Images und Protokolldateien verfügen muss. Sie können die Registrierung verwenden, um den Staging-Bereich auf ein anderes Verzeichnis zu verweisen.Wir empfehlen außerdem`DB2_ENABLE_COS_SDK=ON`, und den Link zur `awssdk` Bibliothek zu verwenden`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, um den Amazon S3 S3-Staging-Bereich für Datenbanksicherungen und -wiederherstellungen zu umgehen:<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 | 
| Stellen Sie die Datenbank aus dem Backup-Image wieder her. | Stellen Sie die Zieldatenbank auf Amazon EC2 aus dem Backup-Image im S3-Bucket wieder her:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Die Datenbank weiterleiten. | Nach Abschluss der Wiederherstellung wird die Zieldatenbank in den Status „Rollforward ausstehend“ versetzt. Konfigurieren Sie `LOGARCHMETH1` `LOGARCHMETH2` so, dass Db2 weiß, wo die Transaktionsprotokolldateien abgerufen werden sollen:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Starten Sie den Datenbank-Rollforward:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Dieser Befehl verarbeitet alle Protokolldateien, die in den S3-Bucket übertragen wurden. Führen Sie ihn regelmäßig auf der Grundlage der Häufigkeit des `s3 sync` Befehls auf den lokalen Db2-Servern aus. Wenn der Befehl beispielsweise zu jeder Stunde `s3 sync` ausgeführt wird und die Synchronisierung aller Protokolldateien 10 Minuten dauert, legen Sie fest, dass der Befehl jeweils 10 Minuten nach jeder Stunde ausgeführt wird.  | DBA | 

### Bringen Sie Db2 auf Amazon während des EC2 Umstellungsfensters online
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bringen Sie die Zieldatenbank online. | Führen Sie während des Übernahmefensters einen der folgenden Schritte aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Nachdem das letzte Transaktionsprotokoll mit Amazon S3 synchronisiert wurde, führen Sie den `ROLLFORWARD` Befehl zum letzten Mal aus:<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>Bringen Sie die Zieldatenbank online und verweisen Sie die Anwendungsverbindungen auf Db2 on Amazon EC2. | DBA | 

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


| Problem | Lösung | 
| --- | --- | 
| Wenn mehrere Datenbanken denselben Instanznamen und Datenbanknamen auf unterschiedlichen Hosts (DEV, QA, PROD) haben, werden Backups und Logs möglicherweise in dasselbe Unterverzeichnis verschoben. | Verwenden Sie unterschiedliche S3-Buckets für DEV, QA und PROD und fügen Sie den Hostnamen als Unterverzeichnispräfix hinzu, um Verwirrung zu vermeiden. | 
| Wenn sich mehrere Backup-Images am selben Speicherort befinden, wird bei der Wiederherstellung die folgende Fehlermeldung angezeigt:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Fügen Sie im `restore` Befehl den Zeitstempel der Sicherung hinzu:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Zugehörige Ressourcen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [DB2-Backup- und Wiederherstellungsvorgänge zwischen verschiedenen Betriebssystemen und Hardwareplattformen](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Richten Sie Db2 STORAGE ACCESS ALIAS und REMOTE ein DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Db2-Befehl ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Methode für die sekundäre Protokollarchivierung von Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)