Recriando instâncias ASM e resolvendo problemas com Diskgroups corrompidos

Bom dia pessoal.

Esse artigo referente a problemas com discos no ASM foi muito útil, espero que possa ajudar você também.

No caso de você não poder montar os seu sgrupos de discos ASM, você não será capaz de iniciar qualquer banco de dados usando esses grupos de discos. Aqui está um possível erro reportado quando estiver tentando montar grupos de discos ASM:

SQL> startup mount
ORA-15032: not all alterations performed
 ORA-15063: diskgroup “<DISK GROUP NAME>” lacks quorum of 2 PST disks; 0 found
 Este erro pode ocorrer se:

a) disco ASM (s) não é visível no sistema operacional.
b) parâmetro ASM_DISKSTRING não está definido corretamente na instância ASM (s)
c) metadados ASM em disco foram substituídos ou corrompidos

Se você já viu esse erro ou outro erro indicando a corrupção metadados ASM e verificou que o disco(s) é visível com as permissões corretas no sistema operacional e que o parâmetro ASM_DISKSTRING está configurado corretamente, os seus Metadados ASM podem estar corrompidos. Se este for o caso, talvez seja necessário recriar sua instância ASM (s) e seus grupo de discos. As etapas são:

1. Garantir que você tenha um backup RMAN prévia de todos os bancos de dados usando ASM
2. Encerre a instância ASM (s)
3. Use dd para limpar os metadados a partir de discos ASM
4. Re-criar o seu grupo de discos ASM (s)
5. Restaurar bancos de dados

PASSO 1: Verifique se você tiver um RMAN Backup anterior de todos os bancos de dados usando ASM
————————————————– ————————

A única maneira que você pode se recuperar de corrupção de metadados ASM é ter uma Backup RMAN do banco de dados em uma área que não foi afetados por um falha da intancia ASM. Como parte de sua estratégia de recuperação, você deve considerar backup em fita ou uso de um outro storage terciário para salvaguardar os seus backups.

Exemplo de backup RMAN:

1. Conectar ao banco de dados RMAN alvo para backup

rman nocatalog target /

2. Faça o backup seu banco de dados, logs Arquivo e arquivos de controle. Exemplo:

RMAN> backup device type disk format ‘/u03/backup/%U’ database plus archivelog;
 RMAN> backup device type disk format ‘/u03/backup/ctrlf_%U’ current controlfile;

3. Manualmente façar cópias de seus SPFILEs. Exemplo:

CREATE PFILE=’/u03/app/oracle/product/10.1.0/dbs/init<sid>.ora’
 FROM SPFILE=’/+DATA/V10FJ/spfile.ora’;

Se você não tem um bom backup de todos os bancos de dados (datafiles, control_files, redo logs, logs de arquivo), NÃO CONTINUE ALÉM DO PASSO 1!

PASSO 2: DESLIGUE A INSTÂNCIA(S) ASM
————————————–

Pare de suas instâncias de banco de dados e instâncias ASM com sqlplus ou srvctl (RAC)

Exemplo SQLPLUS:

setenv ORACLE_SID +ASM
 sqlplus ‘/ as sysdba’
 SQL> shutdown immediate
setenv ORACLE_SID DBSCOTT
 sqlplus ‘/ as sysdba’
 SQL> shutdown immediate

SRVCTL (RAC) Exemplo:

srvctl stop asm -n <node name 1>
 srvctl stop asm -n <node name 2>
 srvctl stop database -d <DB_NAME>

PASSO 3: USE DD PARA LIMPAR O METADATA de discos ASM
————————————————– –

Todos os metadados ASM devem ser limpos antes de tentar re-criar instâncias ASM e diskgroups. Comando exemplo:

dd if=/dev/zero of=/dev/rdsk/c1t4d0s4 bs=8192 count=12800

PASSO 4: Recriar o seu grupo de disco(s) ASM
—————————————-

Definir o seu ORACLE_SID à sua instância ASM e criar uma novo diskgroup.
 Exemplo:
 setenv ORACLE_SID +ASM
 sqlplus ‘/ as sysdba’
 SQL> startup nomount
 SQL> create diskgroup data disk ‘/dev/rdsk/c1t4d0s4′;
 SQL> shutdown immediate
 SQL> startup mount
PASSO 5: DATABASES RESTORE
 ——————————————————–
 1. Use RMAN para restaurar os control_files e o banco de dados.
 Exemplo:
 rman target /
 RMAN> restore controlfile from ‘/u03/backup/ctrlf_<string>’; — onde <string> é uma string unica gerada pelo %U.
 RMAN> alter database mount;
 RMAN> restore database;
 RMAN> recover database;
 RMAN> alter database open resetlogs;
2. Se conecte à instância ASM e obtenha o nome do controlfile.
 Exemplo:
 setenv ORACLE_SID +ASM
 sqlplus ‘/ as sysdba’
 SQL> select name, alias_directory from v$asm_alias;

Procure o nome controlfile no diretório on estão os CONTROLFILES :Exemplo

4. Editar o init <SID>. Ora e alterare o parâmetro para apontar para control_files, aquele identificado a partir da view v$asm_alias do ASM.

5. Recrie o spfile. Exemplo:

SQL> create spfile=’+DATA/V10FJ/spfileV10FJ.ora’  from pfile=’/u03/app/oracle/product/10.1.0/dbs/pfile.out’;

6. Deslige e reinicie a instância para usar o spfile recém-criado.

7. Repita o “PASSO 5″ seção para bancos de dados adicionais.

————————-

APÓS TODOS ESSES PASSOS É SOMENTE SUBIR A INTANCIA.

Inicie a instância usando a cópia local de seu pfile a partir do passo 1.

setenv ORACLE_SID DBALE
 sqlplus ‘/ as sysdba’
 SQL> startup nomount pfile=init<sid>.ora

É isso ai.

Sobre Alexandre Pires

ORACLE OCS Goldengate Specialist, OCE RAC 10g R2, OCP 12C, 11g, 10g , 9i e 8i - Mais de 25 anos de experiência na área de TI. Participei de projetos na G&P alocado na TOK STOK, EDINFOR alocado na TV CIDADE "NET", 3CON Alocado no PÃO DE AÇUCAR, DISCOVER alocado na VIVO, BANCO IBI e TIVIT, SPC BRASIL, UOLDIVEO alocado no CARREFOUR e atualmente na ORACLE ACS atendendo os seguintes projetos: VIVO, CLARO, TIM, CIELO, CAIXA SEGUROS, MAPFRE, PORTO SEGURO, SULAMERICA, BRADESCO SEGUROS, BANCO BRADESCO, BASA, SANTANDER, CNJ, TSE, ELETROPAULO, EDP, SKY, NATURA, ODEBRESHT, NISSEI, SICREDI, CELEPAR, TAM, TIVIT, IBM, SMILES, CELEPAR, SERPRO,OKI,BANCO PAN, etc
Esse post foi publicado em ASM, AWR, PLSQL SCRIPTS, RAC, TUTORIAL e marcado , , , , , , , , , , , , , , , , , , , , , , , , , . Guardar link permanente.

Deixe uma resposta

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s