View a markdown version of this page

Einstellung der LOB-Unterstützung für Quelldatenbanken in einem AWS DMS Aufgabe - AWS Database Migration Service

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.

Einstellung der LOB-Unterstützung für Quelldatenbanken in einem AWS DMS Aufgabe

Große binäre Objekte (LOBs) lassen sich manchmal nur schwierig zwischen Systemen migrieren. AWS DMS bietet eine Reihe von Optionen, die Ihnen bei der Optimierung von LOB-Spalten helfen. Informationen darüber, welche und wann Datentypen als LOBs betrachtet werden AWS DMS, finden Sie in der AWS DMS Dokumentation.

Beim Migrieren von Daten von einer Datenbank in eine andere, sollten Sie überdenken, wie Ihre LOBs gespeichert werden. Dies gilt insbesondere für heterogene Migrationen. Wenn Sie dies möchten, müssen Sie die LOB-Daten nicht migrieren.

Wenn Sie sich für LOBs entschieden haben, können Sie die anderen LOB-Einstellungen festlegen:

  • Der LOB-Modus bestimmt, wie LOBs verarbeitet werden:

    • Vollständiger LOB-Modus — Im vollständigen LOB-Modus werden alle LOBs unabhängig von ihrer Größe von der Quelle zum Ziel AWS DMS migriert. In dieser Konfiguration sind keine Informationen über die zu AWS DMS erwartende maximale Größe der zu erwartenden LOBs vorhanden. Folglich werden die LOBs einzeln migriert. Der vollständige LOB-Modus kann recht langsam sein.

    • Limitierter LOB-Modus – Im limitierten LOB-Modus können Sie eine maximale LOB-Größe festlegen, die von DMS akzeptiert werden sollte. Dies ermöglicht es DMS, vorab Speicher zuzuweisen und die LOB-Daten massenweise zu laden. LOBs, die die maximale LOB-Größe überschreiten, werden abgeschnitten und in der Protokolldatei wird eine entsprechende Warnung ausgegeben. Im limitierten LOB-Modus kann gegenüber dem vollständigen LOB-Modus eine erhebliche Leistungssteigerung erzielt werden. Wir empfehlen Ihnen, nach Möglichkeit den eingeschränkten LOB-Modus zu verwenden. Der Höchstwert für diesen Parameter ist 102400 KB (100 MB).

      Anmerkung

      Wenn die Option „Maximale LOB-Größe (KB)“ mit einem Wert von mehr als 63 KB verwendet wird, beeinträchtigt dies die Leistung eines vollständigen Ladevorgangs, der für die Ausführung im limitierten LOB-Modus konfiguriert ist. Beim vollständigen Laden weist DMS Speicher zu, indem der Wert für die maximale LOB-Größe (KB) mit der Commit-Rate multipliziert und das Produkt mit der Anzahl der LOB-Spalten multipliziert wird. Wenn DMS diesen Speicher nicht vorab zuweisen kann, verbraucht es SWAP-Speicher, was sich negativ auf die Leistung der Vollladeaufgaben auswirkt. Wenn bei der Verwendung des eingeschränkten LOB-Modus Leistungsprobleme auftreten, sollten Sie die Übertragungsrate verringern, bis Sie ein akzeptables Leistungsniveau erreicht haben. Während eines CDC-Modus weist DMS Speicher zu, indem es die Anzahl der LOB-Spalten mit dem Parameter Max. LOB-Größe multipliziert, der in den Task-Einstellungen für begrenzte LOBs angegeben ist, und anschließend mit der Datensatzgröße. Der DMS-CDC-Prozess läuft pro DMS-Aufgabe in einem einzigen Thread ab. Weitere Informationen finden Sie unter Ändern der Einstellungen für die Verarbeitungsoptimierung.

      Um die begrenzte LOB-Größe zu überprüfen, müssen Sie für ValidationPartialLobSize denselben Wert wie für LobMaxSize (KB) angeben.

    • Inline-LOB-Modus – Im Inline-LOB-Modus legen Sie die maximale LOB-Größe fest, die DMS inline überträgt. LOBs, die kleiner als die angegebene Größe sind, werden inline übertragen. LOBs, die größer als die angegebene Größe sind, werden im vollständigen LOB-Modus repliziert. Sie können diese Option für die Replikation kleiner und großer LOBs auswählen, wenn die meisten LOBs klein sind. Für Endpunkte, die den vollständigen LOB-Modus nicht unterstützen, wie S3 und Redshift, unterstützt DMS den Inline-LOB-Modus nicht.

    Anmerkung

    Bei Oracle werden LOBs als VARCHAR-Datentypen behandelt, wann immer dies möglich ist. Bei diesem Ansatz werden sie in großen Mengen aus der Datenbank AWS DMS abgerufen, was deutlich schneller ist als bei anderen Methoden. Die maximale Größe eines VARCHAR in Oracle beträgt 32 K. Wenn Oracle Ihre Quelldatenbank ist, ist eine auf weniger als 32 K begrenzte LOB-Größe daher optimal.

  • Wenn eine Aufgabe zur Ausführung im eingeschränkten LOB-Modus konfiguriert wurde, wird mit der Option Max LOB size (K) (Maximale LOB-Größe (K)) die maximale LOB-Größe festgelegt, die von AWS DMS akzeptiert wird. Alle LOBs, die diesen Wert überschreiten, werden auf diesen Wert gekürzt.

  • Wenn eine Aufgabe so konfiguriert ist, dass sie den vollständigen LOB-Modus verwendet, werden LOBs stückweise AWS DMS abgerufen. Die Option LOB chunk size (K) (LOB-Teilegröße) bestimmt die Größe der einzelnen Teile. Wenn Sie diese Option festlegen, achten Sie besonders auf die maximale Paketgröße, die gemäß Ihrer Netzwerkkonfiguration zulässig ist. Wenn die LOB-Blockgröße die maximal zulässige Paketgröße überschreitet, erhalten Sie möglicherweise Trennungsfehler. Der empfohlene Wert für LobChunkSize ist 64 Kilobyte. Wenn für LobChunkSize ein höherer Wert als 64 Kilobyte verwendet wird, kann dies zu Aufgabenfehlern führen.

  • Wenn eine Aufgabe für die Ausführung im Inline-LOB-Modus konfiguriert ist, bestimmt die Einstellung InlineLobMaxSize, welche LOBs DMS inline überträgt.

    Anmerkung

    Bei CDC-Vorgängen (Change Data Capture) ist für Tabellen, die LOB-Spalten enthalten, ein Primärschlüssel erforderlich. DMS verwendet diesen Schlüssel, um LOB-Werte in der Quelltabelle nachzuschlagen. Diese Anforderung gilt nur für CDC-Aufgaben. Bei Volllastaufgaben können ganze LOB-Spalten ohne Einschränkungen direkt von der Quelle zum Ziel gelesen und kopiert werden.

Weitere Informationen zu den Aufgabeneinstellungen zum Angeben dieser Optionen finden Sie unter Ziel-Metadaten-Aufgabeneinstellungen

SQL-Befehle zur Überprüfung der maximalen LOB-Spaltenlänge in der Quelltabelle

Verwenden Sie die folgenden SQL-Befehle, um die maximale LOB-Spaltenlänge zu überprüfen und entsprechend die DMS-Limited-LOB-Einstellungen zu konfigurieren, um Datenkürzungen bei der Migration zu vermeiden:

Oracle
SELECT dbms_lob.getlength(<COL_NAME>) as LOB_LENGTH FROM <TABLE_NAME> ORDER BY dbms_lob.getlength(<COL_NAME>) DESC FETCH FIRST 10 ROWS ONLY; Select ((max(length(<COL_NAME>)))/(1024)) from <TABLE_NAME>
SQL Server
Select top 10 datalength(<COL_NAME>) as fieldsize from <TABLE_NAME> order by datalength(<COL_NAME>) desc;
MySQL
Select (max(length(<COL_NAME>))/(1024)) as "Size in KB" from <TABLE_NAME>;
PostgreSQL
Select max((octet_length(<COL_NAME>))/(1024.0)) as "Size in KB" from <TABLE_NAME>;
Db2 LUW
-- Method 1: Using SYSCAT.COLUMNS (converting to KB) SELECT TABSCHEMA, TABNAME, COLNAME, LENGTH/1024 as LENGTH_KB, TYPENAME FROM SYSCAT.COLUMNS WHERE TYPENAME IN ('BLOB', 'CLOB', 'DBCLOB') ORDER BY LENGTH DESC; -- Method 2: For specific table with KB conversion SELECT COLNAME, LENGTH/1024 as LENGTH_KB, TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'YOUR_SCHEMA'AND TABNAME = 'YOUR_TABLE'AND TYPENAME IN ('BLOB', 'CLOB', 'DBCLOB'); -- Method 3: Using SYSIBM.SYSCOLUMNS SELECT TBCREATOR, TBNAME, NAME, LENGTH/1024 as LENGTH_KB, COLTYPE FROM SYSIBM.SYSCOLUMNS WHERE COLTYPE IN ('BLOB', 'CLOB', 'DBCLOB') ORDER BY LENGTH DESC; SYBASE : SELECT c.name as column_name, t.name as data_type, (c.length)/1024 as length_KB FROM syscolumns c JOIN systypes t ON c.usertype = t.usertype WHERE object_name(c.id) = 'YOUR_TABLE_NAME'AND t.name IN ('text', 'image', 'unitext') ORDER BY c.length DESC;