- Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 6 meses atrás por
Rodrigofs.
-
AutorPosts
-
10 de setembro de 2009 às 3:56 pm #89556
Frango
ParticipanteBom dia amigos, estou estudando Oracle, e resolvir fazer algumas simulações. Tenho meu ambiente:
Linux Centos 5.1
Oracle Database 10g,
modo de arquivamento: Archive log.Minha primeira simulação foi tentar fazer um DUMP (backup restore) em outra máquina usando backup gerenciado por usuário. Não quero fazer isso usando RMAN agora, gostaria de aprender no modo antigo primeiro. Então fiz o seguinte:
1.ALTER DATABASE BEGIN BACKUP ;
Nesse momento copiei os datafiles para o novo servidor.
Enquanto copiava fiz diversos comandos DML para encher os logs.2. ALTER DATABASE END BACKUP;
3. ALTER DATABASE BACKUP CONTROLFILE TO ‘/u02/back/control1.bak’;
4. CREATE PFILE FROM SPFILE;
5. Backup da pasta inteira dos archives logs.
Enviei todos esses arquivos para o novo servidor, backup dos datafiles, backup do controlfile, backup dos arquives e o arquivo de inicialização da instãncia.
RESTORE/RECOVER
No novo servidor, verifiquei os diretórios, permissões etc. Movi os datafiles para os diretorios corretos, movi a pasta de archives, restaurei o controlfile e suas copias para os diretorios corretamente.iniciei a instância usando o arquivo de inicialização.
Ao iniciar o SQLPLUS e emitir o STARTUP o oracle pára no estado mount e me diz que preciso usar o ALTER DATABASE OPEN RESETLOGS. Isso é claro pois eu não tenho meus redo logs. Emitir o comando e o oracle me disse que o datafile 1 precisa de recover. Isso também eu entendi pois, fiz um backup online, ou seja inconsistente. então emitir o comando:
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
o oracle me pedi um archive log que não tenho, e quando digito CANCEL ele cancela o processo de recover. Creio eu que esse archive que ele precisa está no meu redo log, mas não tenho redo log, oracle emite a seguinte mensagem:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01195: online backup of file 1 needs more recovery to be consistent
ORA-01110: data file 1 : ‘/u02/oradata/producao/system01.dbf’Visto o erro não conseguir concluir meu recover, eu pensei que no processo de backup, copiei meus datafiles, archives e controlfile, mas os dados que estavam nos meus redo logs não me preocupei com eles.
Fiz todo o processo denovo:
ALTER DATABASE BEGIN BACKUPNesse momento copiei os datafiles para o novo servidor.
Enquanto copiava fiz diversos comandos DML para encher os logs.ALTER DATABASE END BACKUP;
3. ALTER DATABASE BACKUP CONTROLFILE TO ‘/u02/back/control1.bak’;
4. CREATE PFILE FROM SPFILE;
5. ALTER SYSTEM ARCHIVE LOG CURRENT;
(arquivamento dos dados em redo log)5. Backup da pasta inteira dos archives logs.
RESTORE/RECOVER
Fiz os mesmos passos como falado acima, verifiquei diretórios, restaurei controlfiles, restaurei datafiles, e iniciei a instância com parametro de inicialização.
A diferença foi quando emitir o comando:RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
o ORACLE me pediu meus archives apliquei, e o mesmo concluiu o recover bastando apenas abrir o banco de dados como:
ALTER DATABASE OPEN RESETLOGS;
Nesse momento, foi criado meus redo logs e aberto o banco de dados.Conclusão, eu fiz o processo correto?, ou está algo errado, aceito sugestões para melhor entendimento do processo, e se eu perder todos os meus redologs ativos, meu banco estaria em inconsistente e meus archives não serviriam de nada?
Galera quem puder me ajudar a entender melhor esse processo, tentei simular um ambiente de produção, fico muito grato, bom dia a todos os senhores.
Abraço.10 de setembro de 2009 às 7:05 pm #89560vieri
ParticipanteFaltou vc fazer o switch dos redo-log’s …
alter system archive log current ;
repita o procedimento mas inclua essa clásula no inicío do backup.
Em backup Hot o switch é uma ótima prática!!
😉10 de setembro de 2009 às 7:34 pm #89565Frango
ParticipanteOla Vieri, obrigado por responder meu tópico.
Deixa eu entender, você aconselha fazer um:
ALTER SYSTEM ARCHIVE LOG CURRENT;
No inicio do backup?…. Mas eu faço no termino, não tem o mesmo efeito não?.. pois os blocos alterados desde do inicio eu arquivo e copio eles certo ?Outra pergunta, dessa forma eu não preciso de nenhuma informação que está nos redo logs, ae posso usar esse backup para restaurar em outra máquina correto ?
Atenciosamente,
Abraço.11 de setembro de 2009 às 12:31 am #89578vieri
ParticipanteIsso !!!
antes mesmo do begin backup …
que ai esse redo estará registrado no controlfile como arquive,
(e foi este archive que fez falta no seu restore)
portando estando incluso no seu backup hot.tente denovo com o switch no inicio e veja se consegue!
13 de setembro de 2009 às 3:53 am #89631Frango
ParticipanteOlá Vieri, Conseguir fazer o recover, mesmo emitindo o
ALTER SYSTEM ARCHIVE LOG CURRENT depois do termino do backup, mais ainda tenho dúvidas se puder me ajudar fico muito grato.
Exemplo:1 ) 13:00 – ALTER SYSTEM ARCHIVE LOG CURRENT
As transações que estão nos redo logs irão ser arquivas
2) 13:01 – INÍCIO DO BACKUP FULL
13:02 …. … DML , DML
13:03 … …. … DML , DML
3) 13:20 – TERMINO DA CÓPIA DE TODOS OS DATAFILES.
4) 13:21 – BACKUP DO CONTROLFILE
5) 13:22 – ALTER SYSTEM ARCHIVE LOG CURRENT;
Pelo que eu entendi, no momento do backup do controlfile ele “sabe” que o banco de dados está inconsistente e que precisa de RECOVER. No Momento de restore/recover o controlfile irá precisar de recover desde do INÍCIO DO BACKUP. Então ele irá precisar de todas as transações a partir desse período, isso ele irá encontrar nos arquives que são arquivados no passo 5. correto ?
Porque arquivar no inicio sendo que teremos mais transações para aquivar?
Agradeço a atenção, realmente gostaria de entender melhor os conceitos de backup e recover, obrigado pela ajuda amigo.
Abraço.
14 de setembro de 2009 às 7:48 pm #89658Frango
ParticipanteBoa tarde, alguma sugestão ?
14 de setembro de 2009 às 10:11 pm #89668Rodrigofs
ParticipanteOla amigo, pelo fato de você ter arquivado as ultimas transações no final do backup, você conseguirá fazer o recover, pois as transações que foram feitas no “periodo” do backup serão aplicadas pelos archives.
O que o vieri disse está correto,e serve como uma boa prática, será menos archives para aplicar no processo de recover, pois o que está nos redo logs antes do inicio do backup será aquivado e escrito pelo DWR nos datafiles.
Lembrando que deve ser arquivado no inicio e no fim como foi dito antes.Espero ter ajudado,
Rodrigo Santana.
-
AutorPosts
- Você deve fazer login para responder a este tópico.