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:
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:
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:
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:
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:
É uma segurança adicional que temos, no entanto, o mais importante é termos os cuidados necessários com a manipulação destas informações.
😉
Categorias:Base de Dados, Oracle, Tips, Tools
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 😦
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…