Misura correttiva per eventi del servizio di database
Questo articolo descrive le correzioni necessarie per i problemi riscontrati durante l'utilizzo degli eventi del servizio di database.
Sono disponibili le seguenti misure correttive:
- HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE
- AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN
- AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION
- AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN
- AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN
- AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN
- SANITÀ.DB_CLUSTER.CDB.CORRUPTION
- STATO.DB_CLUSTER.CDB.ARCHIVER_HANG
- STATO.DB_CLUSTER.CDB.DATABASE_HANG
- STATO.DB_CLUSTER.CDB.BACKUP_FAILURE
- HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE
HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE
Nome evento:
HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE
Descrizione dell'evento:
Questo evento viene segnalato quando lo spazio libero del file system guest VM è inferiore al 10% libero, come determinato dal comando df(1) del sistema operativo, per i seguenti file system:
//u01/u02/var/tmp
Esposizione del problema:
Uno o più file system guest VM hanno spazio libero inferiore al 10% gratuito.
Rischio:
Lo spazio libero del file system guest VM insufficiente può causare un errore di allocazione dello spazio su disco, che può causare errori e errori di ampio respiro nel software Oracle (Database, Clusterware, Cloud Tooling).
Azione/riparazione:
L'agente Oracle Cloud e DCS viene eseguito automaticamente per rimuovere i vecchi file di log e i file di trace creati dagli strumenti cloud per recuperare lo spazio del file system.
Se le utility di recupero automatico dello spazio del file system non sono in grado di rimuovere in modo sufficiente i vecchi file per cancellare questo evento, eseguire le azioni riportate di seguito.
-
Rimuovere i file e/o le directory non necessari creati manualmente o da applicazioni o utility installate dal cliente. I file creati dal software installato dal cliente non rientrano nell'ambito delle utility di recupero automatico dello spazio del file system di Oracle. Il comando del sistema operativo riportato di seguito, eseguito come utente
root, è utile per identificare le directory che consumano troppo spazio su disco.sudo du -hx <file system mount point> | sort -hrÈ possibile rimuovere in sicurezza solo i file o le directory specificate.
- Impostare il criterio di rimozione automatica utilizzando gli strumenti cloud. Per ulteriori informazioni, vedere Autologcleanpolicy Commands.
- Aprire la richiesta di servizio per ricevere istruzioni aggiuntive sulla riduzione dell'uso dello spazio nel file system.
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN
Nome evento:
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN
Descrizione dell'evento:
Un evento di tipo CRITICAL viene creato quando viene rilevato che il servizio CRS (Cluster Ready Service) è inattivo.
Esposizione del problema:
Lo stack Cluster Ready è in stato offline o non è riuscito.
Rischio:
Se il CRS è offline su un nodo, il nodo non può fornire servizi di database per l'applicazione.
Azione/riparazione:
-
Verificare se il CRS è stato arrestato dall'amministratore, nell'ambito di un evento di manutenzione pianificato, o se è stato eseguito lo scale up o lo scale down dello storage locale
-
I seguenti eventi di applicazione delle patch interromperanno CRS
- Aggiornamento GRID
- Aggiornamento cliente
- Aggiornamento dell'host
-
-
Se CRS si è arrestato in modo imprevisto, è possibile controllare lo stato corrente eseguendo il comando
crsctl check crs.- Se il nodo non risponde, è possibile che venga eseguito il reboot del nodo VM. Attendere il completamento del riavvio del nodo, in genere CRS verrà avviato tramite il processo
init.
- Se il nodo non risponde, è possibile che venga eseguito il reboot del nodo VM. Attendere il completamento del riavvio del nodo, in genere CRS verrà avviato tramite il processo
- Se il CRS è ancora inattivo, esaminare la causa dell'errore facendo riferimento al file
alert.logdisponibile in/u01/app/grid/diag/crs/<node_name>/crs/trace. Esaminare le voci di log corrispondenti alla data/ora dell'evento di inattività e agire su qualsiasi potenziale misura correttiva. - Riavviare la CRS eseguendo il comando
crsctl start crs. - Un riavvio riuscito di CRS genererà l'evento di liquidazione: AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED
Cancellazione evento:
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED
Descrizione evento liquidazione:
Un evento INFORMATION viene creato una volta avviato correttamente il CRS.
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION
Nome evento:
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION
Descrizione dell'evento:
Un evento di tipo CRITICAL viene creato quando il servizio CRS (Cluster Ready Service) rimuove un nodo dal cluster. Il CRS alert.log viene analizzato per l'errore CRS-1632 che indica che un nodo viene rimosso dal cluster.
Esposizione del problema:
Oracle Clusterware è progettato per eseguire una rimozione dei nodi rimuovendo uno o più nodi dal cluster se viene rilevato un problema critico. Un problema critico potrebbe essere un nodo che non risponde tramite un heartbeat di rete, un nodo che non risponde tramite un heartbeat di disco, un computer sospeso o gravemente danneggiato o un processo ocssd.bin sospeso. Lo scopo di questa rimozione dei nodi è quello di mantenere lo stato generale del cluster rimuovendo i membri non sani.
Rischio:
Durante il tempo necessario per riavviare il nodo rimosso, il nodo non può fornire servizi di database per l'applicazione.
Azione/riparazione:
Una rimozione dei nodi CRS potrebbe essere causata dai processi OCSSD (aka daemon CSS), CSSDAGENT o CSSDMONITOR. Ciò richiede la determinazione del processo responsabile della rimozione dei nodi e la revisione dei file di log pertinenti. Le cause comuni della rimozione di OCSSD sono errori di rete / latenze, problemi di I/O con dischi di voto CSS, un'escalation di kill dei membri. Le eliminazioni CSSDAGENT o CSSDMONITOR potrebbero essere un problema dello scheduler del sistema operativo o un thread sospeso all'interno del daemon CSS. I file di log da esaminare includono l'alert log del clusterware, il log cssdagent, il log cssdmonitor, il log ocssd, il log lastgasp, /var/log/messages, i dati CHM/OS Watcher e i dettagli opatch lsinventory.
Per ulteriori informazioni sulla raccolta dei file, vedere Autonomous Health Framework (AHF) Trace File Analyzer (TFA) e ORAchk/EXAchk. Per ulteriori informazioni sulla risoluzione dei problemi relativi alla rimozione dei nodi CRS, vedere Risoluzione dei problemi relativi alle rimozioni dei nodi Clusterware (riavvio).
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN
Nome evento:
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN
Descrizione dell'evento:
Un evento DOWN viene creato quando un listener SCAN diventa inattivo. L'evento è di tipo INFORMATION quando un listener SCAN viene chiuso a causa di un'azione dell'utente, ad esempio con i comandi della utility di controllo del server (srvctl) o di controllo del listener (lsnrctl) o qualsiasi azione di manutenzione di Oracle Cloud che utilizza tali comandi, ad esempio l'esecuzione di un aggiornamento software di Grid Infrastructure. L'evento è di tipo CRITICAL quando un listener SCAN si arresta in modo imprevisto. Un evento DOWN_CLEARED corrispondente viene creato all'avvio di un listener SCAN.
Esistono tre listener SCAN per cluster denominati LISTENER_SCAN[1,2,3].
Esposizione del problema:
Un listener SCAN è inattivo e non è in grado di accettare le connessioni dell'applicazione.
Rischio:
Se tutti i listener SCAN sono inattivi, le connessioni delle applicazioni al database tramite il listener SCAN non riusciranno.
Azione/riparazione:
Avviare il listener SCAN per ricevere l'evento DOWN_CLEARED.
DOWN evento di tipo INFORMAZIONI:
- Se l'evento è stato causato da un'azione di manutenzione di Oracle Cloud, ad esempio l'esecuzione di un aggiornamento software di Grid Infrastructure, non è necessaria alcuna azione. Il listener SCAN interessato eseguirà automaticamente il failover su un'istanza disponibile.
- Se l'evento è stato causato dall'azione dell'utente, avviare il listener SCAN all'opportunità successiva.
Evento DOWN di tipo CRITICO:
-
Controllare lo stato SCAN e riavviare il listener SCAN
-
Eseguire il login alla VM come utente
opcesudoall'utentegrid:[opc@vm ~] sudo su - grid -
Controllare lo stato dei listener SCAN su qualsiasi nodo:
[grid@vm ~] srvctl status scan_listener -
Avviare il listener SCAN:
[grid@vm ~] srvctl start scan_listener -
Ricontrollare lo stato dei listener SCAN su qualsiasi nodo: se
scan_listenerè ancora inattivo, analizzare la causa dell'errore del listener SCAN.-
Raccogliere sia i log CRS che quelli del sistema operativo 30 minuti prima e 10 minuti per i log
<hostName>indicati nel log. Si noti che l'ora nel payload dell'evento è sempre fornita in UTC: per la raccoltatfactl, regolare l'ora in base al fuso orario del cluster VM.[grid@vm ~] tfactl diagcollect -crs -os -node <hostName> -from "<eventTime adjusted for local vm timezone> - 30 minute " -to "<eventTime adjusted for local vm timezone> + 10 minutes" -
I problemi del listener SCAN vengono registrati:
/u01/app/grid/diag/tnslsnr/<hostName>/<listenerName>/trace
-
-
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN
Nome evento:
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN
Descrizione dell'evento:
Un evento DOWN viene creato quando un listener client diventa inattivo. L'evento è di tipo INFORMATION quando un listener client viene chiuso a causa di un'azione dell'utente, ad esempio con i comandi della utility di controllo del server (srvctl) o di controllo del listener (lsnrctl) o qualsiasi azione di manutenzione di Oracle Cloud che utilizza tali comandi, ad esempio l'esecuzione di un aggiornamento software di Grid Infrastructure. L'evento è di tipo CRITICAL quando un listener client diventa inattivo in modo imprevisto. Un evento DOWN_CLEARED corrispondente viene creato all'avvio di un listener client.
C'è un LISTENER client per nodo, ognuno chiamato LISTENER.
Esposizione del problema:
Un listener client è inattivo e non è in grado di accettare le connessioni dell'applicazione.
Rischio:
Se il listener client del nodo è inattivo, le istanze di database sul nodo non possono fornire servizi per l'applicazione.
Se il listener client è inattivo su tutti i nodi, qualsiasi applicazione che si connette a qualsiasi database utilizzando SCAN o VIP non riuscirà.
Azione/riparazione:
Avviare il listener del client per ricevere l'evento DOWN_CLEARED.
DOWN evento di tipo INFORMAZIONI:
- Se l'evento è stato causato da un'azione di manutenzione di Oracle Cloud, ad esempio l'esecuzione di un aggiornamento software di Grid Infrastructure, non è necessaria alcuna azione. Il listener client interessato verrà riavviato automaticamente al termine della manutenzione che interessa l'istanza Grid.
- Se l'evento è stato causato dall'azione dell'utente, avviare il listener del client all'opportunità successiva.
Evento DOWN di tipo CRITICO:
-
Controllare lo stato del listener client e riavviare il listener client:
-
Eseguire il login alla VM come utente
opcesudoall'utentegrid:[opc@vm ~] sudo su - grid -
Controllare lo stato del listener client su qualsiasi nodo:
[grid@vm ~] srvctl status listener -
Avviare il listener client:
[grid@vm ~] srvctl start listener -
Ricontrollare lo stato del listener del client su qualsiasi nodo: se il listener del client è ancora inattivo. Esaminare la causa dell'errore del listener del client:
-
Utilizzare
tfactlper raccogliere sia i log CRS che i log del sistema operativo 30 minuti prima e 10 minuti per il loghostNameindicato. Si noti che l'ora nel payload dell'evento è sempre fornita in UTC: per la raccoltatfactl, regolare l'ora in base al fuso orario del cluster VM.[grid@vm ~] tfactl diagcollect -crs -os -node <hostName> -from "<eventTime adjusted for local vm timezone> - 30 minute " -to "<eventTime adjusted for local vm timezone> + 10 minutes" -
Esaminare il log del listener in:
/u01/app/grid/diag/tnslsnr/<hostName>/<listenerName>/trace
-
-
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN
Nome evento:
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN
Descrizione dell'evento:
Un evento DOWN viene creato quando un'istanza di database diventa inattiva. L'evento è di tipo INFORMATION quando un'istanza di database viene arrestata a causa di un'azione dell'utente, ad esempio con i comandi SQL*Plus (sqlplus) o Server Control Utility (srvctl) o qualsiasi azione di manutenzione di Oracle Cloud che utilizza tali comandi, ad esempio l'esecuzione di un aggiornamento software della home del database. L'evento è di tipo CRITICO quando un'istanza di database diventa inattiva in modo imprevisto. Un evento DOWN_CLEARED corrispondente viene creato all'avvio di un'istanza di database.
Esposizione del problema:
Un'istanza di database è stata disattivata.
Rischio:
Un'istanza di database è stata disattivata, il che può comportare una riduzione delle prestazioni se le istanze di database sono disponibili su altri nodi del cluster o un tempo di inattività completo se le istanze di database su tutti i nodi sono inattive.
Azione/riparazione:
Avviare l'istanza di database per ricevere l'evento DOWN_CLEARED.
DOWN evento di tipo INFORMAZIONI:
- Se l'evento è stato causato da un'azione di manutenzione di Oracle Cloud, ad esempio l'esecuzione di un aggiornamento software della home del database, non è richiesta alcuna azione. L'istanza di database interessata verrà riavviata automaticamente al termine della manutenzione che interessa l'istanza.
- Se l'evento è stato causato dall'azione dell'utente, avviare l'istanza di database interessata all'opportunità successiva.
Evento DOWN di tipo CRITICO:
-
Controllare lo stato del database e riavviare l'istanza di database inattiva.
- Eseguire il login alla VM come utente
oracle: -
Impostate l'ambiente:
[oracle@vm ~] . <dbName>.env -
Controllare lo stato del database:
[oracle@vm ~] srvctl status database -db <dbName> -
Avviare l'istanza di database:
[oracle@vm ~] srvctl start instance -db <dbName> -instance <instanceName>
- Eseguire il login alla VM come utente
-
Indagare la causa dell'errore dell'istanza di database.
-
Esaminare gli eventi TFA (Trace File Analyzer) per il database:
[oracle@vm ~] tfactl events -database <dbName> -instance <instanceName> -
Esaminare l'alert log del database disponibile all'indirizzo:
$ORACLE_BASE/diag/rdbms/<dbName>/<instanceName>/trace/alert_<instanceName>.log
-
SANITÀ.DB_CLUSTER.CDB.CORRUPTION
Nome evento:
SANITÀ.DB_CLUSTER.CDB.CORRUPTION
Descrizione dell'evento:
Il danneggiamento del database è stato rilevato nel database primario o in standby. Il database alert.log viene analizzato per eventuali errori specifici che sono indicativi di danneggiamenti di blocchi fisici, danneggiamenti di blocchi logici o danneggiamenti di blocchi logici causati da scritture perse.
Esposizione del problema:
Le interruzioni possono portare a errori dell'applicazione o del database e, nel peggiore dei casi, comportare una perdita significativa dei dati se non risolti tempestivamente.
Un blocco danneggiato è un blocco modificato in modo che differisca da quanto Oracle Database si aspetta di trovare. I danneggiamenti dei blocchi possono essere classificati come fisici o logici:
- In un blocco fisico danneggiato, che è anche chiamato un danneggiamento dei media, il database non riconosce affatto il blocco; il checksum non è valido o il blocco contiene tutti gli zeri. Un esempio di corruzione del blocco più sofisticata è quando l'intestazione e il piè di pagina del blocco non corrispondono.
- In una corruzione del blocco logico, il contenuto del blocco è fisicamente sano e passa i controlli del blocco fisico; tuttavia, il blocco può essere logicamente incoerente. Esempi di danneggiamento del blocco logico includono tipo di blocco errato, dati errati o numero di sequenza del blocco di redo, danneggiamento di una riga o di una voce di indice o danneggiamento del dizionario dati.
Le corruzioni dei blocchi possono anche essere suddivise in corruzione interblocco e corruzione intrablocco:
- In una corruzione intra-blocco, la corruzione si verifica nel blocco stesso e può essere una corruzione di blocco fisico o logico.
- In una corruzione interblocco, la corruzione si verifica tra i blocchi e può essere solo una corruzione del blocco logico.
Oracle verifica la presenza dei seguenti errori in alert.log:
ORA-01578ORA-00752ORA-00753ORA-00600[3020]ORA-00600[kdsgrp1]ORA-00600[kclchkblk_3]ORA-00600[13013]ORA-00600[5463]
Rischio:
Un'interruzione del danneggiamento dei dati si verifica quando un componente hardware, software o di rete causa la lettura o la scrittura di dati corrotti. L'impatto a livello di servizio di un'indisponibilità di danneggiamento dei dati può variare, da una piccola porzione dell'applicazione o del database (fino a un singolo blocco di database) a una grande parte dell'applicazione o del database (rendendolo essenzialmente inutilizzabile). Se l'azione correttiva non viene intrapresa tempestivamente, i potenziali tempi di inattività e la perdita di dati possono aumentare.
Azione/riparazione:
La notifica dell'evento corrente attualmente si attiva nei danneggiamenti dei blocchi fisici (ORA-01578), nelle scritture perse (ORA-00752, ORA-00753 e ORA-00600 con il primo argomento 3020) e nei danneggiamenti logici (in genere rilevati da ORA-00600 con il primo argomento kdsgrp1, kdsgrp1, kclchkblk_3, 13013 o 5463).
Consigliamo i seguenti passaggi:
- Verificare che questi danneggiamenti siano stati segnalati nel file di trace
alert.log. Registrare una richiesta di servizio (SR) con il report EXAchk più recente, l'estratto del filealert.loge il file di trace contenenti gli errori di danneggiamento, qualsiasi cronologia delle modifiche recenti a applicazioni, database o software e qualsiasi sistema, clusterware e log di database per lo stesso periodo di tempo. Per tutti questi casi, una raccolta TFA dovrebbe essere disponibile e deve essere allegata alla richiesta di servizio. - Per ulteriori informazioni sui suggerimenti per la riparazione, vedere Nota principale per la gestione dei problemi di Oracle Database Corruption.
Per danneggiamenti fisici o errori ORA-1578, le seguenti note saranno utili:
- OERR: ORA-1578 "Blocco dati ORACLE danneggiato (file n. %s, blocco n. %s)" Nota principale (ID documento 1578.1)
- Come identificare tutti gli oggetti danneggiati nel database con RMAN (ID documento 472231.1)
- Come identificare l'oggetto danneggiato segnalato da ORA-1578 / RMAN / DBVERIFY (ID documento 819533.1)
- Nota principale per la gestione dei problemi di corruzione di Oracle Database
Nota: RMAN può essere utilizzato per recuperare uno o più blocchi di dati fisicamente danneggiati. Inoltre, utilizzando Active Data Guard con applicazione in tempo reale, la riparazione automatica dei blocchi di danneggiamenti dei dati fisici si sarebbe verificata automaticamente.
Per i danneggiamenti logici causati da scritture perse (ORA-00752, ORA-00753 e ORA-00600 con il primo argomento 3020) nei database primari o in standby, verranno rilevati nel processo di applicazione redo del database primario o in standby. Le seguenti note saranno utili:
- Nota principale per la gestione dei problemi di corruzione di Oracle Database
- Se si dispone di un danneggiamento della scrittura in standby e si è perso nel database primario o in standby, vedere Risoluzione di ORA-00752 o ORA-600 [3020] durante il recupero in standby (ID documento 1265884.1).
Per i danneggiamenti logici (tipici rilevati da ORA-00600 con argomenti kdsgrp1, kclchkblk_3, 13013 o 5463)
- Per ulteriori informazioni sull'errore rilevato, vedere Nota principale per la gestione dei problemi di Oracle Database Corruption.
- In caso di danneggiamento in standby e logico del database primario, vedere Risoluzione degli errori di danneggiamento dei blocchi logici in un database di standby fisico (ID documento 2821699.1).
STATO.DB_CLUSTER.CDB.ARCHIVER_HANG
Nome evento:
STATO.DB_CLUSTER.CDB.ARCHIVER_HANG
Descrizione dell'evento:
Un evento di tipo CRITICAL viene creato se un container database (CDB) non è in grado di archiviare il redo log in linea attivo o non è in grado di archiviare il redo log in linea attivo abbastanza velocemente per le destinazioni dell'archivio di log.
Esposizione del problema:
L'istanza RAC CDB può bloccarsi temporaneamente o definitivamente a causa dell'incapacità del log writer (LGWR) di scrivere i buffer di log in un redo log in linea. Ciò si verifica perché tutti i log in linea devono essere archiviati. Una volta che l'archiviatore (ARC) può archiviare almeno un redo log in linea, LGWR sarà in grado di riprendere la scrittura dei buffer di log nei redo log in linea e l'impatto dell'applicazione sarà alleviato.
Rischio:
Se l'archiviatore non risponde temporaneamente, le applicazioni potrebbero subire una breve sospensione parziale o un arresto anomalo durante il tentativo di commit delle modifiche al database. Se l'archiviatore non viene ripristinato, i processi dell'applicazione possono subire lunghi ritardi nell'elaborazione.
Azione/riparazione:
-
Per determinare la frequenza oraria di ciascun thread/istanza, vedere Script per trovare la cronologia degli switch di redo log e la dimensione del log di archivio per ogni istanza in RAC (ID documento 2373477.1).
- Se un bucket orario qualsiasi è maggiore di 12, considerare la possibilità di ridimensionare i redo log in linea. Vedere il punto 2 per i passaggi di ridimensionamento.
-
Se il database non risponde temporaneamente, l'archiviatore potrebbe non essere in grado di tenere il passo con il redo log generato.
- Controlla
alert.log,$ORACLE_BASE/diag/rdbms/<dbName>/<instanceName>/trace/alert_<instanceName>.log, per "Tutti i log online hanno bisogno di archiviazione", più eventi in un breve periodo possono indicare 2 possibili soluzioni.- Se il numero di gruppi di redo log per thread è inferiore a 4, considerare la possibilità di aggiungere altri gruppi di log per raggiungere 4, vedere l'elemento 1 riportato di seguito per aggiungere i passi di redo log.
- L'altra possibile soluzione consiste nel ridimensionare i redo log, vedere l'articolo 2 riportato di seguito per i passi di ridimensionamento.
- Controlla
- Per le linee guida di dimensionamento per Data Guard e non Data Guard, vedere Configurare i redo log in linea in modo appropriato.
-
Aggiungere un gruppo di redo log per ogni thread. Il redo log aggiuntivo deve essere uguale alla dimensione del log corrente.
-
Utilizzare la seguente query:
select max(group#) Ending_group_number, thread#, count(*) number_of_groups_per_thread, bytes redo_size_in_bytes from v$log group by thread#,bytes -
Aggiungere un nuovo gruppo per thread utilizzando le stesse dimensioni dei redo log correnti.
alter database add logfile thread <thread_number> group <max group + 1> ('<DATA_DISKGROUP>') size <redo_size_in_bytes>
-
-
Ridimensionare i redo log in linea aggiungendo redo log più grandi ed eliminando i redo log più piccoli correnti.
-
Utilizzare la seguente query:
select max(group#) Ending_group_number, thread#, count(*) number_of_groups_per_thread, bytes redo_size_in_bytes from v$log group by thread#,bytes -
Aggiungere lo stesso numero di redo log per ogni thread
number_of_groups_per_threadattualmente esistente.new_redo_size_in_bytesdeve essere basato su Configurare i redo log in linea in modo appropriato.-
Utilizzare la seguente query:
alter database add logfile thread <thread_number> group <max group + 1> ('<DATA_DISKGROUP>') size <new_redo_size_in_bytes> -
I redo log più piccoli originali devono essere eliminati. Un redo log può essere eliminato solo se il relativo stato è inattivo. Per determinare lo stato di un redo log, eseguire la selezione seguente.
select group#, thread#, status, bytes from v$log order by bytes, group#, thread#;Eliminare i redo log più piccoli originali:
alter database drop logfile <group#>;
-
-
-
Se il database non risponde, la destinazione dell'archivio di log primario e l'alternativa potrebbero essere pieni.
- Per ulteriori informazioni sullo spazio libero nei gruppi di dischi RECO e DATA, vedere HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE.
STATO.DB_CLUSTER.CDB.DATABASE_HANG
Nome evento:
STATO.DB_CLUSTER.CDB.DATABASE_HANG
Descrizione dell'evento:
Un evento di tipo CRITICAL viene creato quando un processo o una sessione non risponde nel container database (CDB).
Esposizione del problema:
Blocker Resolver ha rilevato un processo o un blocco che non risponde e ha generato un messaggio di errore ORA-32701. Inoltre, questo evento può essere generato se il processo di diagnostica (DIA0) rileva che un processo di database critico non risponde.
Rischio:
Un processo che non risponde o un blocco può indicare problemi relativi a risorse, sistema operativo o codifica delle applicazioni.
Azione/riparazione:
Indagare la causa del blocco di sessione.
-
Rivedere gli eventi TFA per il database per i seguenti pattern di messaggi corrispondenti alla data/ora dell'evento:
ORA-32701, "Processo di database critico DIA0 bloccato" o "Processo di database critico DIA0 come root".tfactl events -database <dbName> -instance <instanceName> -
Rivedere alert.log associato nella seguente posizione:
$ORACLE_BASE/diag/rdbms/<dbName>/<instanceName>/trace/alert_<instanceName>.log - Per
ORA-32701: un sistema sovraccarico può causare progressi lenti, che possono essere interpretati come un blocco. Il resolver di blocco può tentare di risolvere il blocco interrompendo il processo di blocco finale. - Per i messaggi del processo di database critico
DIA0: esaminare le righe di diagnostica correlate che indicano il processo e il motivo del blocco.
STATO.DB_CLUSTER.CDB.BACKUP_FAILURE
Nome evento:
STATO.DB_CLUSTER.CDB.BACKUP_FAILURE
Descrizione dell'evento:
Viene creato un evento di tipo CRITICAL se esiste un backup CDB con stato FAILED riportato nella vista v$rman_status.
Esposizione del problema:
BACKUP incrementale giornaliero del CDB non riuscito.
Rischio:
Un errore del backup può compromettere la possibilità di utilizzare i backup per il ripristino o la recuperabilità del database. L'oggetto punto di recuperabilità (RPO) e l'oggetto tempo di recuperabilità (RTO) possono essere interessati.
Azione/riparazione:
Rivedere i log RMAN corrispondenti alla data/ora dell'evento. Si noti che la data e l'ora dell'evento eventTime sono in formato UTC, rettificare se necessario per il fuso orario della VM.
Per i backup gestiti da Oracle:
- L'output RMAN è disponibile all'indirizzo
/opt/oracle/dcs/log/<hostname>/rman. -
Verificare che il log non contenga errori:
- Se l'errore è dovuto a un evento esterno al di fuori di RMAN, ad esempio la posizione di backup era piena o a un problema di rete, risolvere il problema esterno.
-
Per altri errori di script RMAN, raccogliere i log di diagnostica e aprire una richiesta di servizio.
dbcli collect-diagnostics -hUsage: collect-diagnostics [options] Options: --components, -c Supported components: [all, dcs, crs, acfs, asm, db] all -- Collects diagnosis for all supported components [all, dcs, crs, acfs, asm, db] dcs -- Collects diagnosis for dcs crs -- Collects diagnosis for crs acfs -- Collects diagnosis for acfs asm -- Collects diagnosis for asm. db -- Collects diagnosis for db. For multiple parameter values, follow the example as "-c c1 c2" Default: [dcs] --dbNames, -d Comma separated database names. Valid only if 'db' or 'all' specified in Components list. --endTime, -et End time of diagnostic logs. Please give time in yyyy-MM-dd HH:mm:ss format --help, -h get help --json, -j json output --objectstoreuri, -ou Pre Authenticated Request URI --redaction, -r Diagnostic logs redaction. Might take longer time with some components. --startTime, -st Start time of diagnostic logs. Please give time in yyyy-MM-dd HH:mm:ss format
- Se il problema è transitorio o viene risolto, eseguire un nuovo backup incrementale. Per ulteriori informazioni, vedere Eseguire il backup di un database mediante la console.
Per il backup gestito e di proprietà del cliente eseguito tramite RMAN:
- Esaminare i log RMAN per il backup.
HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE
Nome evento:
HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE
Descrizione dell'evento:
Un evento di tipo CRITICAL viene creato quando un gruppo di dischi ASM raggiunge l'uso dello spazio pari o superiore al 90%. Viene creato un evento di tipo INFORMATION quando l'uso dello spazio dei gruppi di dischi ASM scende sotto il 90%.
Esposizione del problema:
L'uso dello spazio dei gruppi di dischi ASM è pari o superiore al 90%.
Rischio:
Lo spazio insufficiente dei gruppi di dischi ASM può causare un errore di creazione del database, un errore di creazione della tablespace e del file di dati, un errore di estensione automatica del file di dati o un errore di ribilanciamento ASM.
Azione/riparazione:
Lo spazio utilizzato dal gruppo di dischi ASM è determinato dall'esecuzione della query seguente durante la connessione all'istanza ASM.
sudo su - grid
sqlplus / as sysasm
select 'ora.'||name||'.dg', total_mb, free_mb,
round ((1-(free_mb/total_mb))*100,2) pct_used from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB PCT_USED
---------------- ---------- ---------- ----------
ora.DATAC1.dg 75497472 7408292 90.19
ora.RECOC1.dg 18874368 17720208 6.11
La capacità del gruppo di dischi ASM può essere aumentata nei modi seguenti:
- Ridimensionare lo storage del cluster VM per aggiungere più capacità del gruppo di dischi ASM. Per ulteriori informazioni, vedere Ridimensionare il sistema DB.
L'uso dello spazio dei gruppi di dischi DATA può essere ridotto nei modi seguenti:
- Eliminare i file di dati e i file temporanei non utilizzati dai database. Per ulteriori informazioni, vedere Eliminazione dei file di dati.
L'uso dello spazio dei gruppi di dischi RECO può essere ridotto nei modi seguenti:
- Elimina i punti di ripristino garantiti non necessari. Per ulteriori informazioni, vedere Utilizzo dei punti di ripristino normali e garantiti.
- Eliminare i redo log archiviati o i backup del database di cui è stato già eseguito il backup al di fuori dell'area di recupero flash (FRA). Per ulteriori informazioni, vedere Gestione dell'area di recupero rapido.