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 relativi ad Amazon RDS per Db2
I contenuti seguenti sono utili per risolvere i problemi che possono verificarsi con RDS per Db2.
Per ulteriori informazioni sulla risoluzione dei problemi generali relativi ad Amazon RDS, consulta Risoluzione dei problemi per Amazon RDS.
Errore di connessione al database
Il seguente messaggio di errore indica che la connessione al database non è riuscita 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 database, quindi prova a connetterti nuovamente al database. Per informazioni sull’utilizzo della memoria e consigli per i database, consulta Più database su un’istanza database Amazon RDS per Db2. Per informazioni su come aggiornare la memoria per un database RDS per Db2, consulta rdsadmin.update_db_param.
I/O Errore nel file
È possibile che si verifichi un I/O errore di file per diversi motivi, ad esempio quando si utilizza il LOAD comando o si chiama la rdsadmin.restore_database stored procedure.
In questo esempio viene eseguito il seguente comando LOAD.
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 comando LOAD 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, viene eseguito 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 di Db2 contengono un file di log 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 I/O errore di file potrebbe derivare da diversi scenari. Ad esempio, il VPC associato al gruppo di sicurezza utilizzato per creare l’istanza database RDS per Db2 potrebbe non avere un endpoint gateway per Amazon S3. Questo endpoint è essenziale per consentire a RDS per Db2 di accedere ad Amazon S3. Se l’istanza database RDS per Db2 si trova in sottoreti private, è necessario un endpoint gateway per Amazon S3. È possibile specificare se l’istanza database utilizza sottoreti private o pubbliche configurando 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 consentire all’istanza database RDS per Db2 di interagire con Amazon S3, crea un VPC e quindi un endpoint gateway per Amazon S3 da utilizzare per le sottoreti private.
Per creare un endpoint gateway VPC per S3
-
Crea un VPC. Per ulteriori informazioni, consulta Crea un VPC nella Guida per l’utente di Amazon Virtual Private Cloud.
-
Crea un endpoint gateway per Amazon S3 da utilizzare per le sottoreti private. Per ulteriori informazioni, consulta Endpoint gateway nella Guida di AWS PrivateLink .
Fase 2: verificare l’esistenza dell’endpoint gateway VPC per Amazon S3
Verifica di aver creato correttamente un endpoint gateway per Amazon S3 utilizzando la AWS Management Console o la AWS CLI.
Per verificare l’esistenza di un endpoint gateway per Amazon S3
-
Accedi AWS Management Console e apri la console Amazon VPC all'indirizzo. https://console.aws.amazon.com/vpc
-
Nell’angolo superiore destro della console, scegli la Regione AWS del VPC.
-
Seleziona il VPC creato.
-
Nella scheda Mappa delle risorse, in Connessioni di rete, verifica che l’endpoint gateway per Amazon S3 sia incluso nell’elenco.
Per verificare l’esistenza di un endpoint gateway per 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 Linux, macOS o 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
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
Se esiste un endpoint gateway per Amazon S3, questo comando genera un output simile al seguente esempio.
[ "vpce-0ea810434ff0b97e4" ]
Se non esiste un endpoint gateway per Amazon S3, questo comando genera un output simile al seguente esempio.
[]
Se l’endpoint gateway per Amazon S3 non risulta incluso nell’elenco, torna alla Fase 1: creare un endpoint gateway VPC per Amazon S3.
Errori delle stored procedure
In questa sezione sono descritti i vari errori restituiti durante le chiamate alle stored procedure e viene illustrato come risolverli.
| Categoria | Errori delle stored procedure |
|---|---|
|
Database |
|
|
Database |
|
|
Database |
|
|
Database |
|
|
Database |
|
|
Database |
|
|
Database |
|
|
Database |
|
|
Tablespace |
Errori di rdsadmin.activate_database
Durante una chiamata alla stored procedure rdsadmin.activate_database possono verificarsi i seguenti errori.
| 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 database 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 database, quindi chiama nuovamente la stored procedure rdsadmin.activate_database. Per informazioni sull’utilizzo della memoria e consigli per i database, consulta Più database su un’istanza database Amazon RDS per Db2.
Impossibile attivare a causa di processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita ad attivare un database perché la stored procedure rdsadmin.create_database o rdsadmin.restore_database è in esecuzione.
The database can’t be activated because it's in the process of being created or restored.
Attendi qualche minuto, quindi chiama nuovamente la stored procedure rdsadmin.activate_database.
Errori di rdsadmin.alter_tablespace
Durante una chiamata alla stored procedure rdsadmin.alter_tablespace possono verificarsi i seguenti errori.
| Errore | Messaggio di errore |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Istruzione non valida
Il seguente messaggio di errore indica che la stored procedure ha combinato parametri facoltativi che si escludono a vicenda con altri parametri facoltativi. I parametri facoltativi reduce_max, reduce_stop, reduce_value, lower_high_water, lower_high_water_stop e switch_online per la stored procedure rdsadmin.alter_tablespace si escludono a vicenda. Non è possibile combinarli con altri parametri facoltativi, ad esempio buffer_pool_name, nella stored procedure rdsadmin.alter_tablespace. Se si combinano tali parametri, quando si chiama la funzione definita dall’utente rdsadmin.get_task_status, Db2 restituisce 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"
Chiama nuovamente la stored procedure rdsadmin.alter_tablespace senza combinare parametri facoltativi che si escludono a vicenda con altri parametri facoltativi. Quindi, chiama la funzione definita dall’utente rdsadmin.get_task_status. Per ulteriori informazioni, consulta rdsadmin.alter_tablespace e rdsadmin.get_task_status.
Valore di tablespace_prefetch_size non valido
Il seguente messaggio di errore indica che il parametro tablespace_prefetch_size non è stato impostato su AUTOMATIC o su un valore numerico non positivo. Ad esempio, si è provato a impostarlo su testinput.
Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.
Chiama nuovamente la stored procedure rdsadmin.alter_tablespace e imposta tablespace_prefetch_size su AUTOMATIC o su un valore numerico non positivo.
Valore numerico di tablespace_prefetch_size non valido
Il seguente messaggio di errore indica che il parametro tablespace_prefetch_size è stato impostato su un valore numerico maggiore di 32.767.
Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.
Chiama nuovamente la stored procedure rdsadmin.alter_tablespace e imposta tablespace_prefetch_size su un valore numerico positivo diverso da zero che sia minore o uguale a 32.767.
Impossibile utilizzare il parametro con tablespace_prefetch_size
Il seguente messaggio di errore indica che si è provato a utilizzare tablespace_prefetch_size con un parametro incompatibile.
You can't use tablespace_prefetch_size with {parameter}.
Chiama nuovamente la stored procedure rdsadmin.alter_tablespace e utilizza tablespace_prefetch_size solo con parametri compatibili. Per informazioni sui parametri che è possibile utilizzare con tablespace_prefetch_size, consulta rdsadmin.alter_tablespace.
Modifica del tablespace non riuscita
Il seguente messaggio di errore indica che si è provato a modificare un tablespace.
The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.
errori rdsadmin.backup_database
Durante una chiamata alla stored procedure rdsadmin.backup_database possono verificarsi i seguenti errori.
| Errore | Messaggio di errore |
|---|---|
|
|
|
|
|
Spazio su disco insufficiente
Il seguente messaggio di errore indica che l'istanza DB dispone di spazio su disco insufficiente per eseguire il backup del database:
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.
Quando esegui il backup di un database su un dispositivo di archiviazione remoto, assicurati di disporre di spazio libero su disco sufficiente per la sessione di backup e i file di lavoro. Ogni sessione di backup elabora fino a 5 GB di dati, ma è necessario spazio aggiuntivo per i registri delle transazioni, i file temporanei e le operazioni continue del database.
Si consiglia di disporre del seguente spazio libero su disco per i backup in base alle dimensioni del database:
-
Per database inferiori a 5 GB: dimensione del database + 3 GB di buffer
-
Per database di dimensioni pari o superiori a 5 GB: almeno 10 GB di spazio libero
Questa quantità di spazio libero su disco tiene conto dell'elaborazione delle sessioni di backup, dell'accumulo dei log delle transazioni durante il backup, dei file di lavoro temporanei e dei flussi di backup paralleli, se configurati. Per ulteriori informazioni, consulta Aumento della capacità di storage dell'istanza database.
Aumenta lo spazio su disco e chiama nuovamente la stored procedure rdsadmin.backup_database. Per confermare che il backup del database è stato eseguito correttamente, controlla lo stato dell'attività utilizzandordsadmin.get_task_status. Puoi anche verificare che i file di backup esistano nel tuo bucket Amazon S3 sotto. s3_prefix/dbi_resource_id/db_name
Errore interno
Il seguente messaggio di errore indica che la stored procedure ha riscontrato un errore interno:
Caught exception during executing task id 104, Aborting task. Reason Internal Error
Contatta il Supporto AWS
Errori di rdsadmin.create_database
Durante una chiamata alla stored procedure rdsadmin.create_database può verificarsi il seguente errore.
| 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 database 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 database, quindi chiama nuovamente la stored procedure rdsadmin.create_database. Per informazioni sull’utilizzo della memoria e consigli per i database, consulta Più database su un’istanza database Amazon RDS per Db2.
Per verificare che il database sia stato creato, chiama la funzione definita dall’utente rdsadmin.list_databases e controlla che il nuovo database sia incluso nell’elenco.
Errori di rdsadmin.deactivate_database
Durante una chiamata alla stored procedure rdsadmin.deactivate_database può verificarsi il seguente errore.
| Errore | Messaggio di errore |
|---|---|
|
|
Impossibile disattivare a causa di processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita a disattivare un database perché la stored procedure rdsadmin.create_database o rdsadmin.restore_database è in esecuzione.
The database can’t be deactivated because it's in the process of being created or restored.
Attendi qualche minuto, quindi chiama nuovamente la stored procedure rdsadmin.deactivate_database.
Errori di rdsadmin.drop_database
Durante una chiamata alla stored procedure rdsadmin.drop_database possono verificarsi i seguenti errori.
| Errore | Messaggio di errore |
|---|---|
|
|
|
|
|
|
|
|
Il nome del database non esiste
Il seguente messaggio di errore indica che è stato passato un nome di database errato nella stored procedure rdsadmin.drop_database.
SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993
Chiama nuovamente la stored procedure rdsadmin.drop_database con un nome di database corretto. Per verificare che il database sia stato rimosso, chiama la funzione definita dall’utente rdsadmin.list_databases e controlla che il database rimosso non sia incluso nell’elenco.
Stato restituito = 0
Il seguente messaggio di errore indica che non è stato possibile completare la stored procedure.
Return Status = 0
Dopo la ricezione di Return Status = 0, chiama la funzione definita dall’utente rdsadmin.get_task_status.
Rimozione del database non consentita
Il seguente messaggio di errore indica che il database è stato creato utilizzando la console Amazon RDS o la AWS CLI. La stored procedure rdsadmin.drop_database può essere utilizzata solo se il database è stato creato chiamando la stored procedure 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
Per rimuovere un database creato tramite la console Amazon RDS o la AWS CLI, utilizza un client per connetterti al database, quindi esegui il comando appropriato.
Errori di rdsadmin.reactivate_database
Durante una chiamata alla stored procedure rdsadmin.reactivate_database può verificarsi il seguente errore.
| 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 database 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 database, quindi chiama nuovamente la stored procedure rdsadmin.activate_database. Per informazioni sull’utilizzo della memoria e consigli per i database, consulta Più database su un’istanza database Amazon RDS per Db2.
Impossibile riattivare a causa di processi in esecuzione
Il seguente messaggio di errore indica che la stored procedure non è riuscita a riattivare un database perché la stored procedure rdsadmin.create_database o rdsadmin.restore_database è in esecuzione.
The database can’t be reactivated because it's in the process of being created or restored.
Attendi qualche minuto, quindi chiama nuovamente la stored procedure rdsadmin.reactivate_database.
Errori di rdsadmin.restore_database
Durante una chiamata alla stored procedure rdsadmin.restore_database possono verificarsi i seguenti errori:
| Errore | Messaggio di errore |
|---|---|
|
|
|
|
|
|
|
|
|
| Tablespaces not restored |
|
Spazio su disco insufficiente
Il seguente messaggio di errore indica che l’istanza database non dispone di spazio su disco sufficiente 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 database deve essere più del doppio della dimensione dell’immagine di backup. Se l’immagine di backup è compressa, lo spazio libero sull’istanza database deve essere più del triplo della dimensione dell’immagine di backup. Per ulteriori informazioni, consulta Aumento della capacità di storage dell'istanza database.
Aumenta lo spazio su disco e chiama nuovamente la stored procedure rdsadmin.restore_database. Per verificare che il database sia stato ripristinato, chiama la funzione definita dall’utente rdsadmin.list_databases e controlla che il database ripristinato sia incluso nell’elenco.
Errore interno
Il seguente messaggio di errore indica che la stored procedure ha riscontrato 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 questo tipo di routine. Rimuovi le routine non recintate dal database di origine, quindi chiama nuovamente rdsadmin.restore_database. Per verificare che il database sia stato ripristinato, chiama la funzione definita dall’utente rdsadmin.list_databases e controlla che il database ripristinato sia incluso nell’elenco. Per ulteriori informazioni, consulta Routine non recintate.
Tablespace non ripristinati
Il seguente messaggio di errore indica che RDS per 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, quindi chiama nuovamente rdsadmin.restore_database. Per ulteriori informazioni, consulta Converting a nonautomatic storage database to use automatic storage
I database con archiviazione SMS non automatica richiedono il ripristino manuale. Se il database dispone di una funzionalità di archiviazione SMS non automatica, contatta il Supporto AWS
Per informazioni sull’archiviazione non automatica e sulle migrazioni una tantum, consulta Tablespace di archiviazione non automatici durante la migrazione.
Errori di rdsadmin.update_db_param
Durante una chiamata alla stored procedure rdsadmin.update_db_param può verificarsi il seguente errore.
| 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 non modificabile
Il seguente messaggio di errore indica che si è 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 gruppi di parametri. Per ulteriori informazioni, consulta Visualizzazione dei valori dei parametri per un gruppo di parametri del database in Amazon RDS.