Verificando a consistência de um arquivo de backup do RMAN

Hoje me deparei com um problema gravíssimo, um backup do Oracle não estava restaurando e o seguinte erro estava sendo exibido:

channel c1: ORA-19870: error while restoring backup piece /media/bkp/INC0

ORA-19599: block number 793607 is corrupt in backup piece /media/bkp/INC0

Para verificar se o backup está ou não integro, podemos usar dois utilitários, um chamado dbv(DBVERIFY) que foi feito pela Oracle e pode ser usado para verificar arquivos de backup e também datafiles e o outro um bem difundido que é o md5sum.

O dbv possui os seguintes parâmetros:

ParametroDescrição
FILEO nome do arquivo a ser verificado
STARTO bloco Oracle onde a verificação deve começar
ENDO bloco Oracle onde a verificação deve terminar
BLOCKSIZEDeve ser especificado apenas se o erro DBV-00103 for apresentado
LOGFILEArquivo de log da operação
FEEDBACKMostra com um . (ponto) o progresso
HELPExibe a ajuda
PARFILEUm arquivo que contém parâmetros de configuração

Em uma verificação simples, vamos usar apenas o seguinte comando:

dbv file=INC1_xxxx_

A saída do comando é bem simples:

DBVERIFY - Verification complete

Total Pages Examined         : 20946
Total Pages Processed (Data) : 0
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 1
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 0
Total Pages Marked Corrupt   : 20945
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 2078742100 (2121.2078742100)

Como pode ser visto, o arquivo verificado possuí 20946 “pages” e dessas 20945 estão corrompidas. Nesse caso o arquivo pode ter sido corrompido durante a copia e como verificamos isso?

Usando o md5sum

O md5sum é um utilitário presente em distribuições linux diversas e tem o mesmo comportamento, seja ela CentOs, Oracle Linux, Ubuntu, etc.

Devemos primeiro verificar o md5 gerado no ambiente de produção:

[oracle@producao]$ md5sum INC1_xxxxx
84123cf312343d8159adcc21912357cc  INC1_xxxxx

E depois o gerado na maquina de teste:

[oracle@teste]$ md5sum INC1_xxxxx
92124jf312344v8159adcc33912147xx  INC1_xxxxx

Como podemos ver, o arquivo esta com md5 diferentes, ou seja, apesar do tamanho e nome ser o mesmo, o arquivo é diferente.

Nesses caso, recomendo que uma nova cópia seja feita e os md5 validados antes de emitir o restore.

Fontes: Oracle DBV

chevron_left
chevron_right