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.
Dépannage d’Amazon RDS for Db2
Le contenu suivant peut vous aider à résoudre les problèmes que vous pouvez rencontrer avec RDS for Db2.
Pour plus d’informations sur la résolution des problèmes courants liés à Amazon RDS, consultez Dépannage d'Amazon RDS.
Rubriques
Erreur de connexion de la base de données
Le message d’erreur suivant indique qu’une base de données n’a pas pu se connecter, car le serveur ne dispose pas de suffisamment de mémoire.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Augmentez la mémoire de votre instance de base de données, puis essayez de vous reconnecter à votre base de données. Pour plus d’informations sur l’utilisation de la mémoire et les recommandations relatives aux bases de données, consultez Plusieurs bases de données sur une instance de base de données Amazon RDS for Db2. Pour plus d’informations sur la manière de mettre à jour la mémoire d’une base de données RDS for Db2, consultez rdsadmin.update_db_param.
I/O Erreur de fichier
Vous pouvez rencontrer une I/O erreur de fichier pour différentes raisons, par exemple lorsque vous utilisez la LOAD commande ou que vous appelez la procédure rdsadmin.restore_database stockée.
Dans cet exemples, vous exécutez la commande LOAD 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 commande LOAD 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, vous devez exécuter la commande SQL 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 I/O erreur de fichier peut être le résultat de plusieurs scénarios différents. Par exemple, le VPC associé au groupe de sécurité utilisé pour créer votre instance de base de données RDS for Db2 peut ne pas disposer d’un point de terminaison de passerelle Amazon S3. Ce point de terminaison est essentiel pour permettre à RDS for Db2 d’accéder à Amazon S3. Si votre instance de base de données RDS for Db2 se trouve dans des sous-réseaux privés, un point de terminaison de passerelle Amazon S3 est requis. Vous pouvez spécifier si votre instance de base de données utilise des sous-réseaux privés ou publics en configurant des groupes de sous-réseaux Amazon RDS. Pour plus d’informations, consultez Utilisation de groupes de sous-réseaux DB.
Rubriques
Étape 1 : création d’un point de terminaison de passerelle VPC pour Amazon S3
Pour que votre instance de base de données RDS for Db2 interagisse avec Amazon S3, créez un VPC, puis un point de terminaison de passerelle Amazon S3 que les sous-réseaux privés pourront utiliser.
Création d’un point de terminaison de passerelle VPC pour S3
-
Créez un VPC. Pour plus d’informations, consultez Création d’un VPC dans le Guide de l’utilisateur Amazon Virtual Private Cloud.
-
Créez un point de terminaison de passerelle Amazon S3 pour les sous-réseaux privés à utiliser. Pour plus d’informations, consultez Points de terminaison de passerelle dans le Guide AWS PrivateLink .
Étape 2 : vérification de l’existence du point de terminaison de votre passerelle VPC pour Amazon S3 existe
Vérifiez que vous avez correctement créé un point de terminaison de passerelle Amazon S3 à l’aide de la AWS Management Console ou d’ AWS CLI.
Confirmation du point de terminaison de passerelle Amazon S3
-
Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. https://console.aws.amazon.com/vpc
-
Dans le coin supérieur droit de la console, choisissez la Région AWS de votre VPC.
-
Sélectionnez le VPC que vous avez créé.
-
Dans l’onglet Carte des ressources, sous Connexions réseau, vérifiez qu’un point de terminaison de passerelle Amazon S3 est répertorié.
Pour confirmer le point de terminaison d’une passerelle Amazon S3, exécutez la commande describe-vpc-endpoints. Dans l'exemple suivant, remplacez vpc_id par l'ID VPC, par votre et region par le Région AWS nom profile de votre profil.
Pour Linux, macOS ou Unix :
aws ec2 describe-vpc-endpoints \ --filters "Name=vpc-id,Values=$vpc_id" \ "Name=service-name,\ Values=com.amazonaws.${region}.s3" \ --region $region--profile=$profile\ --query "VpcEndpoints[*].VpcEndpointId" --output text
Pour Windows :
aws ec2 describe-vpc-endpoints ^ --filters "Name=vpc-id,Values=$vpc_id" ^ "Name=service-name,^ Values=com.amazonaws.${region}.s3" ^ --region $region--profile=$profile^ --query "VpcEndpoints[*].VpcEndpointId" --output text
Le résultat produit lors de l’exécution de cette commande est semblable à l’exemple suivant s’il existe un point de terminaison de passerelle Amazon S3.
[ "vpce-0ea810434ff0b97e4" ]
Le résultat produit lors de l’exécution de cette commande est semblable à l’exemple suivant s’il n’existe pas de point de terminaison de passerelle Amazon S3.
[]
Si aucun point de terminaison de passerelle Amazon S3 n’est répertorié, alors Étape 1 : création d’un point de terminaison de passerelle VPC pour Amazon S3.
Erreurs de procédure stockée
Cette section 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 |
|
|
Bases de données |
|
|
Bases de données |
|
|
Bases de données |
|
|
Bases de données |
|
|
Bases de données |
|
|
Bases de données |
|
|
Bases de données |
|
|
Espaces de table |
erreurs rdsadmin.activate_database
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure stockée rdsadmin.activate_database.
| Erreur | Message d’erreur |
|---|---|
|
|
|
|
|
Impossible d’allouer de la mémoire partagée
Le message d’erreur suivant indique qu’une procédure stockée n’a pas pu activer de base de données, car l’instance de base de données ne dispose pas de suffisamment de mémoire.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Augmentez la mémoire de votre instance de base de données, puis appelez à nouveau la procédure stockée rdsadmin.activate_database. Pour plus d’informations sur l’utilisation de la mémoire et les recommandations relatives aux bases de données, consultez Plusieurs bases de données sur une instance de base de données Amazon RDS for Db2.
Activation impossible en raison de processus en cours d’exécution
Le message d’erreur suivant indique que la procédure stockée n’a pas pu activer de base de données, car la procédure stockée rdsadmin.create_database ou rdsadmin.restore_database est en cours d’exécution.
The database can’t be activated because it's in the process of being created or restored.
Attendez quelques minutes, puis rappelez la procédure stockée rdsadmin.activate_database.
erreurs rdsadmin.alter_tablespace
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure stockée rdsadmin.alter_tablespace.
| Erreur | Message d’erreur |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instruction non valide
Le message d’erreur suivant indique que la procédure stockée a combiné des paramètres facultatifs mutuellement exclusifs avec d’autres paramètres facultatifs. Les paramètres facultatifs reduce_max, reduce_stop, reduce_value, lower_high_water, lower_high_water_stop, et switch_online pour la procédure stockée rdsadmin.alter_tablespace s’excluent mutuellement. Vous ne pouvez pas les combiner avec d’autres paramètres facultatifs, tels que buffer_pool_name dans la procédure stockée rdsadmin.alter_tablespace. Si vous les combinez, Db2 renvoie ce message d’erreur lorsque vous appelez la fonction rdsadmin.get_task_status définie par l’utilisateur.
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"
Appelez à nouveau la procédure stockée rdsadmin.alter_tablespace sans combiner les paramètres facultatifs mutuellement exclusifs avec d’autres paramètres facultatifs. Appelez ensuite la fonction rdsadmin.get_task_status définie par l’utilisateur. Pour plus d’informations, consultez rdsadmin.alter_tablespace et rdsadmin.get_task_status.
valeur tablespace_prefetch_size non valide
Le message d’erreur suivant indique que vous n’avez pas défini tablespace_prefetch_size sur AUTOMATIC ou sur une valeur numérique non positive. Par exemple, vous avez essayé de le définir sur testinput.
Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.
Appelez à nouveau la procédure stockée rdsadmin.alter_tablespace et définissez tablespace_prefetch_size sur AUTOMATIC ou sur une valeur numérique non positive.
valeur tablespace_prefetch_size numerical non valide
Le message d’erreur suivant indique que vous avez défini tablespace_prefetch_size sur une valeur numérique supérieure à 32767.
Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.
Appelez à nouveau la procédure stockée rdsadmin.alter_tablespace et définissez tablespace_prefetch_size sur une valeur numérique non positive inférieure ou égale à 32767.
Le paramètre ne peut pas être utilisé avec tablespace_prefetch_size
Le message d’erreur suivant indique que vous avez essayé d’utiliser tablespace_prefetch_size avec un paramètre incompatible.
You can't use tablespace_prefetch_size with {parameter}.
Appelez à nouveau la procédure stockée rdsadmin.alter_tablespace et utilisez uniquement tablespace_prefetch_size avec des paramètres compatibles. Pour plus d’informations sur les paramètres que vous pouvez utiliser avec tablespace_prefetch_size, consultez rdsadmin.alter_tablespace.
La modification du tablespace a échoué
Le message d’erreur suivant indique que vous avez essayé de modifier un tablespace.
The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.
Erreurs rdsadmin.backup_database
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure stockée rdsadmin.backup_database.
| Erreur | Message d’erreur |
|---|---|
|
|
|
|
|
Espace disque insuffisant
Le message d'erreur suivant indique que l'espace disque de votre instance de base de données est insuffisant pour sauvegarder votre base de données :
Aborting task. Reason Backing up your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.backup_database stored procedure.
Lorsque vous sauvegardez une base de données sur un stockage distant, assurez-vous de disposer de suffisamment d'espace disque pour la session de sauvegarde et les fichiers de travail. Chaque session de sauvegarde traite jusqu'à 5 Go de données, mais un espace supplémentaire est nécessaire pour les journaux de transactions, les fichiers temporaires et les opérations de base de données en cours.
Nous vous recommandons de disposer de l'espace disque disponible suivant pour les sauvegardes en fonction de la taille de la base de données :
-
Pour les bases de données de moins de 5 Go : taille de la base de données + 3 Go de mémoire tampon
-
Pour les bases de données de 5 Go ou plus : au moins 10 Go d'espace libre
Cette quantité d'espace disque disponible tient compte du traitement des sessions de sauvegarde, de l'accumulation du journal des transactions pendant la sauvegarde, des fichiers de travail temporaires et des flux de sauvegarde parallèles s'ils sont configurés. Pour de plus amples informations, veuillez consulter Augmentation de la capacité de stockage d'une instance de base de données.
Augmentez votre espace disque, puis appelez à nouveau la procédure stockée rdsadmin.backup_database. Pour vérifier que la base de données a été correctement sauvegardée, vérifiez l'état de la tâche à l'aide derdsadmin.get_task_status. Vous pouvez également vérifier que les fichiers de sauvegarde existent dans votre compartiment Amazon S3 souss3_prefix/dbi_resource_id/db_name.
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
erreurs rdsadmin.create_database
L’erreur suivante peut se produire lorsque vous appelez la procédure stockée rdsadmin.create_database.
| Erreur | Message d’erreur |
|---|---|
|
|
Impossible d’allouer de la mémoire partagée
Le message d’erreur suivant indique qu’une procédure stockée n’a pas pu créer de base de données, car l’instance de base de données ne dispose pas de suffisamment de mémoire.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Augmentez la mémoire de votre instance de base de données, puis appelez à nouveau la procédure stockée rdsadmin.create_database. Pour plus d’informations sur l’utilisation de la mémoire et les recommandations relatives aux bases de données, consultez Plusieurs bases de données sur une instance de base de données Amazon RDS for Db2.
Pour confirmer que la base de données a été créée, appelez la fonction rdsadmin.list_databases définie par l’utilisateur et vérifiez que la nouvelle base de données est répertoriée.
erreurs rdsadmin.deactivate_database
L’erreur suivante peut se produire lorsque vous appelez la procédure stockée rdsadmin.deactivate_database.
| Erreur | Message d’erreur |
|---|---|
|
|
Désactivation impossible en raison de processus en cours d’exécution
Le message d’erreur suivant indique que la procédure stockée n’a pas pu désactiver la base de données, car la procédure stockée rdsadmin.create_database ou rdsadmin.restore_database est en cours d’exécution.
The database can’t be deactivated because it's in the process of being created or restored.
Attendez quelques minutes, puis rappelez la procédure stockée rdsadmin.deactivate_database.
Erreurs rdsadmin.drop_database
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure stockée rdsadmin.drop_database.
| Erreur | Message d’erreur |
|---|---|
|
|
|
|
|
|
|
|
Le nom de la base de données n’existe pas
Le message d’erreur suivant indique que vous avez transmis un nom de base de données incorrect dans la procédure stockée rdsadmin.drop_database.
SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993
Appelez à nouveau la procédure stockée rdsadmin.drop_database avec un nom de base de données correct. Pour confirmer que la base de données a été supprimée, appelez la fonction rdsadmin.list_databases définie par l’utilisateur et vérifiez que la base de données supprimée n’est pas répertoriée.
État du renvoi = 0
Le message d’erreur suivant indique que la procédure stockée n’a pas pu être terminée.
Return Status = 0
Après réception de Return Status = 0, appelez la fonction rdsadmin.get_task_status définie par l’utilisateur.
La suppression de la base de données est interdite
Le message d’erreur suivant indique que vous avez créé la base de données à l’aide de la console Amazon RDS ou de l’ AWS CLI. Vous ne pouvez utiliser la procédure stockée rdsadmin.drop_database que si vous avez créé la base de données en appelant la procédure stockée rdsadmin.create_database.
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started. 2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. Reason Dropping database created via rds CreateDBInstance api is not allowed. Only database created using rdsadmin.create_database can be dropped
Pour supprimer une base de données que vous avez créée à l’aide de la console Amazon RDS ou de l’ AWS CLI, utilisez un client pour vous connecter à la base de données, puis exécutez la commande appropriée.
erreurs rdsadmin.reactivate_database
L’erreur suivante peut se produire lorsque vous appelez la procédure stockée rdsadmin.reactivate_database.
| Erreur | Message d’erreur |
|---|---|
|
|
|
|
|
Impossible d’allouer de la mémoire partagée
Le message d’erreur suivant indique qu’une procédure stockée n’a pas pu activer de base de données, car l’instance de base de données ne dispose pas de suffisamment de mémoire.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Augmentez la mémoire de votre instance de base de données, puis appelez à nouveau la procédure stockée rdsadmin.activate_database. Pour plus d’informations sur l’utilisation de la mémoire et les recommandations relatives aux bases de données, consultez Plusieurs bases de données sur une instance de base de données Amazon RDS for Db2.
Réactivation impossible en raison de processus en cours d’exécution
Le message d’erreur suivant indique que la procédure stockée n’a pas pu réactiver la base de données, car la procédure stockée rdsadmin.create_database ou rdsadmin.restore_database est en cours d’exécution.
The database can’t be reactivated because it's in the process of being created or restored.
Attendez quelques minutes, puis rappelez la procédure stockée rdsadmin.reactivate_database.
Erreurs rdsadmin.restore_database
Les erreurs suivantes peuvent se produire lorsque vous appelez la procédure stockée rdsadmin.restore_database :
| 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 de deux fois supérieur à 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 de trois fois supérieur à la taille de votre image de sauvegarde. Pour plus d’informations, consultez Augmentation de la capacité de stockage d'une instance de base de données.
Augmentez votre espace disque, puis appelez à nouveau la procédure stockée rdsadmin.restore_database. Pour confirmer que la base de données a été restaurée, appelez la fonction rdsadmin.list_databases définie par l’utilisateur et vérifiez que la base de données restaurée est répertoriée.
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.
RDS for 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 à nouveau rdsadmin.restore_database. Pour confirmer que la base de données a été restaurée, appelez la fonction rdsadmin.list_databases définie par l’utilisateur et vérifiez que la base de données restaurée est répertoriée. Pour plus d’informations, consultez Routines non clôturées.
Tablespaces non restaurés
Le message d’erreur suivant indique que RDS for Db2 a correctement restauré votre base de données, mais n’a 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.
RDS for Db2 ne prend pas en charge le stockage non automatique. Convertissez le stockage non automatique en stockage automatique, puis appelez à nouveau rdsadmin.restore_database. Pour plus d’informations, consultez Conversion d’une base de données de stockage non automatique en une base de données de stockage automatique
Les bases de données dont le stockage SMS n’est pas automatique doivent être restaurées manuellement. Si votre base de données contient un stockage SMS non automatique, contactez le Support AWS
Pour plus d’informations sur le stockage non automatique et les migrations ponctuelles, consultez Tablespaces de stockage non automatiques pendant la migration.
erreurs rdsadmin.update_db_param
L’erreur suivante peut se produire lorsque vous appelez la procédure stockée rdsadmin.update_db_param.
| Erreur | Message d’erreur |
|---|---|
SQL0438N Application raised error or warning with
diagnostic text: "Parameter is either not supported or not
modifiable to customers". SQLSTATE=99993 |
Paramètre non pris en charge ou non modifiable
Le message d’erreur suivant indique que vous avez essayé de modifier un paramètre de configuration de base de données qui n’est pas pris en charge ou qui n’est pas modifiable.
SQL0438N Application raised error or warning with diagnostic text: "Parameter is either not supported or not modifiable to customers". SQLSTATE=99993
Vous pouvez voir quels paramètres sont modifiables en consultant vos groupes de paramètres. Pour plus d’informations, consultez Affichage des valeurs de paramètres pour un groupe de paramètres de base de données dans Amazon RDS.