Fevereiro 5, 2022

o que é corrupção de bloco e como podemos resolver corrupção de bloco

x

Privacidade e Cookies

Cookies são usados neste site. Continuou, você concorda com o uso deles. Saiba mais, incluindo como verificar cookies.

eu entendo!

anúncios

no processo diário de TI, existem muitas causas possíveis de corrupção de bloco, incluindo:

– Ruim e / s de hardware / firmware
– OS problemas
– Oracle problemas
– a Recuperação através de “IRRECUPERÁVEL” ou “NOLOGGING” ações de banco de dados (caso em que ORA-01578&ORA-01110 é o comportamento esperado)

Antes de começar a postagem, deixe-me lembrá-lo como muitas corrupções temos… Existem 2 tipos de corrupções. A corrupção de dados pode se manifestar como uma corrupção física ou lógica.

então vamos definir todos aqueles,

● corrupção física de um bloco se manifesta como uma soma de verificação inválida ou cabeçalho, ou quando o bloco contém todos os zeros. Quando isso acontece, o banco de dados não reconhecerá o bloco como um bloco Oracle válido, independentemente de seu conteúdo. Corrupções físicas (blocos corruptos da mídia) são blocos que sofreram danos físicos óbvios. Quando o Oracle detecta uma inconsistência entre o CSN no cabeçalho do bloco e o CSN no rodapé do bloco, ou as estruturas esperadas de cabeçalho e rodapé não estão presentes ou são mutiladas, a sessão do Oracle gera uma exceção após a leitura do bloco (ORA-01578: ORACLE data block corrupted…). Uma corrupção física também é chamada de corrupção da mídia.

● a corrupção lógica acontece quando um bloco de dados tem uma soma de verificação válida, etc., mas o conteúdo do bloco é logicamente inconsistente. A corrupção lógica do bloco também pode ocorrer quando a estrutura abaixo do início do bloco (abaixo do cabeçalho do bloco) está corrompida. Nesse caso, a soma de verificação do bloco está correta, mas as estruturas do bloco podem estar corrompidas. A corrupção lógica também pode resultar de uma gravação perdida.

para obter mais informações, consulte minha nota de Suporte do Oracle 840978.1.

então?? Quando você pode obter essas mensagens de erro? Você pode não receber uma mensagem de erro durante o acesso a blocos corrompidos até que os blocos relacionados ao access– 6909 >

– analise a tabela .. Validar a estrutura
– Dbverify
– CTA(Create table as Select)
– Exportação
– Durante o RMAN processo

Todos os utilitários de Banco de dados são preenche V$DATABASE_BLOCK_CORRUPTION na detecção de corrupção:

Comportamento em 9i e 10g, a view v$database_block_corruption usado para obter preenchido apenas quando o RMAN Backup validar&verificar lógica validar o comando foi executado.

as informações preenchidas usadas para serem atualizadas apenas uma vez que a corrupção foi reparada (recuperação de mídia/objeto descartado) e na nova execução do comando RMAN Backup validate /check logical validate no banco de dados ou no arquivo de dados afetado.

com 11g esse comportamento mudou.Quando qualquer utilitário ou processo de banco de dados encontra uma corrupção intrablock, ele a registra automaticamente em V$DATABASE_BLOCK_CORRUPTION.

o reparo remove metadados sobre blocos corrompidos da visualização.

Você pode identificar os objetos que contém um corrupto bloco usando uma 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;

ou você pode usar :

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

ou uso:

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

ou

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;

técnicas de Reparo incluem:

– bloco media de recuperação,
– restauração de datafiles,
– a recuperação, por meio de cópias de segurança incrementais, e bloco newing,
– Exportação&import
– CRIAR TABELA .. Como comando SELECT.

não se esqueça, Block Media recovery pode reparar corrupções físicas, mas não corrupções lógicas.

Verificação de Corrupção Bloco com o Comando VALIDAR
Sintaxe do Rman Validar Comando :-

Para o Banco de dados :

RMAN > Validate database;

Para o arquivo de Dados :

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

Para o bloco de Dados :

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

Archivelog restaura para o Bloco de Mídia de Recuperação (TMB) pode ser executado em paralelo em vários canais, mas datafile/backupset scans e a sessão de recuperação devem todos ser executados no mesmo servidor de sessão.

para permitir a seleção de qual backup será usado para selecionar os blocos desejados, o comando Block recover suporta as opções usadas no 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

então, depois de validar nosso banco de dados do que como podemos recuperar corrupções relacionadas? Aqui estão alguns exemplos:

recuperação usando Arquivo/Bloco explícito:

$ RMAN target / log=rman1.log

RMAN> blockrecover datafile 12 block 4207;

recuperação usando Lista de corrupção :

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

a principal abordagem para detectar e prevenir dados corrompidos é executar as seguintes práticas recomendadas do MAA.

• Usar o Oracle Data Guard
• Definir o Banco de dados Oracle a corrupção bloco de detecção de parâmetros
• Implementar uma estratégia de backup e recuperação com o Recovery Manager (RMAN)

Existem muitos documentos disponíveis no metalink que estão cobre profundamente explicar o conceito de corrupções exemplos. Então, eu sugiro fortemente para rever abaixo docs enquanto você está batendo erros semelhantes em seu sistema:

Manuseio do Bloco Oracle Corrupções em Oracle7/8/8i/9i/10g/11g
Mestre de Observação para a Manipulação de Banco de dados Oracle Problemas de Corrupção
Recuperação de Dados Supervisor de Corrupção Guia de Referência
RMAN : Nível de Bloco Media de Recuperação de Conceito & Exemplo
OERR: ORA-1578 “ORACLE bloco de dados corrompido (arquivo # %s, o bloco # %s)”Mestre Observação
COMO RESOLVER um ORA-1110
11g Novo Recurso de V$Database_block_corruption Melhorias e Rman Comando Validar
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Deixe uma resposta

O seu endereço de email não será publicado.