Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi per Amazon RDS for Db2
Il seguente contenuto può aiutarti a risolvere i problemi che riscontri con RDS for Db2.
Per ulteriori informazioni sulla risoluzione dei problemi generali di Amazon RDS, consultaRisoluzione dei problemi per Amazon RDS.
Argomenti
Errore di connessione al database
Il seguente messaggio di errore indica che un database non è riuscito a connettersi perché il server non dispone di memoria sufficiente.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Aumenta la memoria per l'istanza DB, quindi prova a connetterti nuovamente al database. Per informazioni sull'utilizzo della memoria e consigli per i database, consultaPiù database su un'istanza database Amazon RDS for Db2. Per informazioni su come aggiornare la memoria per un database RDS for Db2, vedere. rdsadmin.update_db_param
Errore di I/O del file
È possibile che si verifichi un errore di I/O del file per diversi motivi, ad esempio quando si utilizza il LOAD
comando o si chiama la rdsadmin.restore_database
stored procedure.
In questo esempio, si esegue il LOAD
comando seguente.
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 ')"
Il LOAD
comando restituisce il seguente messaggio:
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
Per visualizzare il messaggio di errore, si esegue il comando SQL come suggerito nella risposta precedente. SELECT SQLCODE, MSG FROM
TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG
restituisce il seguente messaggio:
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
I log di diagnostica Db2 contengono un file di registro simile al seguente:
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
Questo errore di I/O del file potrebbe derivare da diversi scenari. Ad esempio, il VPC associato al gruppo di sicurezza utilizzato per creare l'istanza DB RDS for Db2 potrebbe non avere un endpoint gateway Amazon S3. Questo endpoint è essenziale per consentire a RDS for Db2 di accedere ad Amazon S3. Se l'istanza DB RDS for Db2 si trova in sottoreti private, è necessario un endpoint gateway Amazon S3. Puoi specificare se la tua istanza DB utilizza sottoreti private o pubbliche configurando i gruppi di sottoreti Amazon RDS. Per ulteriori informazioni, consulta Utilizzo di gruppi di sottoreti database.
Argomenti
Fase 1: creare un endpoint gateway VPC per Amazon S3
Per far interagire la tua istanza DB RDS for Db2 con Amazon S3, crea un VPC e poi un endpoint gateway Amazon S3 da utilizzare nelle sottoreti private.
Per creare un endpoint gateway VPC per S3
-
Crea un VPC. Per ulteriori informazioni, consulta Create a VPC nella Amazon Virtual Private Cloud User Guide.
-
Crea un endpoint gateway Amazon S3 da utilizzare nelle sottoreti private. Per ulteriori informazioni, consulta gli endpoint Gateway nella Guida.AWS PrivateLink
Fase 2: Verifica che l'endpoint del gateway VPC per Amazon S3 esista
Verifica di aver creato correttamente un endpoint gateway Amazon S3 utilizzando o il AWS Management Console . AWS CLI
Per confermare un endpoint gateway Amazon S3
-
Accedi AWS Management Console e apri la console Amazon VPC all'indirizzo. https://console.aws.amazon.com/vpc
-
Nell'angolo in alto a destra della console, scegli il Regione AWS tuo VPC.
-
Seleziona il VPC che hai creato.
-
Nella scheda Mappa delle risorse, in Connessioni di rete, verifica che sia elencato un endpoint gateway Amazon S3.
Per confermare un endpoint gateway Amazon S3, esegui il comando. describe-vpc-endpoints Nell'esempio seguente, sostituiscilo vpc_id
con l'ID VPC, region
con il tuo e profile
con il Regione AWS nome del tuo profilo.
Per LinuxmacOS, oUnix:
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
Per 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
Questo comando produce un output simile al seguente esempio se esiste un endpoint gateway Amazon S3.
[ "vpce-0ea810434ff0b97e4" ]
Questo comando produce un output simile al seguente esempio se non esiste un endpoint gateway Amazon S3.
[]
Se non vedi un endpoint gateway Amazon S3 nell'elenco, allora. Fase 1: creare un endpoint gateway VPC per Amazon S3
Risoluzione degli errori relativi alle stored procedure
Questo argomento descrive vari errori restituiti durante la chiamata delle stored procedure e come risolverli.
Categoria | Errori delle procedure memorizzate |
---|---|
Database |
|
Database |
|
Database |
|
Database |
|
Database |
|
Database |
|
Database |
|
Spazi tabelle |
errori rdsadmin.activate_database
Quando si chiama la stored procedure, possono verificarsi i seguenti errori. rdsadmin.activate_database
Errore | Messaggio di errore |
---|---|
|
|
|
Allocazione della memoria condivisa non riuscita
Il seguente messaggio di errore indica che la stored procedure non è riuscita ad attivare un database perché l'istanza DB non dispone di memoria sufficiente.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Aumenta la memoria per l'istanza DB, quindi richiama nuovamente la rdsadmin.activate_database
stored procedure. Per informazioni sull'utilizzo della memoria e consigli per i database, consultaPiù database su un'istanza database Amazon RDS for Db2.
Impossibile eseguire l'attivazione a causa dei processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita ad attivare un database perché la rdsadmin.create_database
rdsadmin.restore_database
stored procedure è in esecuzione.
The database can’t be activated because it's in the process of being created or restored.
Attendere qualche minuto, quindi richiamare nuovamente la rdsadmin.activate_database
stored procedure.
errori rdsadmin.alter_tablespace
Quando si chiama la stored procedure, possono verificarsi i seguenti errori. rdsadmin.alter_tablespace
Errore | Messaggio di errore |
---|---|
|
|
|
|
|
|
|
|
|
Dichiarazione non valida
Il seguente messaggio di errore indica che la stored procedure ha combinato parametri opzionali che si escludono a vicenda con altri parametri opzionali. I parametri opzionalireduce_max, reduce_stop
,, reduce_value
lower_high_water
lower_high_water_stop
, e switch_online
per la rdsadmin.alter_tablespace
stored procedure si escludono a vicenda. Non è possibile combinarli con nessun altro parametro opzionale, ad esempio buffer_pool_name
nella rdsadmin.alter_tablespace
stored procedure. Se li combini, quando chiami la funzione rdsadmin.get_task_status
definita dall'utente, Db2 restituirà questo messaggio di errore.
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"
Richiama nuovamente la rdsadmin.alter_tablespace
stored procedure senza combinare parametri opzionali che si escludono a vicenda con altri parametri opzionali. Quindi richiama la funzione definita dall'rdsadmin.get_task_status
utente. Per ulteriori informazioni, vedere rdsadmin.alter_tablespace e rdsadmin.get_task_status.
valore tablespace_prefetch_size non valido
Il seguente messaggio di errore indica che non è stato impostato un valore numerico o non positivo. tablespace_prefetch_size
AUTOMATIC
Ad esempio, hai provato a impostarlo su. testinput
Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.
Richiamate nuovamente la rdsadmin.alter_tablespace
stored procedure e tablespace_prefetch_size
impostate su AUTOMATIC
o su un valore numerico non positivo.
valore numerico tablespace_prefetch_size non valido
Il seguente messaggio di errore indica che è stato impostato un valore numerico maggiore di 32767. tablespace_prefetch_size
Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.
Richiamate nuovamente la rdsadmin.alter_tablespace
stored procedure e tablespace_prefetch_size
impostatela su un valore numerico positivo diverso da zero minore o uguale a 32767.
Il parametro non può essere utilizzato con tablespace_prefetch_size
Il seguente messaggio di errore indica che hai provato a utilizzarlo con un parametro incompatibile. tablespace_prefetch_size
You can't use tablespace_prefetch_size with {
parameter
}.
Richiama nuovamente la rdsadmin.alter_tablespace
stored procedure e usala solo tablespace_prefetch_size
con parametri compatibili. Per informazioni sui parametri con cui è possibile utilizzaretablespace_prefetch_size
, vedererdsadmin.alter_tablespace.
Modifica della tablespace non riuscita
Il seguente messaggio di errore indica che hai provato a modificare un tablespace.
The change to tablespace {
tablespace_name
} failed because you can only alter LARGE or REGULAR tablespaces.
errori rdsadmin.create_database
Il seguente errore può verificarsi quando si chiama la stored procedure. rdsadmin.create_database
Errore | Messaggio di errore |
---|---|
|
Allocazione della memoria condivisa non riuscita
Il seguente messaggio di errore indica che la stored procedure non è riuscita a creare un database perché l'istanza DB non dispone di memoria sufficiente.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Aumenta la memoria per l'istanza DB, quindi richiama nuovamente la rdsadmin.create_database
stored procedure. Per informazioni sull'utilizzo della memoria e consigli per i database, consultaPiù database su un'istanza database Amazon RDS for Db2.
Per confermare che il database è stato creato, chiamate la funzione rdsadmin.list_databases definita dall'utente e verificate che il nuovo database sia elencato.
errori rdsadmin.deactivate_database
Il seguente errore può verificarsi quando si chiama la stored procedure. rdsadmin.deactivate_database
Errore | Messaggio di errore |
---|---|
|
Impossibile disattivare a causa dei processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita a disattivare un database perché la rdsadmin.create_database
o rdsadmin.restore_database
stored procedure è in esecuzione.
The database can’t be deactivated because it's in the process of being created or restored.
Attendi qualche minuto, quindi richiama nuovamente la rdsadmin.deactivate_database
stored procedure.
errori rdsadmin.drop_database
Quando si chiama la stored procedure, possono verificarsi i seguenti errori. rdsadmin.drop_database
Errore | Messaggio di errore |
---|---|
|
|
|
|
|
Il nome del database non esiste
Il seguente messaggio di errore indica che è stato passato un nome di database rdsadmin.drop_database
errato nella stored procedure.
SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993
Richiamare nuovamente la rdsadmin.drop_database
stored procedure con un nome di database corretto. Per confermare che il database è stato eliminato, richiama la funzione rdsadmin.list_databases definita dall'utente e verifica che il database eliminato non sia elencato.
Stato di ritorno = 0
Il seguente messaggio di errore indica che la stored procedure non può essere completata.
Return Status = 0
Dopo la ricezioneReturn Status = 0
, richiama la funzione definita dall'utente rdsadmin.get_task_status.
L'eliminazione del database non è consentita
Il seguente messaggio di errore indica che hai creato il database utilizzando la console Amazon RDS o il AWS CLI. È possibile utilizzare la rdsadmin.drop_database
stored procedure solo se il database è stato creato chiamando la rdsadmin.create_database stored procedure.
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
Per eliminare un database creato utilizzando la console Amazon RDS o il AWS CLI, usa un client per connetterti al database ed esegui il comando appropriato.
errori rdsadmin.reactivate_database
Il seguente errore può verificarsi quando si chiama la stored procedure. rdsadmin.reactivate_database
Errore | Messaggio di errore |
---|---|
|
|
|
Allocazione della memoria condivisa non riuscita
Il seguente messaggio di errore indica che la stored procedure non è riuscita ad attivare un database perché l'istanza DB non dispone di memoria sufficiente.
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
Aumenta la memoria per l'istanza DB, quindi richiama nuovamente la rdsadmin.activate_database
stored procedure. Per informazioni sull'utilizzo della memoria e consigli per i database, consultaPiù database su un'istanza database Amazon RDS for Db2.
Impossibile riattivare a causa dei processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita a riattivare un database perché la rdsadmin.create_database
o rdsadmin.restore_database
stored procedure è in esecuzione.
The database can’t be reactivated because it's in the process of being created or restored.
Attendere qualche minuto, quindi richiamare nuovamente la rdsadmin.reactivate_database
stored procedure.
errori rdsadmin.restore_database
Quando si chiama la stored procedure possono verificarsi i seguenti errori: rdsadmin.restore_database
Errore | Messaggio di errore |
---|---|
|
|
|
|
|
|
Tablespaces not restored |
|
Spazio su disco insufficiente
Il seguente messaggio di errore indica che l'istanza DB dispone di spazio su disco insufficiente per ripristinare il database:
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.
Lo spazio libero sull'istanza DB deve essere più del doppio delle dimensioni dell'immagine di backup. Se l'immagine di backup è compressa, lo spazio libero sull'istanza DB deve essere più del triplo delle dimensioni dell'immagine di backup. Per ulteriori informazioni, consulta Aumento della capacità di storage dell'istanza database.
Aumenta lo spazio su disco e richiama nuovamente la rdsadmin.restore_database
stored procedure. Per confermare che il database è stato ripristinato, richiama la funzione rdsadmin.list_databases definita dall'utente e verifica che il database ripristinato sia elencato.
Errore interno
Il seguente messaggio di errore indica che la stored procedure ha rilevato un errore interno:
Caught exception during executing task id 104, Aborting task. Reason Internal Error
Contatta il supporto AWS
Routine non recintate non consentite
Il seguente messaggio di errore indica che il database contiene routine non recintate:
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 per Db2 non supporta routine non recintate. Rimuovi le routine non recintate dal database di origine, quindi richiama. rdsadmin.restore_database
Per confermare che il database è stato ripristinato, richiama la funzione rdsadmin.list_databases definita dall'utente e verifica che il database ripristinato sia elencato. Per ulteriori informazioni, consulta Routine non recintate.
Tablespace non ripristinati
Il seguente messaggio di errore indica che RDS for Db2 ha ripristinato correttamente il database, ma non è riuscito a ripristinare uno o più tablespace:
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 per Db2 non supporta l'archiviazione non automatica. Converti l'archiviazione non automatica in archiviazione automatica e quindi richiama. rdsadmin.restore_database
Per ulteriori informazioni, vedere Conversione di un database di archiviazione non automatico per l'utilizzo della memorizzazione automatica nella documentazione
I database con archiviazione SMS non automatica richiedono il ripristino manuale. Se il database dispone di un'archiviazione SMS non automatica, contatta l'AWS assistenza
Per informazioni sullo storage non automatico e sulle migrazioni una tantum, consulta. tablespace di archiviazione non automatici durante la migrazione
errori rdsadmin.update_db_param
Il seguente errore può verificarsi quando si chiama la stored procedure. rdsadmin.update_db_param
Errore | Messaggio di errore |
---|---|
SQL0438N Application raised error or warning with
diagnostic text: "Parameter is either not supported or not
modifiable to customers". SQLSTATE=99993 |
Parametro non supportato o modificabile
Il seguente messaggio di errore indica che hai provato a modificare un parametro di configurazione del database che non è supportato o non è modificabile.
SQL0438N Application raised error or warning with diagnostic text: "Parameter is either not supported or not modifiable to customers". SQLSTATE=99993
Puoi vedere quali parametri sono modificabili visualizzando i tuoi gruppi di parametri. Per ulteriori informazioni, consulta Visualizzazione dei valori dei parametri per un gruppo di parametri DB in Amazon RDS Amazon.