Febbraio 5, 2022

Cos’è la corruzione dei blocchi e come possiamo risolvere la corruzione dei blocchi

X

Privacy e Cookie

I cookie sono utilizzati in questo sito. Continua, accetti il loro uso. Ulteriori informazioni, tra cui come controllare i cookie.

Ho capito!

Ads

Nel processo IT giornaliero, ci sono molte possibili cause di corruzione di un blocco, tra cui:

– Hardware / firmware IO non valido
– Problemi OS
– Problemi Oracle
– Ripristino tramite azioni di database “IRRECUPERABILI” o “NOLOGGING” (nel qual caso ORA-01578& ORA-01110 è previsto un comportamento)

Prima di iniziare a pubblicare, lascia che ti ricordi quante corruzioni abbiamo have Ci sono 2 tipi di corruzioni. Corruzione dei dati può manifestarsi come un fisico o un corruzioni logiche.

Quindi definiamo tutti quelli,

● La corruzione fisica di un blocco si manifesta come checksum o intestazione non validi o quando il blocco contiene tutti gli zeri. Quando ciò accade, il database non riconoscerà il blocco come un blocco Oracle valido, indipendentemente dal suo contenuto. Le corruzioni fisiche (media corrupt blocks) sono blocchi che hanno subito danni fisici evidenti. Quando Oracle rileva un’incoerenza tra CSN nell’intestazione del blocco e CSN nel piè di pagina del blocco, o le strutture di intestazione e piè di pagina previste non sono presenti o sono alterate, la sessione Oracle solleva un’eccezione alla lettura del blocco (ORA-01578: ORACLE data block corrupted corrupted). Una corruzione fisica è anche chiamata corruzione dei media.

● La corruzione logica si verifica quando un blocco di dati ha un checksum valido, ecc., ma i contenuti di blocco sono logicamente incoerenti. La corruzione del blocco logico può verificarsi anche quando la struttura sotto l’inizio del blocco (sotto l’intestazione del blocco) è danneggiata. In questo caso, il checksum del blocco è corretto ma le strutture del blocco potrebbero essere danneggiate. La corruzione logica può anche derivare da una scrittura persa.

Per ulteriori informazioni, vedere La mia nota di supporto Oracle 840978.1.

Quindi?? Quando è possibile ottenere questo messaggio di errore? Non si può ottenuto il messaggio di errore durante l’accesso danneggiato blocchi fino a quando l’accesso relativi blocchi

– Analizzare tabella .. Convalidare struttura
– Dbverify
– inviti all’azione(Create table as Select)
– Export
– Durante RMAN processo

Tutti coloro utilità Database sono popola V$DATABASE_BLOCK_CORRUPTION sul rilevamento della corruzione:

Comportamento in 9i e 10g, la vista v$database_block_corruption utilizzato per ottenere automaticamente solo quando RMAN Backup convalidare&controllo logico convalidare il comando è stato eseguito.

Le informazioni popolate utilizzate per essere aggiornate solo una volta che il danneggiamento è stato riparato (ripristino del supporto/Oggetto eliminato) e al riavvio del comando Rman Backup validate /check logical validate sul database o sul file di dati interessato.

Con 11g questo comportamento è cambiato.Quando qualsiasi utilità o processo di database incontra un danneggiamento intrablock, lo registra automaticamente in V DATAB DATABASE_BLOCK_CORRUPTION.

La riparazione rimuove i metadati sui blocchi corrotti dalla vista.

È possibile identificare gli oggetti che contengono un corrotti o bloccare l’utilizzo di una query come questa

SELECT DISTINCT owner, segment_name FROM v$database_block_corruption dbc JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 ORDER BY 1,2;

oppure è possibile utilizzare :

select * from V$DATABASE_BLOCK_CORRUPTION; << get file#&block from here
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND block_id < 3840
AND block_id + blocks >= 3840;
SEGMENT_TYPE SEGMENT_NAME
—————– —————————————-
INDEX I_SOURCE1

o utilizzare:

SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND 3840 BETWEEN block_id AND block_id + blocks -1;

o

select 'SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = ' || FILE# || ' and ' || BLOCK# || ' between block_id AND block_id + blocks – 1;' from v$database_block_corruption order by 1;

tecniche di Riparazione includono:

– blocco supporti di recupero,
– il ripristino di file di dati,
– ripristino tramite backup incrementali, e blocco newing,
– Export&importa >
– CREARE la TABELLA .. COME comando SELECT.

Non dimenticare, Block media recovery può riparare corruzioni fisiche, ma non corruzioni logiche.

Controllo per Corruzione Blocco con il Comando CONVALIDA
Sintassi per Rman di Comando Convalida :-

Per il Database :

RMAN > Validate database;

Per Datafile :

RMAN > Validate datafile <file no>,<file no> ;

Per il blocco Dati :

RMAN > Validate datafile <file no> block <Block no> ;

Archivelog ripristina per Blocco di Supporti di Ripristino (BMR) possono essere eseguiti in parallelo su più canali, ma datafile/insieme di backup esegue la scansione e la sessione di recupero devono eseguito nella stessa sessione del server.

Per consentire la selezione di quale backup verrà utilizzato per selezionare i blocchi desiderati, il comando block recover supporta le opzioni utilizzate nel comando restore:

FROM BACKUPSET–> restore blocks from backupsets onlyFROM DATAFILECOPY–> restore blocks from datafile copies onlyFROM TAG–>restore blocks from tagged backupRESTORE UNTIL TIME|SCN|LOGSEQ

Quindi, dopo aver convalidato il nostro db, come possiamo recuperare le corruzioni correlate? Ecco alcuni esempi:

Recupero utilizzando file/blocco esplicito:

target rman target / log=rman1.log

RMAN> blockrecover datafile 12 block 4207;

Recupero utilizzando l’elenco di corruzione:

$ rman target / log=rman1.log 
RMAN> blockrecover corruption list;

L’approccio chiave per rilevare e prevenire i dati danneggiati è quello di eseguire le seguenti best practice MAA.

• Usa Oracle Data Guard
• Imposta i parametri di rilevamento della corruzione del blocco del database Oracle
• Implementa una strategia di backup e ripristino con Recovery Manager (RMAN)

Ci sono troppi documenti disponibili su metalink che spiegano profondamente il concetto con esempi di corruzioni. Quindi, suggerisco vivamente di rivedere i documenti qui sotto mentre stai colpendo errori simili sul tuo sistema:

Gestione Oracle Blocco Disastri in Oracle7/8/8i/9i/10g/11g
Master Nota per la Gestione di Database Oracle Problemi di Corruzione
Recupero Dati Advisor – Corruzione Guida di Riferimento
RMAN : Blocco a Livello di Supporti di Ripristino del Concetto di & Esempio
OERR: ORA-1578 “ORACLE blocco di dati danneggiati (file # %s, blocco # %s)”Master Nota
COME RISOLVERE un’ORA-1110
11g Nuova Funzione V$Database_block_corruption Miglioramenti e Rman di Comando Convalida
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.