Qué es la Corrupción de Bloques y Cómo podemos Resolver la Corrupción de Bloques
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.
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: