File di log del database Amazon RDS per Oracle
Puoi accedere ai log di avviso, ai file di audit e ai file di traccia Oracle tramite console Amazon RDS o API. Per ulteriori informazioni sulla visualizzazione, il download e la visione di log di database basati su file, consulta Monitoraggio dei file di log di Amazon RDS.
I file di verifica Oracle forniti sono i file di verifica Oracle standard. Amazon RDS supporta la caratteristica FGA (Fine-Grained Auditing) di Oracle. Tuttavia, l'accesso ai log non fornisce accesso agli eventi FGA archiviati nella tabella SYS.FGA_LOG$ e accessibili tramite la vista DBA_FGA_AUDIT_TRAIL.
L'operazione API DescribeDBLogFiles che elenca i file di log Oracle disponibili per una istanza database ignora il parametro MaxRecords e restituisce fino a 1.000 record. La chiamata restituisce LastWritten come data POSIX in millisecondi.
Argomenti
Pianificazione della conservazione
Il motore database Oracle potrebbe ruotare i file di log nel caso in cui diventino molto grandi. Per conservare i file di audit o di traccia è necessario scaricarli. Se archivi i file localmente riduci i costi di storage di Amazon RDS e rendi più spazio disponibile per i dati.
La seguente tabella illustra la pianificazione di conservazione per i log di avviso, i file di audit e i file di traccia Oracle su Amazon RDS.
| Tipo di log | Pianificazione della conservazione |
|---|---|
|
Log di avvisi |
Il log degli avvisi di testo viene ruotato ogni giorno con conservazione per 30 giorni gestita da Amazon RDS. Il log di avviso XML viene conservato per un minimo di sette giorni. Puoi accedere a questo log usando la visualizzazione |
|
File di audit |
Il periodo di conservazione predefinito per i file di verifica è sette giorni. Amazon RDS può eliminare i file di verifica più vecchi di sette giorni. |
|
File di traccia |
Il periodo di conservazione dei file di traccia predefinito è 7 giorni. Amazon RDS può eliminare i file di traccia più vecchi di sette giorni. |
|
Log del listener |
Il periodo di conservazione predefinito per i log dei listener è sette giorni. Amazon RDS può eliminare i log del listener più vecchi di sette giorni. |
Nota
I file di audit e i file di traccia condividono la stessa configurazione di conservazione.
Utilizzo di file di traccia Oracle
Di seguito si riportano le descrizioni delle procedure Amazon RDS per creare, aggiornare ed eliminare file di traccia.
Argomenti
Elenco di file
È possibile utilizzare una delle due procedure per consentire l'accesso a qualsiasi file nel percorso background_dump_dest. La prima procedura aggiorna una vista contenente un elenco di tutti i file attualmente in background_dump_dest.
EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
Dopo l'aggiornamento della vista, eseguire la query della vista seguente per accedere ai risultati.
SELECT * FROM rdsadmin.tracefile_listing;
Un'alternativa al processo precedente è quella di utilizzare FROM table per lo streaming di dati non relazionali in un formato di tipo tabella per elencare i contenuti della directory database.
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
La query seguente mostra il testo di un file di log.
SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_dbname.log.date'));
In una replica di lettura, ottenere il nome della directory BDUMP eseguendo una query V$DATABASE.DB_UNIQUE_NAME. Se il nome univoco è DATABASE_B, allora la directory BDUMP è BDUMP_B. Nell'esempio seguente viene eseguita una query sul nome BDUMP in una replica e viene quindi utilizzato questo nome per eseguire una query sul contenuto di alert_DATABASE.log.2020-06-23.
SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL; BDUMP_VARIABLE -------------- BDUMP_B SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));
Creazione di file di traccia e tracciamento di una sessione
Poiché ALTER SESSION non è soggetto a restrizioni, restano disponibili molti metodi standard per generare file di traccia in Oracle per un'istanza database Amazon RDS. Le procedure seguenti sono fornite per i file di traccia che richiedono maggiore accesso.
| Metodo Oracle | Metodo Amazon RDS |
|---|---|
|
|
|
|
|
|
Puoi utilizzare molti metodi standard per tracciare singole sessioni collegate all'istanza database Oracle in Amazon RDS. Per abilitare la traccia di una sessione puoi eseguire i sottoprogrammi in pacchetti PL/SQL forniti da Oracle, ad esempio DBMS_SESSION e DBMS_MONITOR. Per ulteriori informazioni, consulta la pagina relativa all'abilitazione della traccia per una sessione
Recupero di file di traccia
Puoi recuperare qualsiasi file di traccia in background_dump_dest usando una query SQL standard su una tabella esterna gestita da Amazon RDS–. Per utilizzare questo metodo, devi eseguire la procedura per impostare la posizione di questa tabella sul file di traccia specifico.
Ad esempio, puoi utilizzare la vista rdsadmin.tracefile_listing indicata precedentemente per elencare tutti i file di traccia sul sistema. Successivamente, puoi impostare la vista tracefile_table per puntare al file di traccia desiderato utilizzando la procedura seguente.
EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');
L'esempio seguente crea una tabella esterna nello schema corrente con la posizione impostata sul file fornito. Puoi recuperare il contenuto in un file locale utilizzando una query SQL.
SPOOL /tmp/tracefile.txt SELECT * FROM tracefile_table; SPOOL OFF;
Eliminazione di file di traccia
I file di traccia possono accumularsi e occupare spazio su disco. Per impostazione predefinita, Amazon RDS elimina i file di traccia e i file di log che risalgono a più di sette giorni prima. Puoi visualizzare e impostare il periodo di conservazione dei file di traccia tramite la procedura show_configuration. Dovresti eseguire il comando SET SERVEROUTPUT ON per poter visualizzare i risultati della configurazione.
L'esempio seguente mostra il periodo di conservazione dei file di traccia e imposta quindi un nuovo periodo di conservazione dei file di traccia.
# Show the current tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); SQL> commit; #show the new tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
Oltre al processo di eliminazione periodica, puoi rimuovere manualmente i file da background_dump_dest. L'esempio seguente mostra come eliminare tutti i file che risalgono a cinque minuti prima.
EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);
Puoi inoltre eliminare tutti i file che corrispondono a un modello specifico (non includono l'estensione del file, come .trc). L'esempio seguente mostra come eliminare tutti i file che iniziano con SCHPOC1_ora_5935.
EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
Pubblicazione di log Oracle su Amazon CloudWatch Logs
È possibile configurare l’istanza database RDS per Oracle per la pubblicazione dei dati di log in un gruppo di log in Amazon CloudWatch Logs. Con CloudWatch Logs puoi analizzare i dati di log e usare CloudWatch per creare allarmi e visualizzare parametri. Puoi utilizzare CloudWatch Logs per archiviare i record dei log in uno storage estremamente durevole.
Amazon RDS pubblica ogni log di database Oracle come flusso di database separato nel gruppo di log. Ad esempio, se configuri la funzione di esportazione affinché includa il log di audit, i dati relativi all'audit vengono archiviati in un flusso di log di audit nel gruppo di log /aws/rds/instance/my_instance/audit. La tabella seguente fornisce un riepilogo dei requisiti per la pubblicazione di log RDS per Oracle in Amazon CloudWatch Logs.
| Nome log | Requisito | Predefinita |
|---|---|---|
|
Log di avviso |
Nessuna. Non è possibile disabilitare questo log. |
Abilitato |
|
Log di traccia |
Impostare il parametro |
|
|
Log di audit |
Impostare il parametro
|
|
|
Log del listener |
Nessuna. Non è possibile disabilitare questo log. |
Abilitato |
|
Log di Oracle Management Agent |
Nessuna. Non è possibile disabilitare questo log. |
Abilitato |
Questo registro di Oracle Management Agent è costituito dai gruppi di log riportati nella tabella di seguito.
| Nome log | Gruppo di log CloudWatch |
|---|---|
| emctl.log | oemagent-emctl |
| emdctlj.log | oemagent-emdctlj |
| gcagent.log | oemagent-gcagent |
| gcagent_errors.log | oemagent-gcagent-errors |
| emagent.nohup | oemagent-emagent-nohup |
| secure.log | oemagent-sicuro |
Per maggiori informazioni, consulta Individuazione dei file di log e di traccia di Management Agent
Per pubblicare i log database Oracle in CloudWatch Logs dalla AWS Management Console
Apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione, scegliere Databases (Database) e selezionare l'istanza database da modificare.
-
Scegliere Modify (Modifica).
-
Nella sezione Log exports (Esportazioni log) scegliere i log che si vuole iniziare a pubblicare in CloudWatch Logs.
-
Scegliere Continue (Continua) e quindi Modify DB Instance (Modifica istanza database) nella pagina di riepilogo.
Per pubblicare i log Oracle, puoi utilizzare il comando modify-db-instance con i parametri seguenti:
-
--db-instance-identifier -
--cloudwatch-logs-export-configuration
Nota
Viene sempre applicata all'istanza database una modifica all'opzione --cloudwatch-logs-export-configuration immediatamente. Pertanto, le opzioni --apply-immediately e --no-apply-immediately non hanno alcun effetto.
Puoi pubblicare i log Oracle anche utilizzando i seguenti comandi:
Esempio
L'esempio seguente crea un'istanza database Oracle con la pubblicazione CloudWatch Logs abilitata. Il valore --cloudwatch-logs-export-configuration è una matrice di stringhe JSON. Le stringhe possono essere una qualsiasi combinazione di alert, audit, listener e trace.
Per Linux, macOS o Unix:
aws rds create-db-instance \ --db-instance-identifiermydbinstance\ --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \ --db-instance-classdb.m5.large\ --allocated-storage20\ --engineoracle-ee\ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1\ --license-modelbring-your-own-license\ --master-usernamemyadmin\ --manage-master-user-password
Per Windows:
aws rds create-db-instance ^ --db-instance-identifiermydbinstance^ --cloudwatch-logs-export-configurationtrace alert audit listener oemagent^ --db-instance-classdb.m5.large^ --allocated-storage20^ --engineoracle-ee^ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1^ --license-modelbring-your-own-license^ --master-usernamemyadmin^ --manage-master-user-password
Esempio
L'esempio seguente modifica un'istanza database Oracle esistente per pubblicare i file di log in CloudWatch Logs. Il valore --cloudwatch-logs-export-configuration è un oggetto JSON. La chiave per questo oggetto è EnableLogTypes e il suo valore è una matrice di stringhe con qualsiasi combinazione di alert, audit, listener e trace.
Per Linux, macOS o Unix:
aws rds modify-db-instance \ --db-instance-identifiermydbinstance\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'
Per Windows:
aws rds modify-db-instance ^ --db-instance-identifiermydbinstance^ --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
Esempio
L'esempio seguente modifica un'istanza database Oracle esistente per disabilitare la pubblicazione di file di log di audit e del listener su CloudWatch Logs. Il valore --cloudwatch-logs-export-configuration è un oggetto JSON. La chiave per questo oggetto è DisableLogTypes e il suo valore è una matrice di stringhe con qualsiasi combinazione di alert, audit, listener e trace.
Per Linux, macOS o Unix:
aws rds modify-db-instance \ --db-instance-identifiermydbinstance\ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
Per Windows:
aws rds modify-db-instance ^ --db-instance-identifiermydbinstance^ --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"
Puoi pubblicare i log database Oracle con l'API RDS. Puoi chiamare l'operazione ModifyDBInstance con i parametri seguenti:
-
DBInstanceIdentifier -
CloudwatchLogsExportConfiguration
Nota
Viene sempre applicata all'istanza database una modifica al parametro CloudwatchLogsExportConfiguration immediatamente. Pertanto, il parametro ApplyImmediately non ha alcun effetto.
Puoi pubblicare i log Oracle anche chiamando le seguenti operazioni API RDS:
Esegui una di queste azioni API RDS con i seguenti parametri:
-
DBInstanceIdentifier -
EnableCloudwatchLogsExports -
Engine -
DBInstanceClass
Altri parametri potrebbero essere richiesti a seconda dell'operazione RDS eseguita.
Accesso ai log di avvisi e ai log del listener
Puoi visualizzare il log di avvisi tramite console Amazon RDS. È anche possibile utilizzare la seguente istruzione SQL.
SELECT message_text FROM alertlog;
Si accede al log del listener utilizzando Amazon CloudWatch Logs.
Nota
Oracle ruota i log di avvisi e del listener quando superano 10 MB, punto in cui non sono disponibili dalle viste Amazon RDS.