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 MSG
renvoie 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é.
Rubriques
É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 :
-
Créez un nouveauVPC. Ensuite, lorsque vous créez le point de terminaison de la passerelle, sélectionnez le nouveauVPC. Pour plus d'informations, consultez Create a VPC dans le guide de VPC l'utilisateur Amazon.
-
Créez le point de terminaison de la passerelle sans sélectionner de table de routage. Après avoir créé le point de terminaison de la passerelle, créez une nouvelle table de routage et associez-la au point de terminaison de la VPC passerelle. Pour plus d'informations, consultez les sections Créer une table de routage personnalisée et Contrôler le trafic entrant dans votre table de routage à l'VPCaide d'une passerelle dans le guide de VPC l'utilisateur Amazon.
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.
, par exemple,Région AWS
.s3com.amazonaws.us-west-2.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
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure rdsadmin.restore_database stockée :
Erreur | Message d’erreur |
---|---|
|
|
|
|
|
|
Tablespaces 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
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.