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 😦

    1. Supostamente meu caro, mas está disponível, ao contrário de outras, e se todas as vezes fosse depender do suporte acho que desistiria de trabalhar com oracle kkkkkk…

      Desististe?…eu não…nem nunca…

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