Résolution des problèmes liés à Amazon RDS pour DB2 - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés à Amazon RDS pour DB2

Le contenu suivant peut vous aider à résoudre les problèmes que vous rencontrez avec RDS Db2.

Pour plus d'informations sur les problèmes généraux de RDS résolution des problèmes liés à Amazon, consultezRésolution des problèmes pour Amazon RDS.

Erreur d'E/S dans le fichier

Lorsque vous utilisez la LOAD commande, il est possible que vous rencontriez une erreur d'E/S de fichier. Par exemple, vous exécutez la LOAD commande suivante :

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 ')"

La LOAD commande renvoie le message suivant :

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

Pour afficher le message d'erreur, exécutez la SQL commande comme suggéré dans la réponse précédente. SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSGrenvoie le message suivant :

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

Les journaux de diagnostic Db2 contiennent un fichier journal similaire au suivant :

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

Cette erreur d'E/S de fichier peut résulter d'un certain nombre de scénarios différents. Par exemple, il est possible que votre instance de base de données RDS for Db2 et votre compartiment Amazon S3 n'utilisent pas la même chose VPC ou qu'ils se trouvent dans le même Région AWS compartiment. Quel que soit le scénario, la solution est la même : vous devez créer un point de terminaison de VPC passerelle, puis ajouter des règles de sortie à votre groupe de sécurité.

Étape 1 : créer un point de terminaison de VPC passerelle pour Amazon S3

Lorsque vous créez une instance de base de données RDS pour DB2 pour la première fois, Amazon RDS crée l'instance de base de données avec trois sous-réseaux privés, un groupe de sécurité et aucun accès public. Le groupe de sécurité empêche tout trafic S3 de quitter le sous-réseau privé.

Pour autoriser le trafic entre votre instance de base de données RDS for Db2 et S3, vous devez créer un point de terminaison de passerelle qui se connecte à S3. Lorsque vous créez le point de terminaison, veillez à sélectionner la table de routage que vous souhaitez associer à ce point de terminaison.

Note

Si vous rencontrez une erreur lors de la création du VPC point de terminaison indiquant que la table de routage sélectionnée possède déjà un itinéraire, utilisez l'une des options suivantes :

Table de routage sélectionnée lors de la création du point de terminaison de la VPC passerelle.

Pour plus d'informations, consultez la section Créer un point de terminaison de passerelle dans le guide de VPC l'utilisateur Amazon.

Étape 2 : ajouter des règles de sortie au groupe de sécurité

Cette étape suppose que vous avez créé un point de terminaison de passerelle dansÉtape 1 : créer un point de terminaison de VPC passerelle pour Amazon S3. Au cours de cette étape, vous ajoutez des règles de sortie à un sous-réseau privé du groupe de sécurité correspondant à votre. VPC Ces règles sortantes autorisent HTTP le HTTPS trafic.

Pour la valeur Destination, ouvrez le menu contextuel (clic droit) pour Rechercher, puis sous Listes de préfixes, choisissez le préfixe du point de terminaison de passerelle que vous avez créé. Le format du préfixe estcom.amazonaws.Région AWS.s3, par exemple,com.amazonaws.us-west-2.s3.

Règles de sortie HTTP et HTTPS trafic vers S3.

Pour plus d'informations, consultez la section Règles relatives aux groupes de sécurité dans le guide de VPC l'utilisateur Amazon.

Résolution des erreurs liées aux procédures stockées

Cette rubrique décrit les différentes erreurs renvoyées lors de l'appel de procédures stockées et explique comment les résoudre.

Catégorie Erreurs de procédure stockée

Bases de données

Erreurs rdsadmin.restore_database

Erreurs rdsadmin.restore_database

Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure rdsadmin.restore_database stockée :

Erreur Message d’erreur

Insufficient disk space

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

Internal error

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Non-fenced routines not allowed

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

Tablespaces not restored

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

Espace disque insuffisant

Le message d'erreur suivant indique que l'espace disque de votre instance de base de données est insuffisant pour restaurer votre base de données :

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

L'espace libre sur votre instance de base de données doit être plus du double de la taille de votre image de sauvegarde. Si votre image de sauvegarde est compressée, l'espace libre sur votre instance de base de données doit être plus du triple de la taille de votre image de sauvegarde. Pour de plus amples informations, veuillez consulter Augmentation de la capacité de stockage d'une instance de base de données.

Erreur interne

Le message d'erreur suivant indique que la procédure stockée a rencontré une erreur interne :

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Contactez AWS Support.

Les routines non clôturées ne sont pas autorisées

Le message d'erreur suivant indique que votre base de données contient des routines non clôturées :

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

RDScar Db2 ne prend pas en charge les routines non clôturées. Supprimez les routines non clôturées de la base de données source, puis appelez rdsadmin.restore_database à nouveau. Pour de plus amples informations, veuillez consulter Routines non clôturées.

Tablespaces non restaurés

Le message d'erreur suivant indique que RDS Db2 a correctement restauré votre base de données, mais que vous n'avez pas pu restaurer un ou plusieurs tablespaces :

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

RDScar Db2 ne prend pas en charge le stockage non automatique. Convertissez le stockage non automatique en stockage automatique, puis appelez rdsadmin.restore_database à nouveau. Pour plus d'informations, voir Conversion d'une base de données de stockage non automatique pour utiliser le stockage automatique dans IBM Db2 .

Les bases de données avec SMS stockage non automatique nécessitent une restauration manuelle. Si votre base de données dispose d'un SMS stockage non automatique, contactez le AWS Support.

Pour plus d'informations sur le stockage non automatique et les migrations ponctuelles, consultezTablespaces de stockage non automatiques pendant la migration.