Fehlerbehebung für Amazon RDS for Db2 - Amazon Relational Database 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.

Fehlerbehebung für Amazon RDS for Db2

Der folgende Inhalt kann Ihnen bei der Behebung von Problemen helfen, die bei RDS for Db2 auftreten.

Weitere Informationen zu allgemeinen Problemen mit Amazon RDS zur Fehlerbehebung finden Sie unterProblembehandlung für Amazon RDS.

Datei-I/O-Fehler

Wenn Sie den LOAD Befehl verwenden, kann ein Datei-I/O-Fehler auftreten. Sie führen beispielsweise den folgenden LOAD Befehl aus:

db2 "call sysproc.admin_cmd('load from "DB2REMOTE://s3test//public/datapump/t6.del" of del lobs from "DB2REMOTE://s3test/public/datapump/" modified by lobsinfile MESSAGES ON SERVER insert INTO RDSDB.t6 nonrecoverable ')"

Der LOAD Befehl gibt die folgende Meldung zurück:

Result set 1 -------------- ROWS_READ ROWS_SKIPPED ROWS_LOADED ROWS_REJECTED ROWS_DELETED ROWS_COMMITTED ROWS_PARTITIONED NUM_AGENTINFO_ENTRIES MSG_RETRIEVAL MSG_REMOVAL -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG CALL SYSPROC.ADMIN_REMOVE_MSGS('1594987316_285548770') 1 record(s) selected. Return Status = 0 SQL20397W Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least one error, "SQL1652", was encountered during the execution. More information is available. SQLSTATE=01H52

Um die Fehlermeldung anzuzeigen, führen Sie den SQL-Befehl wie in der vorherigen Antwort vorgeschlagen aus. SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSGgibt die folgende Meldung zurück:

SQLCODE MSG --------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SQL2025N An I/O error occurred. Error code “438”. Media on which this error occurred: “DB2REMOTE://s3test//public/datapump/t6.del” SQL3500W The utility is beginning the LOAD phase at time “07/05/2024 21:21:48.082954” SQL1652N File I/O error occurred

Die Db2-Diagnoseprotokolle enthalten eine Protokolldatei, die der folgenden ähnelt:

2024-07-05-21.20.09.440609+000 I1191321E864 LEVEL: Error PID : 2710 TID : 139619509200640 PROC : db2sysc 0 INSTANCE: rdsdb NODE : 000 DB : NTP APPHDL : 0-12180 APPID: xxx.xx.x.xxx.xxxxx.xxxxxxxxxxxx UOWID : 5 ACTID: 1 AUTHID : ADMIN HOSTNAME: ip-xx-xx-x-xx EDUID : 147 EDUNAME: db2lmr 0 FUNCTION: DB2 UDB, oper system services, sqloS3Client_GetObjectInfo, probe:219 MESSAGE : ZRC=0x870F01B6=-2029059658=SQLO_FAILED "An unexpected error is encountered" DATA #1 : String, 29 bytes S3:HeadObject request failed. DATA #2 : signed integer, 4 bytes 99 DATA #3 : String, 0 bytes Object not dumped: Address: 0x00007EFC08A9AE38 Size: 0 Reason: Zero-length data DATA #4 : String, 33 bytes curlCode: 28, Timeout was reached

Dieser Datei-I/O-Fehler kann auf eine Reihe verschiedener Szenarien zurückzuführen sein. Beispielsweise verwenden Ihre RDS for Db2-DB-Instance und Ihr Amazon S3 S3-Bucket möglicherweise nicht dieselbe VPC oder befinden sich nicht in derselben. AWS-Region Unabhängig vom Szenario ist die Lösung dieselbe: Sie müssen einen VPC-Gateway-Endpunkt erstellen und dann Ihrer Sicherheitsgruppe Regeln für ausgehenden Datenverkehr hinzufügen.

Schritt 1: Erstellen Sie einen VPC-Gateway-Endpunkt für Amazon S3

Wenn Sie zum ersten Mal eine RDS for Db2-DB-Instance erstellen, erstellt Amazon RDS die DB-Instance mit drei privaten Subnetzen, einer Sicherheitsgruppe und ohne öffentlichen Zugriff. Die Sicherheitsgruppe verhindert, dass jeglicher S3-Verkehr das private Subnetz verlässt.

Um Datenverkehr zwischen Ihrer RDS for Db2-DB-Instance und S3 zuzulassen, müssen Sie einen Gateway-Endpunkt erstellen, der eine Verbindung zu S3 herstellt. Achten Sie beim Erstellen des Endpunkts darauf, die Routing-Tabelle auszuwählen, die Sie diesem Endpunkt zuordnen möchten.

Anmerkung

Wenn beim Erstellen des VPC-Endpunkts ein Fehler auftritt, der besagt, dass die ausgewählte Routentabelle bereits über eine Route verfügt, führen Sie eine der folgenden Optionen aus:

Routentabelle, die bei der Erstellung des VPC-Gateway-Endpunkts ausgewählt wurde.

Weitere Informationen finden Sie unter Erstellen eines Gateway-Endpunkts im Amazon VPC-Benutzerhandbuch.

Schritt 2: Fügen Sie der Sicherheitsgruppe Regeln für ausgehenden Datenverkehr hinzu

In diesem Schritt wird davon ausgegangen, dass Sie einen Gateway-Endpunkt in Schritt 1: Erstellen Sie einen VPC-Gateway-Endpunkt für Amazon S3 erstellt haben. In diesem Schritt fügen Sie Regeln für ausgehenden Datenverkehr zu einem privaten Subnetz in der Sicherheitsgruppe für Ihre VPC hinzu. Diese Regeln für ausgehenden Datenverkehr ermöglichen HTTP- und HTTPS-Verkehr.

Öffnen Sie für den Wert Destination das Kontextmenü (Rechtsklick) für Suchen und wählen Sie unter Präfixlisten das Präfix des Gateway-Endpunkts aus, den Sie erstellt haben. Das Format des Präfixes ist com.amazonaws.AWS-Region.s3 beispielsweisecom.amazonaws.us-west-2.s3.

Ausgehende Regeln für HTTP- und HTTPS-Verkehr nach S3.

Weitere Informationen finden Sie unter Sicherheitsgruppenregeln im Amazon VPC-Benutzerhandbuch.