Bom Dia Ederson,

Muito obrigado pelas dicas. Irei simular um backup com o RMAN.

 

E sobre o problema que estava tendo, consegui resolver, o backup estava com
problemas, restaurei de um dia anterior e consegui da forma rustica a
restauração do banco.

 

Obrigado a todos,

 

Ednilson

 

De: [email protected] [mailto:[email protected]] Em
nome de ederson2001br
Enviada em: quinta-feira, 5 de dezembro de 2013 15:10
Para: [email protected]
Assunto: RES: [oracle_br] Re: ORA-01195: online backup of file

 

  

Blz Edinilson, vamos lá então.

Vou direto ao ponto: é apenas um pontapé inicial prá vc. Não considere como
roteiro de trabalho, pois em uma pesquisa rápida no Google e vc terá quilos
de material.

Primeiro, para agendar no crontab (exemplo da minha base de testes):

oracle@hom> crontab -e
# ----------------------------------------------------------
# Agendamento de backup RMAN do servidor de testes
# 28/03/2012 - Ederson Elias
# ----------------------------------------------------------
#
# Backup diario noturno (20h de segunda a sabado) - Base HOM
00 20 * * 1-6 /home/oracle/bkp02_rman.sh

#
# Backup semanal, remove backup obsoletos (10h de domingo) - Base HOM
00 10 * * 7 su /home/oracle/bkp03_rman.sh

--> Abaixo, segue o arquivo dos scripts
--Coloque o SID do seu banco no local indicado por ??????
#!/bin/bash
# bkp03_rman.sh ############################################################
#
# Backup semanal no domingo, remove backups obsoletos
#
############################################################################
ORACLE_SID=??????
ORACLE_HOME=/opt/oracle10gR2/product/10.2/db_1
PATH=/opt/oracle10gR2/product/10.2/db_1/bin
rman target=/ log=/home/oracle/bkp03_rman.log << EOF
RUN {
BACKUP AS COMPRESSED BACKUPSET incremental level 0 DATABASE PLUS ARCHIVELOG
delete all input;
delete noprompt obsolete;
}
EXIT;
EOF

--Coloque o SID do seu banco no local indicado por ??????
#!/bin/bash
# bkp02_rman.sh ############################################################
#
# Backup diario incremental, sem remocao de backupsets ou archives.
#
# Obs: devido ao OPTIMIZATION ligado e a politica REDUNDANCY 1, os arquivos
# copiados em um dia, nao sao copiados novamente nos proximos dias da semana
# -- PODE AGENDAR PARA RODAR MAIS DE UMA VEZ POR DIA
# POIS INTERFERE POUCO NO USO NORMAL DO BANCO
############################################################################
ORACLE_SID=??????
ORACLE_HOME=/opt/oracle10gR2/product/10.2/db_1
PATH=/opt/oracle10gR2/product/10.2/db_1/bin
rman target=/ log=/home/oracle/bkp02_rman.log << EOF
RUN {
BACKUP incremental level 1 DATABASE PLUS ARCHIVELOG;
}
EXIT;
EOF

--> Chamar o RMAN pela linha de comando:
oracle@hom> export ORACLE_SID=informe_o_sid
oracle@hom> rman target=/

--> configurar o RMAN:
--> no caso, /backup/local é um HD/área exclusivo para backup

-- serão mantidas duas cópias de cada datafile
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

-- com a otimização ligada, os archives serão gravados somente uma vez. No
caso do backup incremental, 
-- com limpeza somente uma vez na semana, isto evita copiar o arquivo sem
necessidade
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

-- faz a cópia do controlfile após o fim do backup, um arquivo com esta
máscara: c-dbid_do_banco-YYYYMMDD-00
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/backup/local/%F';

-- se o seu banco é Enterprise, o recurso de paralelismo agiliza bastante,
mude para 2 ou 3 abaixo
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED
BACKUPSET; 

-- gravar o backup no local indicado, quebrando em arquivos de 4G cada,
exemplo:
--kfoqdmhe_1_1
--kfoqdmhe_2_1
--kfoqdmhe_3_1
--kfoqdmhe_4_1
--kfoqdmhe_5_1
--kfoqdmhe_6_1
--kfoqdmhe_7_1
--kfoqdmhe_8_1
--kfoqdmhe_9_1
--kfoqdmhe_10_1
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/local/%U'
MAXPIECESIZE 4 G;

--> ver as outras configurações:
oracle@hom> show all;

--> Ponto importante:
O Rman não faz cópia de: 
Arquivos init.ora
Arquivos de redo logs
Arquivos executáveis/binários do Oracle
Arquivos de senhas (pw????.ora)

--> Links recomendados (mestre Eduardo Legatti)
http://eduardolegatti.blogspot.com.br/2010/10/estrategia-de-backup-rman.html
http://eduardolegatti.blogspot.com.br/2012/07/rman-backup-incremental-cumula
tivo-vs.html
http://eduardolegatti.blogspot.com.br/2012/01/restaurando-e-recuperando-um-b
anco-de.html

--> Links recomendados (mestre Fabio Prado)
http://www.fabioprado.net/2011/03/serie-rman-parte-1-entendendo-o-rman.html
http://www.fabioprado.net/2011/04/recuperando-dados-com-o-rman-utilizando.ht
ml

--> Links recomendados (mestre Rodrigo Almeida)
http://www.rodrigoalmeida.net/blog/uma-visao-geral-sobre-backup-recover/
http://www.rodrigoalmeida.net/blog/apresentacao-enpo-rman-vilao-ou-heroi/

--> Links recomendados (mestre Ricardo Portilho)
http://nervinformatica.ddns.com.br:8080/blog/?p=3263 (quem disse que o RMAN
não tem interface gráfica?)

Prá começar, assim vc já faz o backup. 

##########################################################

Para o RESTORE, fase 2, basicamente precisa identificar:
-Vc tem backup? consistente/completo?
-O que vc perdeu? identificar precisamente o que será restaurado
-No servidor a restaurar backup já tem banco rodando ou será clone?
-Em caso de novo server, identificar a compatibilidade entre a origem e
destino do backup (versão do SO e versão do Oracle/Rman, charset)

--Basicamente, um restore FULL é assim:
oracle@hom> cd $ORACLE_HOME/dbs
oracle@hom> export NLS_LANG=.UTF8
oracle@hom> export ORACLE_SID=HOM
oracle@hom> rman target=/
RMAN> set dbid 822974043 --> no caso de nova base, um clone
RMAN> startup pfile='/opt/oracle/product/10.2/db_1/dbs/pfilehom.ora' nomount
force; 
RMAN> set controlfile autobackup format for device type disk to
'/backup/hom/%F';
RMAN> RESTORE CONTROLFILE TO
'/opt/oracle/product/10.2/db_1/dbs/control_hom_01.ora' FROM AUTOBACKUP
db_name='hom';
RMAN> startup pfile='/opt/oracle/product/10.2/db_1/dbs/pfilehom.ora' mount
force;
RMAN> catalog start with '/backup/hom';

--Recover do backup
RMAN> crosscheck archivelog all;
RMAN> crosscheck backup;
RMAN> crosscheck backup of database; 
RMAN> delete expired archivelog all;
RMAN> delete expired backup;
RMAN> delete obsolete;

RMAN> list backup of archivelog all; --> para informar SEQUENCE e TREAD no
comando de recover mais abaixo

RMAN> shutdown;
RMAN> startup pfile='/opt/oracle/product/10.2/db_1/dbs/pfilehom.ora' mount ;
RMAN> run
{
set until sequence 155230 thread 1;
restore database;
switch datafile all;
recover database;
alter database open resetlogs;
}

[]'s

Ederson Elias
DBA Oracle
http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
------------
Labor improbus omnia vincit

--- Em [email protected], "Ednilson Silva" <ednilson.silva@...>
escreveu
>
> Ederson,
> 
> Já que se ofereceu, eu aceito sim uma ajuda com RMAN, pelo menos algo para
> iniciar.
> 
> Comecei uma pesquisa para começar a implementar o RMAN, mas sempre surge
> algo para ontem.
> 
> 
> 
> Grato,
> 
> 
> 
> Ednilson



Responder a