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à.
È possibile raccogliere informazioni più approfondite sulle attività dei database, tra cui query, query in attesa di blocchi, checkpoint e molti altri dettagli impostando alcuni parametri elencati nella tabella seguente. Questo argomento illustra la registrazione delle query.
Parametro | Predefinito | Descrizione |
---|---|---|
log_connections | – | Registra ogni connessione riuscita. Per informazioni su come utilizzare questo parametro con |
log_disconnections | – | Registra il momento in cui termina ciascuna sessione e la relativa durata. Per informazioni su come utilizzare questo parametro con |
log_checkpoints | 1 | Registra ogni checkpoint. |
log_lock_waits | – | Registra lunghe attese di lock. Per impostazione predefinita, questo parametro non è impostato. |
log_min_duration_sample | – | Imposta il tempo (ms) minimo di esecuzione oltre il quale viene registrato un campione di istruzioni. La dimensione del campione viene impostata utilizzando il parametro log_statement_sample_rate . |
log_min_duration_statement | – | Qualsiasi SQL istruzione eseguita almeno per il periodo di tempo specificato o più a lungo viene registrata. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate. |
log_statement | – | Imposta il tipo di istruzioni registrate. Per impostazione predefinita, questo parametro non è impostato, ma è possibile modificarlo |
log_statement_sample_rate | – | La percentuale di istruzioni che superano il tempo specificato in |
log_statement_stats | – | Scrive le statistiche cumulative sulla prestazione nel registro del server. |
Utilizzo della registrazione per trovare query lente
È possibile registrare SQL istruzioni e interrogazioni per individuare le query con prestazioni lente. Puoi attivare questa funzionalità modificando le impostazioni nei parametri log_statement
e log_min_duration
come descritto in questa sezione. Prima di attivare la registrazione delle query per il cluster Aurora SQL Postgre DB RDS è necessario essere consapevoli della possibile esposizione delle password nei log e di come mitigare i rischi. Per ulteriori informazioni, consulta Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query.
Di seguito sono disponibili informazioni di riferimento sui parametri log_statement
e log_min_duration
.
log_statement
Questo parametro specifica il tipo di istruzioni che devono essere inviate al registroSQL. Il valore predefinito è none
. Se modifichi questo parametro in all
, ddl
o mod
, esegui le azioni consigliate per ridurre il rischio di esporre le password nei log. Per ulteriori informazioni, consulta Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query.
- tutto
-
Registra tutte le istruzioni. Questa impostazione è consigliata per il debug.
- ddl
-
Registra tutte le istruzioni del linguaggio di definizione dei dati (DDL), ad esempioCREATE, ALTERDROP, e così via.
- mod
-
Registra tutte le DDL istruzioni e le istruzioni del linguaggio di manipolazione dei dati (DML), ad esempio, e INSERT UPDATEDELETE, che modificano i dati.
- nessuno
-
Nessuna istruzione SQL viene registrata. Consigliamo questa impostazione per evitare il rischio di esporre le password nei registri.
log_min_duration_statement
Qualsiasi SQL istruzione eseguita almeno per il periodo di tempo specificato o più a lungo viene registrata. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate.
- –1–2147483647
-
Il numero di millisecondi (ms) di runtime durante il quale un'istruzione viene registrata.
Per configurare la registrazione delle query
Questi passaggi presuppongono che il cluster Aurora Postgre SQL DB utilizzi un gruppo di parametri del cluster DB personalizzato.
Imposta il parametro
log_statement
suall
. L'esempio seguente mostra le informazioni scritte nel filepostgresql.log
con questa impostazione del parametro.2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats: ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed ! [0.025146 s user, 0.000000 s system total] ! 36644 kB max resident size ! 0/8 [0/8] filesystem blocks in/out ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent ! 19/0 [27/0] voluntary/involuntary context switches 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC; ----------------------- END OF LOG ----------------------
Impostare il parametro
log_min_duration_statement
. L'esempio seguente mostra le informazioni scritte nel filepostgresql.log
quando il parametro è impostato su1
.Le query che superano la durata specificata nel parametro
log_min_duration_statement
vengono registrate. Di seguito viene riportato un esempio. Puoi visualizzare il file di registro per il tuo cluster Aurora Postgre SQL DB RDS nella console Amazon. RDS2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments; 2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms 2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time 2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB ----------------------- END OF LOG ----------------------
Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query
Ti consigliamo di mantenere log_statement
impostato su none
per evitare di esporre le password. Se imposti log_statement
su all
, ddl
o mod
, ti consigliamo di eseguire una o più delle seguenti operazioni.
-
Per il client, applica la crittografia delle informazioni sensibili. Per ulteriori informazioni, consulta Opzioni di crittografia
nella documentazione di Postgre. SQL Usa le opzioni ENCRYPTED
(eUNENCRYPTED
) delle istruzioniCREATE
eALTER
. Per ulteriori informazioni, consulta la documentazione CREATEUSERdi SQL Postgre. Per il cluster Aurora Postgre SQL DB RDS per l'istanza Postgre DB usa l'estensione Postgre Auditing (). SQL pgAudit Questa estensione cancella le informazioni sensibili e le istruzioni inviate al registro. CREATE ALTER Per ulteriori informazioni, consulta Utilizzo pgAudit per registrare l'attività del database.
-
Limita l'accesso ai CloudWatch log.
-
Utilizza meccanismi di autenticazione più solidi comeIAM.