KFED – Recuperando o header de um disco do ASM

Já passei por algumas situações com ASM, em que o header do disco é perdido ou alterado, não vou entrar no âmbito da origem dos problemas 🙂

Pensando nisto, acho que o próprio suporte da Oracle ja tiveram algum trabalho com isto e criaram uma forma mais simples de recuperar o header.

Basicamente o header do disco, está no bloco 0 da primeira unidade de alocação, ou seja, se utilizarem o utilitário kfed, conseguem ler este metadata, conforme exemplo abaixo:

1

Deste forma, podemos ver o conteúdo do header de um disco ASM.

Agora para “simular” a perca de um header, com o utilitário dd, corrompi o header do disco:

2

Como se pode ver, após a corrupção, o kfed, já não reconhece mais o header do disco, o que impossibilida do ASM montar este disco.

Após um restart dos serviços, o disco em questão já não monta:

3

Agora temos que recuperar 🙂

Por default, o ASM guarda uma cópia do header do disco em um bloco mais interno, que vimos na penúltima imagem, quando comparei o output dos comandos:

– kfed read /dev/VOL1 aun=0 blkn=0

– kfed read /dev/VOL1 aun=1 blkn=254

Ou seja, o aun=0 blkn=0 representa o header, enquanto o aun=1 blkn=254 representa o backup do header.

Agora vamos a recuperação:

4

E após a validação, o header parece estar com bom aspecto.

Após um restart aos serviços e a uma nova verficação, temos o seguinte resultado:

5

É uma segurança adicional que temos, no entanto, o mais importante é termos os cuidados necessários com a manipulação destas informações.

😉

2 comentários em “KFED – Recuperando o header de um disco do ASM

  1. Viva 🙂

    Supostamente o kfed é para ser usado só pelo suporte da Oracle, mas os DBAs há muito que passaram por cima disso e bem 🙂

    Só para deixar publicidade aqui. Tenho um script que corre dentro da instância ASM e consegue mapear os ficheiros, extents e a posição deles no disco. Podes ainda listar free/used AUs,etc.
    A última versão consegue ler a metadata de dentro de um DiskGroup (0.3).

    Url: http://lcmarques.com/category/asm/amap/
    Script here: https://raw.github.com/lcmarques/amap/master/amap.sql

    Abraço,
    e continua a escrever em Português que eu já desisti 😦

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s