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.
Verwendung der IBM Db2 für Linux-, Unix-, Windows- und Amazon RDS-Datenbank (Db2 LUW) als Quelle für AWS DMS
Mit AWS Database Migration Service () können Sie Daten von einer IBM Db2 for Linux-, Unix-, Windows- und Amazon RDS-Datenbank (Db2 LUW) in jede unterstützte Zieldatenbank migrieren.AWS DMS
Informationen zu Versionen von Db2 unter Linux, Unix, Windows und RDS, die als Quelle AWS DMS unterstützt werden, finden Sie unter. Quellen für AWS DMS
Sie können Secure Sockets Layer (SSL) verwenden, um Verbindungen zwischen Ihrem Db2 LUW-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem Db2 LUW-Endpunkt finden Sie unter Verwenden von SSL mit AWS Database Migration Service.
Beim AWS DMS Lesen von Daten aus einer IBM Db2-Quelldatenbank wird die Standard-Isolationsstufe CURSOR STABILITY (CS) für Db2-Version 9.7 und höher verwendet. Weitere Informationen finden Sie in der Dokumentation zu IBM Db2 für Linux, UNIX und Windows
Voraussetzungen für die Verwendung von Db2 LUW als Quelle für AWS DMS
Die folgenden Voraussetzungen müssen erfüllt sein, damit Sie eine Db2 LUW-Datenbank als Quelle verwenden können.
Zum Aktivieren einer fortlaufenden Replikation, auch als Change Data Capture (CDC) bezeichnet, gehen Sie wie folgt vor:
-
Stellen Sie die Datenbank so ein, dass sie wiederherstellbar ist. AWS DMS Dazu müssen Änderungen erfasst werden. Eine Datenbank ist wiederherstellbar, wenn einer oder beide der Datenbank-Konfigurationsparameter
LOGARCHMETH1undLOGARCHMETH2aufONgesetzt sind.Wenn Ihre Datenbank wiederherstellbar ist, AWS DMS können Sie bei Bedarf auf Db2 zugreifen.
ARCHIVE LOG -
Stellen Sie sicher, dass die DB2-Transaktionsprotokolle verfügbar sind und über einen ausreichenden Aufbewahrungszeitraum verfügen, bis zu dem sie verarbeitet werden können. AWS DMS
-
DB2 erfordert eine
SYSADM- oderDBADM-Autorisierung zum Extrahieren von Transaktionsprotokoll-Datensätzen. Erteilen Sie dem Benutzerkonto die folgenden Berechtigungen:SYSADModerDBADMDATAACCESS
-
Für Aufgaben, die nur Volllast ausführen, benötigt das DMS-Benutzerkonto die folgenden Berechtigungen:
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>; -
Wenn Sie IBM DB2 für LUW Version 9.7 als Quelle verwenden, legen Sie das zusätzliche Verbindungsattribut (Extra Connection Attribute, ECA)
CurrentLsnwie folgt fest:CurrentLsn=, wobeiLSNeine Protokoll-Sequenznummer (Log Sequence Number, LSN) angibt, bei der die Replikation beginnen soll. OderLSNCurrentLsn=.scan -
Wenn Sie Amazon RDS for Db2 LUW als Quelle verwenden, stellen Sie sicher, dass die Archivprotokolle für verfügbar sind. AWS DMS Da AWS-managed Db2-Datenbanken die Archivprotokolle so schnell wie möglich löschen, sollten Sie den Zeitraum, für den die Protokolle verfügbar bleiben, verlängern. Um beispielsweise die Aufbewahrung von Protokollen auf 24 Stunden zu erhöhen, führen Sie den folgenden Befehl aus:
db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"Weitere Informationen zu den LUW-Prozeduren von Amazon RDS for Db2 finden Sie in der Referenz zu gespeicherten Prozeduren von Amazon RDS for Db2 im Amazon Relational Database Service User Guide.
-
Gewähren Sie die folgenden Rechte, wenn Sie DB2-spezifische Tests vor der Migration verwenden:
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>;
Einschränkungen bei der Verwendung von Db2 LUW als Quelle für AWS DMS
AWS DMS unterstützt keine geclusterten Datenbanken. Sie können jedoch für jeden der Endpunkte eines Clusters eine separate Db2 LUW definieren. Sie können beispielsweise eine Volllast-Migrationsaufgabe mit einem beliebigen Knoten im Cluster erstellen und dann für jeden Knoten separate Aufgaben erstellen.
AWS DMS unterstützt den BOOLEAN Datentyp in Ihrer Db2-LUW-Quelldatenbank nicht.
Bei der Verwendung der fortlaufenden Replikation (CDC) gelten die folgenden Einschränkungen:
-
Wenn eine Tabelle mit mehreren Partitionen gekürzt wird, entspricht die Anzahl der in der AWS DMS Konsole angezeigten DDL-Ereignisse der Anzahl der Partitionen. Der Grund hierfür ist, dass Db2 LUW eine separate DDL für jede Partition aufzeichnet.
-
Die folgenden DDL-Aktionen werden für partitionierte Tabellen nicht unterstützt:
-
ALTER TABLE ADD PARTITION
-
ALTER TABLE DETACH PARTITION
-
ALTER TABLE ATTACH PARTITION
-
-
AWS DMS unterstützt keine laufende Replikationsmigration von einer DB2 High Availability Disaster Recovery (HADR) -Standby-Instanz. Auf die Standby-Instance kann nicht zugegriffen werden.
-
Der Datentyp DECFLOAT wird nicht unterstützt. Folglich werden Änderungen an DECFLOAT-Spalten während der fortlaufenden Replikation ignoriert.
-
Die Anweisung RENAME COLUMN wird nicht unterstützt.
-
Bei Aktualisierungen von Multi-Dimensional Clustering-Tabellen (MDC) wird jedes Update in der AWS DMS Konsole als INSERT + DELETE angezeigt.
-
Wenn die Aufgabeneinstellung Include LOB columns in replication (LOB-Spalten in Replikation einschließen) nicht aktiviert ist, werden alle Tabellen mit LOB-Spalten während der fortlaufenden Replikation gesperrt.
-
Für Db2 LUW-Versionen 10.5 und höher werden Zeichenfolgen-Spalten variabler Länge mit Daten, die außerhalb der Zeile gespeichert werden, ignoriert. Diese Einschränkung gilt nur für Tabellen, die mit erweiterter Zeilengröße für Spalten mit Datentypen wie VARCHAR und VARGRAPHIC erstellt wurden. Verschieben Sie die Tabelle in einen Tabellenbereich mit einer höheren Seitengröße, um diese Einschränkung zu umgehen. Weitere Informationen finden Sie unter What can I do if I want to change the pagesize of DB2 tablespaces?
. -
Bei der laufenden Replikation unterstützt DMS nicht die Migration von Daten, die vom DB2-LOAD-Hilfsprogramm auf Seitenebene geladen wurden. Verwenden Sie stattdessen das IMPORT-Hilfsprogramm, das SQL-Inserts nutzt. Weitere Informationen finden Sie unter Differences between the import and load utilities
. -
Während der Ausführung einer Replikationsaufgabe erfasst DMS CREATE TABLE DDLs nur, wenn die Tabellen mit dem Attribut DATA CAPTURE CHANGE erstellt wurden.
-
Bei der Verwendung des Db2-Datenbankpartitionsfeatures (DPF) gelten für DMS die folgenden Einschränkungen:
DMS kann in einer DPF-Umgebung keine Transaktionen zwischen Db2-Knoten koordinieren. Dies ist auf Einschränkungen innerhalb der IBM DB2READLOG API-Schnittstelle zurückzuführen. In DPF können sich Transaktionen über mehrere Db2-Knoten erstrecken, je nachdem, wie DB2 die Daten partitioniert. Daher muss Ihre DMS-Lösung Transaktionen von jedem Db2-Knoten unabhängig voneinander erfassen.
DMS kann lokale Transaktionen von jedem Db2-Knoten im DPF-Cluster erfassen, indem die Einstellung
1auf mehrere DMS-QuellendpunkteconnectNodegesetzt wird. Diese Konfiguration entspricht den logischen Knotennummern, die in der DB2-Serverkonfigurationsdatei definiert sind.db2nodes.cfgLokale Transaktionen auf einzelnen Db2-Knoten können Teil einer größeren, globalen Transaktion sein. DMS wendet jede lokale Transaktion unabhängig auf dem Ziel an, ohne dass dies mit Transaktionen auf anderen Db2-Knoten koordiniert wird. Diese unabhängige Verarbeitung kann zu Komplikationen führen, insbesondere wenn Zeilen zwischen Partitionen verschoben werden.
Wenn DMS von mehreren Db2-Knoten aus repliziert, gibt es keine Garantie für die korrekte Reihenfolge der Operationen auf dem Ziel, da DMS Operationen unabhängig für jeden Db2-Knoten anwendet. Sie müssen sicherstellen, dass die Erfassung lokaler Transaktionen unabhängig von jedem Db2-Knoten für Ihren speziellen Anwendungsfall funktioniert.
Bei der Migration aus einer DPF-Umgebung empfehlen wir, zuerst eine Volllastaufgabe ohne zwischengespeicherte Ereignisse auszuführen und dann Aufgaben auszuführen. CDC-only Es wird empfohlen, eine Aufgabe pro DB2-Knoten auszuführen, beginnend mit dem Full Load-Startzeitstempel oder LRI (Log Record Identifier), den Sie mit dem zusätzlichen Verbindungsattribut Endpoint festgelegt haben.
StartFromContextInformationen zur Bestimmung Ihres Replikationsstartpunkts finden Sie in der IBM Support-Dokumentation unter Den LSN- oder LRI-Wert für den Replikationsstartermitteln.
-
Wenn Sie bei laufender Replikation (CDC) die Replikation ab einem bestimmten Zeitstempel starten möchten, müssen Sie das
StartFromContextzusätzliche Verbindungsattribut auf den erforderlichen Zeitstempel setzen. -
Derzeit unterstützt DMS das Feature Db2 pureScale nicht. Dabei handelt es sich um eine Erweiterung von DB2 LUW, mit der Sie Ihre Datenbanklösung skalieren können.
-
Die
DATA CAPTURE CHANGESTabellenoption ist eine wichtige Voraussetzung für DB2-Datenreplikationsprozesse. Wenn Sie diese Option beim Erstellen von Tabellen nicht aktivieren, kann dies zu fehlenden Daten führen, insbesondere bei Replikationsaufgaben, die nur CDC (Change Data Capture) betreffen, die von einem früheren Startpunkt aus initiiert wurden. AWS DMS aktiviert dieses Attribut standardmäßig, wenn eine CDC- oder FULL+CDC-Aufgabe neu gestartet wird. Es kann jedoch sein, dass alle Änderungen, die vor dem Neustart der Aufgabe an der Quelldatenbank vorgenommen wurden, übersehen werden.ALTER TABLE TABLE_SCHEMA.TABLE_NAME DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
AWS DMS unterstützt nicht die Migration von Tabellen aus den folgenden DB2-Systemschemas:
-
SYSIBM -
SYSIBMADM -
SYSCAT -
SYSSTAT -
SYSPROC -
SYSFUN -
SYSPUBLIC -
SYSTOOLS
Diese Schemas enthalten DB2-Systemkatalogtabellen, deren Metadaten nicht abgerufen werden können. AWS DMS Wenn Ihre Auswahlregeln für die Tabellenzuweisung diese Schemas enthalten, z. B. indem Sie ein Platzhaltermuster wie % für den Schemanamen verwenden, schlägt die Migrationsaufgabe möglicherweise fehl.
Um dieses Problem zu vermeiden, verwenden Sie in Ihren Tabellenzuordnungsregeln einen der folgenden Ansätze:
-
Geben Sie in Ihren
includeRegeln nur die Benutzerschemas an, die Sie migrieren möchten. -
Fügen Sie vor Ihrer
excludeRegel eine explizite Regel für DB2-Systemschemas hinzu.include
Das folgende Beispiel zeigt Tabellenzuordnungsregeln, die DB2-Systemschemas mithilfe eines Platzhaltermusters ausschließen und dann alle verbleibenden Benutzerschemas einbeziehen.
{ "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" } ] }
Hinweis: In Tabellenzuordnungsregeln werden Regeln vor exclude Regeln ausgewertet. include In diesem Beispiel verhindert die exclude Regel die Auswahl AWS DMS von Tabellen in Schemas, die mit SYS beginnen, während die include Regel alle Tabellen in den übrigen Schemas auswählt.
Endpunkteinstellungen bei Verwendung von Db2 LUW als Quelle für AWS DMS
Sie können die Einstellungen angeben, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole erstellen, oder indem Sie den create-endpoint Befehl in AWS CLI, mit dem
--ibm-db2-settings
'{"EndpointSetting1": "value1","EndpointSetting2": "value2"}'
JSON-Syntax.
Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Db2 LUW als Quelle verwenden können.
| Name der Einstellung | Description |
|---|---|
|
|
Verwenden Sie für die laufende Replikation (CDC) |
|
|
Maximale Anzahl von Bytes pro Lesezugriff als NUMBER-Wert. Der Standardwert ist 64 KB. |
|
|
Aktiviert die fortlaufende Replikation (CDC) als BOOLEAN-Wert. Der Standardwert ist true. |
Zusätzliche Verbindungsattribute (ECAs) bei Verwendung von Db2 LUW als Quelle für AWS DMS
Sie können die Extra Connection Attributes (ECAs) angeben, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole erstellen, oder indem Sie den create-endpoint Befehl in AWS CLI, mit dem
--extra-connection-attributes
'ECAname1=value1;ECAname2=value2;'
In der folgenden Tabelle sind die ECAs aufgeführt, die Sie mit Db2 LUW als Quelle verwenden können.
| Attributname | Description |
|---|---|
|
|
Verwenden Sie diesen ECA, um das Endpunktverbindungs-Timeout für den Db2-LUW-Endpunkt in Sekunden festzulegen. Der Standardwert liegt bei 10 Sekunden. Beispiel: |
|
|
Zusätzliches Verbindungsattribut, das das Zeitlimit für Anweisungen (Abfragen) für den DB2-LUW-Endpunkt in Sekunden festlegt. Der Standardwert liegt bei 60 Sekunden. Beispiel: |
|
|
Verwenden Sie
Um den LRI/LSN Bereich einer Protokolldatei zu ermitteln, führen Sie den
Die Ausgabe sieht bei diesem Beispiel in etwa wie folgt aus.
In dieser Ausgabe ist die Protokolldatei S0000002.LOG und der StartFromContextLRI-Wert sind die 34 Byte am Ende des Bereichs.
|
Quelldatentypen für IBM Db2 LUW
Datenmigration, die Db2 LUW als Quelle verwendet, AWS DMS unterstützt die meisten Db2 LUW-Datentypen. Die folgende Tabelle zeigt die Db2-LUW-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von Datentypen. AWS DMS Weitere Informationen über die Db2 LUW-Datentypen finden Sie in der Db2 LUW-Dokumentation
Weitere Informationen zum Anzeigen des Datentyps, der im Ziel zugewiesen ist, finden Sie im Abschnitt für den Zielendpunkt, den Sie verwenden.
Weitere Informationen zu AWS DMS Datentypen finden Sie unter. Datentypen für den AWS Database Migration Service
|
Db2 LUW-Datentypen |
AWS DMS Datentypen |
|---|---|
|
INTEGER |
INT4 |
|
SMALLINT |
INT2 |
|
BIGINT |
INT8 |
|
DECIMAL (p,s) |
NUMERIC (p,s) |
|
FLOAT |
REAL8 |
|
DOUBLE |
REAL8 |
|
REAL |
REAL4 |
|
DECFLOAT (p) |
Bei einer Genauigkeit von 16 wird REAL8 verwendet, bei einer Genauigkeit von 34 STRING. |
|
GRAPHIC (n) |
WSTRING für grafische Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 127 |
|
VARGRAPHIC (n) |
WSTRING für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352 |
|
LONG VARGRAPHIC (n) |
CLOB für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352 |
|
CHARACTER (n) |
STRING für Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 255 |
|
VARCHAR (n) |
STRING für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 32.704 |
|
LONG VARCHAR (n) |
CLOB für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 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 (ZEITSTEMPEL) |
DATETIME |
|
BLOB (n) |
BLOB Die maximale Länge beträgt 2.147.483.647 Byte. |
|
CLOB (n) |
CLOB Die maximale Länge beträgt 2.147.483.647 Byte. |
|
DBCLOB (n) |
CLOB Die maximale Länge beträgt 1.073.741.824 Doppelbyte-Zeichen. |
|
XML |
CLOB |