Migrar Banco para ASM
Este é um método rápido e fácil para migrar um Banco que esteja em filesystem para ASM.
A mágica é feita pelo comando SWITCH DATABASE TO COPY, que troca nos CONTROLFILEs a localização dos DATAFILEs para o onde foi feito o backup, no caso, +DATA.
Neste caso, o Oracle utiliza OMF (Oracle Managed Files) para decidir quais serão os novos nomes dos DATAFILEs.
Neste teste, foi utilizado um Linux CentOS 4.7 com Oracle RDBMS 10.2.0.4, e todo o Banco (DATAFILEs, REDOs e CONTROFILEs) ficam em /u02/ORCL.
RMAN> SQL "ALTER SYSTEM SET DB_CREATE_FILE_DEST = ''+DATA'' SCOPE=SPFILE";
RMAN> SQL "ALTER SYSTEM SET CONTROL_FILES = '''' SCOPE=SPFILE";
RMAN> SQL "SHUTDOWN IMMEDIATE";
RMAN> SQL "STARTUP NOMOUNT";
RMAN> RESTORE CONTROLFILE FROM '/U02/ORCL/CONTROL1.CTL';
RMAN> SQL "ALTER DATABASE MOUNT";
RMAN> BACKUP AS COPY DATABASE DATABASE FORMAT '+DATA';
RMAN> SWITCH DATABASE TO COPY;
RMAN> RECOVER DATABASE;
RMAN> SQL "ALTER DATABASE OPEN";
RMAN> SQL "ALTER TABLESPACE TEMP ADD TEMPFILE";
RMAN> SQL "ALTER DATABASE TEMPFILE ''/u02/ORCL/temp01.dbf'' DROP";<code>
</code>
Olá Portilho,
Primeiramente parabens pelos seus artigos.
Seguinte tenho uma duvida e gostaria de saber da sua opinião: Quando tenho um Banco que não usa ASM, faço a multiplexação manual, fazendo copia do controlFile em varios discos e alterando o paramentro control_file para apontar para as copias do ControlFile. Com isso caso ocorrer algum crash no controlFile primario, basta sobreescrever o controlfile com crash por um dos controlfile sobrevivente.
Se eu alterar o banco para ASM, a multiplexação ser feita por ele, e ocorre algum crash em um dos controlfile, como faço para simplemente alterar a copia do controlfile por um outro sobrevivente.
Desde ja agradeço
Oi Alessandro. Blz?
O ASM pode ser manipulado como um Filesystem normal, através do utilitário asmcmd. Aí, mesmo que seu banco não suba, você pode subir a instância ASM e sobrescrever o controlfile correto.
Veja que a multiplexação normal do controlfile no ASM (que a mesma que em Filesystem – cópias dos controlfiles), e a REDUNDANCY. Você pode usar as duas ao mesmo tempo, ams sobre a segunda você não tem controle.
Abraço !
Oi Portilho, não sei se entendi certinho, mas vou descrever o que fiz aqui para tentar ilustrar – fiz o seguinte teste:
Criei uma maquina virtual Windows XP com 3 discos, – C; N; M sendo a unidade C de 10 Giga formatado pelo Sistema Operacional, e as unidades N e M de 5 Giga não formatado.
Depois instalei o Oracle 10g XE (por ser mais rapido e também testar se o XE funciona com ASM).
Feito isso instalei o Oracle 10g ASM e criei um grupo de Disco +DATA com os dois disco – N; M
Então fiz o processo de backup do Banco para o grupo de disco, restaurei o ControlFile e criei novos membros redo logs no grupo de disco dropei os membros antigos, com isso todos os arquivos do banco (ControlFile, DataFile e Log de Redo) estão no Grupo de Disco +DATA
Utilizando o asmcmd vejo o meu controlFile em “DATA/XE/CONTROLFILE/backup.262.717429831″.
Bom até aqui onde sei este meu arquivo de controlFile é multiplexado nos dois disco M e N pelo ASM , agora que vem minha duvida, não tenho acesso em disco (tanto pelo ASM ou pelo Windows) somente no grupo de Disco ASM. Se der um crash em um dois o que fazer?
Cheguei a pensar se der erro em um controlfile o ASM automaticamente corrigia outro, – mas isso não é dito no Livro OCP 11 g Administração II – então não sei se é isso
Quando você fala em ” subir a instância ASM e sobrescrever o controlfile correto” seria ter um outro grupo de disco tipo +DATA2 em outros disco (X e Y por exemplo) e depois copiar o controlfile de um grupo para outro é isso?
Em ultima instancia se for isso mesmo, acho que terei que migrar o ASM para o 11g pois o comando cp do utilitario asmcmd não é suportado no 10g.
Me desculpe se fui um pouco extenso e/ou chato, mas me interessei muito pelo ASM depois que ouvi o café com GPO que você participou.
Obrigado!
Oi Alessandro!
Acho que o problema é a confusão entre Multiplexação (subir o banco de dados apontando para várias cópias do mesmo Controlfile) e Redundância.
Ao criar um DG com dois discos, se você usou a REDUNDANCY NORMAL, o Controlfile está espelhado como em um RAID 1. Não dá para ver as duas cópias, elas existem nos dois discos, mas como espelhos, e uma cópia será utilizada automaticamente em caso de falha em um disco. Mas, na Redundância, se você apagar intencionalmente um Controlfile, ou ele se corromper por algum comando do SO, a cópia redundante também é perdida. A Redundância te protege de falha no disco rígido
Já na Multiplexação (que pode ser feita com cópias manuais do Controlfile), caso um seja apagado intencionalmente, você sempre tem outro que pode ser utilizado. A Multiplexação te protege de errors lógicos.
Em um ambiente de Produção, você deve utilizar os dois métodos.
Será que é por aí a dúvida?
Abraço !
Blz Portilho Muito Obrigado.
Ficou bem mais claro agora, vou realizar varios testes aqui e depois migra o ambiente de produção para o ASM.
Apos minha experiencia com a ASM vou começar escrever no BLOG do GPO. Já solicitei para o Administrador do BLOG do GPO criar um blog para mim.
Agora Portilho, queria aproveitar a oportunidade e ver contigo algo:
Recebi um e-mail seu (que acho que não era para mim) que diz:
“Sou muito preocupado com a centralização de eventos e cursos em SP, e quero fazer algo a respeito”
Sera que você não estaria afim de participar de algum evento/Congresso na area de T.I em Cuiabá/MT?
Se você estiver afim, vou começar a correr atras do pessoal daqui e nas faculdades.
Valeu! t++
Oi Alessandro !
Putz, será que te mandei esse email errado? Eu acho que mandei algo assim para duas pessoas, que vi que eram de longe e me perguntaram sobre cursos remotos.
Eu estou planejando fazer cursos remotos na Nerv, para que as pessoas fora de SP possam participar sem precisar gastar uma fortuna com viagem e hospedagem. Mas quero fazer algo de qualidade, com um link bom, ainda estamos criando a infraestrutura para isso.
Sobre o evento aí, eu participo sim, seria um prazer.
Boa sorte com os testes. Qualquer coisa, pode escrever !