segunda-feira, 13 de fevereiro de 2012

Como mover uma TABLESPACE num ambiente Oracle RAC ASM

Usar comandos ASM num ambiente RAC é uma coisa muito chatinha... (pra dizer o mínimo). Não podemos reclamar, afinal é isso que nos mantem empregados ;-).

Bom, depois de suar muito, descobri como copiar arquivos entre diskgroups num ambiente Oracle RAC ASM. Vejam estas dicas muito fáceis!

Como mover datafiles entre diskgroups:
1) Coloque a tablespace offline (indisponível para uso):
     SQL> ALTER TABLESPACE exemplo OFFLINE;
2) Entre na ferramenta RMAN do Oracle:
     [oracle@rac1 racdb]$ rman target / nocatalog
3) Copie os datafiles para o diskgroup desejado:
     copy datafile '+DG_DISK3/sysdb/datafile/datafile1.dbf' to '+DG_DISK1'; (estamos movendo do diskgroup 3 para o diskgroup 1)
4) Anote o nome que será gerado para o datafile no diskgroup de destino (ver passo3)
5) Renomeie o datafile para o nome que o RMAN gerou no passo 3
     alter database rename file '+DG_DISK3/sysdb/datafile/datafile1.dbf' to 'nome do rman passo 3';
6) Repita os passos acima para copiar outros datafiles, se for preciso;
7) Coloque as tablespaces online:
     SQL> ALTER TABLESPACE exemplo ONLINE;

Simples, não é mesmo? Mas e se você quiser mover a tablespace SYSTEM ou a SYSAUX? Aqui é que a porca torce o rabo...

Nada de muito complicado, mas será preciso tirar o banco de dados do ar e somente funcionará se seu banco estiver no modo archive. Veja como fazer:

Como mover tablespace SYSTEM e SYSAUX para outro DISKGROUP (RAC com ASM)

1) Identifique a localização da tablespace SYSTEM e do seu respectivo datafile:
    SQL> select ts.name,df.name from v$datafile df,v$tablespace ts where ts.ts#=df.ts# and ts.name='SYSTEM';
2) Entre na ferramenta RMAN do Oracle:
     [oracle@rac1 racdb]$ rman target / nocatalog
3) Copie o datafile para o novo diskgroup:
     RMAN> backup as copy tablespace system format '+DG_DISK1';
4) Tire o banco de dados do ar:
     RMAN> shutdown immediate;
5) Reinicie o banco com a opção MOUNT:
    RMAN> startup mount;
6) Informe a nova localização do datafile:
    RMAN> switch tablespace system to copy;
7) Execute a recuperação do banco de dados:
    RMAN> recover database;
8) Abra o banco:
    RMAN> alter database open;

Para a tablespace SYSAUX a sequencia é a mesma, ok?

Felizmente na versão 11g já existe um opção para copiar arquivos dentro do próprio ASM. A coisa tá melhorando...


Abraços e Sucesso!

Luis Adelson
PS. As vezes fico sem escrever porque acho que alguns artigos são simples demais. Vocês poderiam sugerir algum assunto para ser dismitificado aqui?

Nenhum comentário:

Postar um comentário