febrero 5, 2022

Qué es la Corrupción de Bloques y Cómo podemos Resolver la Corrupción de Bloques

X

Privacidad y cookies

En este sitio se utilizan cookies. Continua, aceptas su uso. Obtenga más información, incluida la forma de comprobar las cookies.

¡Lo entiendo!

Anuncios

En el proceso de TI diario, hay muchas causas posibles de corrupción de bloques, incluidas:

– Hardware / firmware de IO defectuoso
– Problemas del sistema operativo
– Problemas de Oracle
– Recuperación a través de acciones de base de datos «IRRECUPERABLES» o «NOLOGGING» (en cuyo caso ORA-01578&ORA-01110 es el comportamiento esperado)

Antes de comenzar a publicar, permítame recordarle cuántas corrupciones tenemos There Hay 2 tipos de corrupciones. La corrupción de datos puede manifestarse como una corrupción física o lógica.

Así que definamos todos esos,

● La corrupción física de un bloque se manifiesta como una suma de comprobación o encabezado no válidos, o cuando el bloque contiene todos los ceros. Cuando esto sucede, la base de datos no reconocerá el bloque como un bloque de Oracle válido, independientemente de su contenido. Las corrupciones físicas (bloques corruptos de medios) son bloques que han sufrido daños físicos evidentes. Cuando Oracle detecta una inconsistencia entre el CSN en el encabezado del bloque y el CSN en el pie de página del bloque, o las estructuras de encabezado y pie de página esperadas no están presentes o están dañadas, la sesión de Oracle genera una excepción al leer el bloque (ORA-01578: bloque de datos de ORACLE dañado…). Una corrupción física también se llama corrupción mediática.

● La corrupción lógica ocurre cuando un bloque de datos tiene una suma de comprobación válida, etc., pero el contenido del bloque es lógicamente inconsistente. La corrupción de bloques lógicos también puede ocurrir cuando la estructura debajo del principio del bloque (debajo del encabezado del bloque) está dañada. En este caso, la suma de comprobación de bloques es correcta, pero las estructuras de bloques pueden estar dañadas. La corrupción lógica también puede resultar de una escritura perdida.

Para obtener más información, consulte la nota 840978.1 de My Oracle Support.

¿Entonces?? ¿Cuándo puede recibir este mensaje de error? Es posible que no haya recibido un mensaje de error durante el acceso a bloques dañados hasta acceder a bloques relacionados

– Analizar tabla .. Validar estructura
– Dbverify
– CTAS(Crear tabla como Selección)
– Exportar
– Durante el proceso de RMAN

Todas esas utilidades de base de datos se rellenan V DATAB DATABASE_BLOCK_CORRUPTION al detectar corrupción:

Comportamiento en 9i y 10g, la vista v datab database_block_corruption se usa para rellenarse solo cuando se 2690>comprobar validación lógica se ejecutó el comando.

La información poblada se utiliza para actualizarse solo una vez que se reparó el daño (recuperación de medios/Objeto caído) y al volver a ejecutar el comando validar /comprobar validación lógica de copia de seguridad de Rman en la base de datos o el archivo de datos afectado.

Con 11g este comportamiento ha cambiado.Cuando cualquier utilidad o proceso de base de datos encuentra un daño intrabloque, lo registra automáticamente en V DATAB DATABASE_BLOCK_CORRUPTION.

La reparación elimina los metadatos de los bloques dañados de la vista.

Puede identificar los objetos que contienen un bloque corrupto utilizando una consulta como esta

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;

o puede utilizar :

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

uso:

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;

Las técnicas de reparación incluyen:

– recuperación de medios de bloque,
– restauración de archivos de datos,
– recuperación mediante copias de seguridad incrementales y nueva creación de bloques,
– Exportación& importación
– CREACIÓN DE TABLA .. COMO comando SELECT.

No lo olvide, la recuperación de medios de bloqueo puede reparar corrupciones físicas, pero no corrupciones lógicas.

Comprobación de la corrupción de bloques con la sintaxis del comando VALIDAR
para el comando Validar Rman: –

Para la base de datos :

RMAN > Validate database;

Para el Archivo de Datos :

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

Para bloque de datos:

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

Las restauraciones de registros de archivos para la Recuperación de medios en bloque (BMR) se pueden ejecutar en paralelo en varios canales, pero las exploraciones de archivos de datos/conjuntos de respaldo y la sesión de recuperación deben ejecutarse en la misma sesión del servidor.

Para permitir la selección de la copia de seguridad que se utilizará para seleccionar los bloques deseados, el comando recuperar bloques admite opciones utilizadas en el comando restaurar:

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

Entonces, después de validar nuestra base de datos, ¿cómo podemos recuperar las corrupciones relacionadas? Estos son algunos ejemplos:

Recuperación usando un archivo/Bloque explícito:

target rman target/log = rman1.log

RMAN> blockrecover datafile 12 block 4207;

Recuperación mediante lista de corrupción :

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

El enfoque clave para detectar y prevenir datos dañados es realizar las siguientes prácticas recomendadas de MAA.

* Configure los parámetros de detección de corrupción de bloques de base de datos de Oracle
* Implemente una estrategia de copia de seguridad y recuperación con Recovery Manager (RMAN)

Hay demasiados documentos disponibles en metalink que son cubiertas que explican profundamente el concepto con ejemplos de corrupción. Por lo tanto, le sugiero encarecidamente que revise los documentos a continuación mientras se encuentra con errores similares en su sistema:

Manejo de Corrupciones de Bloques de Oracle en Oracle7/8/8i/9i/10g/11g
Nota Maestra para el Manejo de Problemas de Corrupción de bases de datos de Oracle
Guía de Referencia de Corrupción de Asesor de Recuperación de datos
RMAN : Concepto de Recuperación de Medios a nivel de bloque & Ejemplo
OERR: ORA – 1578 «Bloque de datos de ORACLE dañado (archivo # %s, bloque # %s)» Nota maestra
CÓMO SOLUCIONAR PROBLEMAS Y RESOLVER una nueva característica de ORA-1110
11g V Enhancements Mejoras de Database_block_corruption y Comando Rman Validate
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Deja una respuesta

Tu dirección de correo electrónico no será publicada.