Acabei redigitando este artigo pois teve muita gente que ficou com duvidas.
Vamos lá Rman por incrível que pareca é fácil.
Serio é fácil.
Mas tem muita gente que por ter uma estrutura mega power utiliza o catalago dos backup em outro servidor.
O catalago de backup é o "mapa" que o Rman utiliza para controlar os backups.
Isto tem logica, porque se o próprio servidor que deu pau perdeu o mapa\catalogo como você vai recupera o banco sem o catalogo daquele servidor.
Mas quando somos pobrezinhos temos que nos adaptar.....
Assim eu utilizo o seguinte :
Deixo o catalago de recuperação no próprio servidor só que quando realizo o backup levo o catalago o spfile "configurações do banco" e mais os dados.
Logo faco backup de tudo, ou quase tudo.
Para isto utilizo 8 script sendo um script principal que chama conforme o dia da semana o script daquele dia.
Só um detalhe como seguro morreu de velho também faço um "backup" utilizando o export / import (datadump)
Isto na verdade é o que a Oracle indica um backup com export e um com Rman diariamente.
Pode adaptar o script abaixo para suas necessidades.
--------------------------------------------- script que deve ser configurado no crontab -------------------------------
#!/bin/sh
cd /home/oracle
source .bash_profile
DIA=`date +'%w'`
clear
cont=0
if [ $DIA -eq 0 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Domingo *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo " *** MOVENDO BACKUP COM EXPORT PARA SERVIDOR DE BACKUP *** "
echo " *** ASSSUMO QUE VOCE TENHA UM PONTO DE MONTAGEM TIPO /BACKUP *** "
echo " *** QUE PODE ESTAR MAPEADO NO SERVIDOR DE BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
echo .
echo " *** GERANDO O BACKUP COMO RMAN *** "
echo .
rman target / @domingo.sh
echo .
echo " *** ZIPANDO O BACKUP E DELETANDO OS ARQUIVOS NÃO ZIPADOS *** "
echo .
zip /backup/domingo/domingo.zip /backup/domingo/*.rman
rm -rf /backup/domingo/*.rman
rm -rf /backup/segunda/*.*
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** MANUTENCAO SEMANAL TODOS OS DOMINGOS *** "
echo " *** *** "
echo " *********************************************** "
exit
fi
if [ $DIA -eq 1 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE segunda *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
rman target / @segunda.sh
# zip /backup/segunda/segunda.zip /backup/segunda/*.rman
#rm -rf /backup/segunda/*.rman
rm -rf /backup/terca/*.*
exit
fi
if [ $DIA -eq 2 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Terca *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
rman target / @terca.sh
zip /backup/terca/terca.zip /backup/terca/*.rman
rm -rf /backup/terca/*.rman
rm -rf /backup/quarta/*.*
exit
fi
if [ $DIA -eq 3 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Quarta *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
rman target / @quarta.sh
zip /backup/quarta/quarta.zip /backup/quarta/*.rman
rm -rf /backup/quarta/*.rman
rm -rf /backup/quinta/*.*
exit
fi
if [ $DIA -eq 4 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Quinta *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
rman target / @quinta.sh
zip /backup/quinta/quinta.zip /backup/quinta/*.rman
rm -rf /backup/quinta/*.rman
rm -rf /backup/sexta/*.*
exit
fi
if [ $DIA -eq 5 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Sexta *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
rman target / @sexta.sh
zip /backup/sexta/sexta.zip /backup/sexta/*.rman
rm -rf /backup/sexta/*.rman
rm -rf /backup/sabado/*.*
exit
fi
if [ $DIA -eq 6 ]; then
clear
echo "."
echo "."
echo " *********************************************** "
echo " *** *** "
echo " *** REALIZANDO BACKUP DE Sabado *** "
echo " *** SERVIDOR *** "
echo " *** *** "
echo " *** SLHCRMORA. *** "
echo " *** *** "
echo " *********************************************** "
echo "."
echo "."
echo " *** GERANDO BACKUP *** "
mv /u01/app/oracle/admin/<< SID >>/dpdump/*.dmp /backup
rman target / @sabado.sh
zip /backup/sabado/sabado.zip /backup/sabado/*.rman
rm -rf /backup/sabado/*.rman
rm -rf /backup/domingo/*.*
exit
fi
-------------------------------------------------- script referente a segunda e so copiar e adapatar para os outros dias da semana.
run {
ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/backup/segunda/Backup_%d_%t_%s.rman';
backup full database;
backup archivelog all delete input;
backup spfile format '/backup/segunda/spfile_%d_%t_%s.rman';
backup current controlfile format '/backup/segunda/controlfile_ctl_%d_%t_%s.rman';
crosscheck backup;
crosscheck archivelog all;
DELETE noprompt archivelog all;
}
------------------------------------------------- Procedimentos de recuperação
Lembrando não esqueça de ter o DBID do banco sempre anotado
<< SID >> (DBID=696969696969)
RMAN> SET DBID=3525717385
RMAN> startup nomount
RMAN> restore spfile to '/backup/segunda/spfile_<< SID >>_926094222_808.rman' FROM AUTOBACKUP;
RMAN> restore controlfile from '/backup/segunda/controlfile_ctl_<< SID >>_926094223_809.rman';
RMAN> alter database mount;
RMAN> CROSSCHECK BACKUP;
RMAN> CROSSCHECK COPY;
RMAN> CROSSCHECK backup of controlfile;
RMAN> CROSSCHECK archivelog all;
RMAN> DELETE EXPIRED BACKUP;
RMAN> delete obsolete device type disk;
RMAN> list backup;
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open resetlogs;
NOTA
Como você pode perceber algumas linhas da recuperação acima não são necessárias coloquei para quem esteja começando tenha maior conhecimento.
Alem do fato que que os sufixos devem ser revistos né....
OUTRO PONTO IMPORTANTE É QUE SE VOCÊ ESTA RECUPERANDO EM OUTRO AMBIENTE TIPO OUTRO SERVIDOR E O MESMO POSSUI CONFIGURAÇÃO DE MEMORIA POR EXEMPLO DIFERENTE DO SERVIDOR ORIGEM QUANDO VOCÊ FOR RESTAURA O SPFILE ( restore spfile to '/backup/segunda/spfile_<< SID >>_926094222_808.rman' FROM AUTOBACKUP; ) CERTAMENTE POSSIVELMENTE E INFELIZMENTE TERÁ QUE RECONFIGURA ALGUMAS COISAS NO SEU AMBIENTE.
Obs : Caso receba uma mensagem de erro no recover database :
não foi possível encontrar log de arquivamento
thread do log de arquivamento=1 seqüência=58
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: falha do comando recover em 01/01/2012 15:13:48
RMAN-06054: recuperação de mídia solicitando log desconhecido:
thread 1 seq 21516 scn mais baixo 7836163730214
Portanto, deveremos recuperar o banco de dados ignorando a seqüência de redo log 58 conforme demonstrado abaixo:
RMAN> recover database until sequence 21516;