terça-feira, 24 de fevereiro de 2009

ORACLE: Patch de Blocos

Algums amigos ja me perguntaram porque no Informix existe ferramenta para fazer correcoes manuais diretamente no disco enquanto o engine esta off-line. Primeiramente esta tecnica se chama patch, o uso nao é comum, e algo muito reservado.

Bom quer dizer que no Informix temos que corrigir as coisas manualmente? No Oracle e no Db2 isto nao existe?

Nao e comum termos corrupcao no Informix!! No Oracle ou DB2 essa técnica também existe!!

Por isto vou citar uma ferramenta que encontrei postada e disponível no site da Oracle. A ferramenta se chama BBED (Block Browse Editor)

No link abaixo voce pode encontrar o PDF com o How-to, por isto nao irei colocar o passo a passo aqui no blog.
http://orafaq.com/papers/dissassembling_the_data_block.pdf

Quais os cenários onde este recurso é necessario?

Óbvio que ocorre quando sua empresa comeca a perder muito dinheiro, e a pressão sobe no suporte do fabricante.

Imagine um banco de dados de DW com mais de 10TB, e o cliente passou o mes inteiro com problemas na solucao de backup, tiveram um crash de hardware apos aplicar um upgrade no software da SAN, não da pra restaurar o banco pois nao tem backup recente, mesmo se tivessem o impacto na área usuária seria muito grande.

Possiveis cenários da corrupção?

1o caso : Corrupcao de bitmap, as paginas bitmaps do extent definem o quando os blocos estao utilizados, em geral isto é igual em qualquer banco de dados, imaginem uma corrupcao em uma pagina bitmap em uma tabela com 4 tb , neste caso sera necessario varrer os blocos e verificar o percentual de espaco livre para recriar a pagina bitmap, uma alternativa seria recriar a pagina bitmap com os bits marcados como full e novos inserts irao ocorrer somente em novos blocos, e assim a vida continua.

20 caso: Checksum inválido, em alguns bancos é gerado uma chave para consistência do bloco, esta é gravada no início e no final o bloco, caso essas chaves não possuam o mesmo valor o bloco é considerado inválido, o erro pode ter ocorrido no hardware e você queria continuar com o bloco do jeito que está e posteriormente você fará o reorg da tabela, neste caso apenas sincronize o checksum e a vida volta ao normal.

Lembrem-se esse post é apenas informativo, para nerds incuráveis que gostam de saber como as coisas funcionam. Nunca faça laboratório em seu ambiente de produçao.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.