- Este tópico contém 27 respostas, 6 vozes e foi atualizado pela última vez 17 anos, 1 mês atrás por
Rodrigo Almeida.
-
AutorPosts
-
20 de janeiro de 2009 às 9:01 pm #84815
jspaulonci
ParticipantePessoal, não achei o power point do Rodrigo Almeida na seção de downloads, alguem pode me dar uma dica
Spaulonci
20 de janeiro de 2009 às 9:19 pm #84816David Siqueira
ParticipanteJoão mandei a apresentação no seu email já, no do GMAIL, dê uma olhadinha.
Abcs
20 de janeiro de 2009 às 9:45 pm #84818jspaulonci
ParticipanteObrigado David, porem estou com dúvida agora
Eu executei o comando restore database preview e não entendi o output, alguem pode me ajudar a interpreta-la ?Obrigado
RMAN> restore database preview;
Iniciando restore em 20/01/09
utilizando o canal ORA_DISK_1Lista de Conjuntos de Backup
BS Key Type LV Size Device Type Elapsed Time Horßrio de ConclusÒo
5576 Full 1.67G DISK 00:04:22 20/01/09
Chave BP: 5579 Status: AVAILABLE Compactado: NO Tag: TAG20090120T151327
Nome do Componente: C:BANCOSBACKUPSBKP_DB_ORCL1_S_146_P_1_T_676653208
Lista de Arquivos de Dados no conjunto de backup 5576
File LV Type Ckp SCN Tempo de Verif. Name
1 Full 1124990832992 20/01/09 C:BANCOSORCL1ORCL1SYSTEM01.DBF
2 Full 1124990832992 20/01/09 C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF
3 Full 1124990832992 20/01/09 C:BANCOSORCL1ORCL1SYSAUX01.DBF
5 Full 1124990832992 20/01/09 C:BANCOSORCL1ORCL1PAC1_01
6 Full 1124990832992 20/01/09 C:BANCOSORCL1ORCL1USERS2.DBFlogs de arquivamento gerados ap¾s SCN 1124990832992 nÒo encontrados no reposit¾rio
SCN inicial de recuperaþÒo de mÝdia Ú 1124990832992
A recuperaþÒo deverß ser feita acima do SCN 1124990832992 para remover difusÒo dos arquivos de dados
Finalizado restore em 20/01/0921 de janeiro de 2009 às 4:26 am #84848Rodrigo Almeida
ParticipanteJoão Paulo,
Vamos lá interpretar o resultado.
O comando RESTORE DATABASE PREVIEW ele tem como finalidade verificar se realmente seu último backup é realmente recuperável, ou seja, se seu último backup irá lhe ajudar a recuperar o banco de dados ou terá problemas.
Pode perceber que ele lê o seu último backup, analisa os datafiles, atualmente você tem somente 5 datafiles + 1 tempfile, e verifica os SCNs de cada datafile, como o seu banco de dados éstá em ARCHIVELOG e você fez um backup full com o banco de dados online, ele analisa cada header dos datafiles e compara com os archivelogs gerados durante o processo de backup e pós backup.
Ele irá necessitar de uma determinada sequência de backup pois será necessário igual os valores de scn (System Change Number) para uma valor consistente, ou seja, onde as transações que foram executadas foram comprometidas com segurança e não terá perda de dados.
A mensagem final do seu PREVIEW, que diz para você poder recuperar o banco de dados após um determinado SCN, é justamente para conseguir deixar o seu banco de dados consistente e abrir com o RESETLGOS.
Caso você não tenha esses archives, durante o processo de recover poderá ter problemas de datafile inconsistente na SYSTEM ou em algum datafile de dados do aplicativo, por esse motivo de garantir a consistência dos dados durante o processo de recover.
Por isso que é sempre bom, ao fazer o backup full primeiro e posteriormente o seus archives.
Faça um teste:
Faça um BACKUP FULL DATABASE e posteriormente BACKUP ARCHIVELOG ALL.
Depois,
RMAN> BACKUP DATABASE VALIDATE;
Para o RMAN validar o seu backup!
E depois
RMAN> RESTORE DATABASE PREVIEW
ou
RMAN> RESTORE DATABASE PREVIEW SUMMARY;
O Summary ele irá apenas informar no ouput se está OK para restauração e caso tenha problema como acima nos SCNs, lhe informar o valor para recuperação, de modo sumarizado. Não apontando os datafiles.
Certinho! Façam os testes e postem os resultados.
Marcelo,
No seu problema, faça backup dos seus archives com o RMAN para ter resultados no LIST BACKUP OF RCHIVELOG ALL.
Abraços,
Rodrigo Almeida21 de janeiro de 2009 às 4:38 am #84851Rodrigo Almeida
ParticipanteObrigado David por ter enviado ao João. =D
Aqui segue o link para o PPT sobre RMAN.
https://www.profissionaloracle.com.br/modules.php?name=Downloads&op=getit&lid=2306
Abraços,
Rodrigo Almeida21 de janeiro de 2009 às 1:23 pm #84852jspaulonci
ParticipanteBom dia amigos, agradeço aqui o Rodrigo de antemão pela explicação e também ao David que com muita atenção me enviou a apresentação do Rodrigo, bem…fiz o que o Rodrigo me pediu e o spool foi
Rodrigo você pode me dizer porque ele fez referência a um arquivo da minha área de flash ?
Spaulonci
RMAN> BACKUP VALIDATE DATABASE ;
Iniciando backup em 21/01/09
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados no conjunto de backups
fno=00002 name=C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF do arquivo de dados de entrada
fno=00006 name=C:BANCOSORCL1ORCL1USERS2.DBF do arquivo de dados de entrada
fno=00001 name=C:BANCOSORCL1ORCL1SYSTEM01.DBF do arquivo de dados de entrada
fno=00003 name=C:BANCOSORCL1ORCL1SYSAUX01.DBF do arquivo de dados de entrada
fno=00005 name=C:BANCOSORCL1ORCL1PAC1_01 do arquivo de dados de entrada
canal ORA_DISK_1: conjunto de backups concluÝdo, tempo decorrido: 00:00:56
Finalizado backup em 21/01/09RMAN> backup validate database archivelog all;
Iniciando backup em 21/01/09
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados no conjunto de backups
fno=00002 name=C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF do arquivo de dados de entrada
fno=00006 name=C:BANCOSORCL1ORCL1USERS2.DBF do arquivo de dados de entrada
fno=00001 name=C:BANCOSORCL1ORCL1SYSTEM01.DBF do arquivo de dados de entrada
fno=00003 name=C:BANCOSORCL1ORCL1SYSAUX01.DBF do arquivo de dados de entrada
fno=00005 name=C:BANCOSORCL1ORCL1PAC1_01 do arquivo de dados de entrada
canal ORA_DISK_1: conjunto de backups concluÝdo, tempo decorrido: 00:00:56
canal ORA_DISK_1: iniciando conjunto de backups de log de arquivamento
canal ORA_DISK_1: especificando log(s) de arquivamento no conjunto de backups
log de arquivamento thread de entrada=1 seq³Ûncia=274 id reg.=244 marcaþÒo=676710485
canal ORA_DISK_1: conjunto de backups concluÝdo, tempo decorrido: 00:00:02
Finalizado backup em 21/01/09RMAN> restore database preview;
Iniciando restore em 21/01/09
utilizando o canal ORA_DISK_1Lista de Conjuntos de Backup
BS Key Type LV Size Device Type Elapsed Time Horßrio de ConclusÒo
5677 Full 220.37M DISK 00:01:48 21/01/09
Chave BP: 5681 Status: AVAILABLE Compactado: YES Tag: TAG20090121T070436
Nome do Componente: C:BANCOSBACKUPSBKP_DB_ORCL1_S_151_P_1_T_676710277
Lista de Arquivos de Dados no conjunto de backup 5677
File LV Type Ckp SCN Tempo de Verif. Name
1 Full 1124990915104 21/01/09 C:BANCOSORCL1ORCL1SYSTEM01.DBF
2 Full 1124990915104 21/01/09 C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF
3 Full 1124990915104 21/01/09 C:BANCOSORCL1ORCL1SYSAUX01.DBF
5 Full 1124990915104 21/01/09 C:BANCOSORCL1ORCL1PAC1_01
6 Full 1124990915104 21/01/09 C:BANCOSORCL1ORCL1USERS2.DBFLista de Conjuntos de Backup
Tamanho da Chave BS Tipo de Dispositivo Tempo Decorrido Horßrio de ConclusÒo
5752 1.47M DISK 00:00:02 21/01/09
Chave BP: 5755 Status: AVAILABLE Compactado: YES Tag: TAG20090121T070806
Nome do Componente: C:BANCOSBACKUPSBKP_DB_ORCL1_S_154_P_1_T_676710486Lista de Logs Arquivados no conjunto de backup 5752
Thrd Seq Low SCN Tempo Inferior Next SCN Next Time
1 273 1124990914987 21/01/09 1124990915220 21/01/09
Lista de C¾pias de Log Arquivados
Key Thrd Seq S Tempo Inferior Name
5740 1 274 A 21/01/09 C:ORACLEPRODUCT10.2.0DB_1DATABASEUSE_DB_RECOVERY_FILE_DESTARC00274_0671360236.001
SCN inicial de recuperaþÒo de mÝdia Ú 1124990915104
A recuperaþÒo deverß ser feita acima do SCN 1124990915104 para remover difusÒo dos arquivos de dados
Finalizado restore em 21/01/0921 de janeiro de 2009 às 5:59 pm #84863Rodrigo Almeida
ParticipanteJoão,
No 10g, o FRA (Flashback Area) é incorporada à uma area que podemos chamar “de backup”, os parâmetros db_recovery_file_dest e db_recovery_file_dest_size são tanto para a configuração de destino e tamanho dos arquivos de flashbacklogs, online logs, archives logs, backups pieces (rman), image copys e controlfiles.
O destino desses arquivos no SO, você que pode definir, e o parâmetro db_recovery_file_dest no caminho definido por você irá criar uma pasta com o db_name e organizar todos os arquivos acima em pastas, e subpastas por data, uma coisa bem organizada seguindo o padrão OFA.
Então, como o seu banco de dados está com configuração padrão, os parâmetros apontam para %ORACLE_HOME%database, pois é uma instalação Windows padrão.
E como dito, o RESTORE DATABASE PREVIEW ele irá analisar os backups sets e archives que foram “backpeados” pelo RMAN (Recupera informações do catálogo de recuperação ou controlfile) e posteriormente analisar a sua área de archives (Que está no FRA), ele faz isso, justamente para verificar os SCNs e conseguir realizar uma recuperação consistente como dito anteriormente.
Se der uma olhada na view v$flash_recovery_area_usage, tu consegue acompanhar a utilização do sua área de Flashback Area (FRA), que como dito pode ser utilizado pelo RMAN também.
Como eu disse para o Marcelo, veja no final do seu preview, que ele fornece dois valores para o SCN, são:
Media recovery start SCN is ?????????????????
e
Recovery must be done beyond SCN ?????????????????Esses valores são os representantes de LOW SCN e START SCN dos archives, PORQUE, como seu banco de dados foi feito de modo HOT (online) ele precisa deles para deixa-los de forma consistente. 0% de perda de dados.
Vamos analisar, quer realmente saber quem são esses caras. Inicie o RMAN (pode ser em NOCATALOG) e conecte na base. Exemplo:
[oracle@pelwebs3 adhoc]$ rman target / nocatalog
Agora, pegue os valores que SCN do seu resultado de PREVIEW lhe forneceu, olhe o detalhe abaixo:
SCN inicial de recuperaþÒo de mÝdia Ú 1124990915104
A recuperaþÒo deverß ser feita acima do SCN 1124990915104 para remover difusÒo dos arquivos de dadosEsses são os valores de SCN que precisamos para uma possível operação de RECOVER funcionar e não termos datafiles inconsistentes. Mas quem são esses caras. Faça o seguinte:
RMAN> list backup of archivelog scn between 1124990915104 and 1124990915104;
Primeira Observação:
Veja se exibiu algum archive log para você? Se sim, essas são as suas sequências para efetivar uma operação de recover de modo “limpo”, consistente.
Caso não, não fique com medo, é pq tu ainda não fez o backups dos novos archives que o banco gerou, e ainda estão em disco. Veja quem está em disco ainda:
RMAN> list archivelog all;
Irá aparecer alguns archives.
** Caso seja um banco de dados, emita alguns ALTER SYSTEM SWITCH LOGFILE no SQL*PLUS (Para dar um flush nos grupos de REDO LOG) e gerar alguns archives para melhor entendimento.
Pois bem, Se tem archives ainda em disco, faça um backup deles e emita o comando novamente.
run{
allocate channel t1 type disk format ‘/u02/backup/bkp_archives_%d_%t_%s.rman’;
sql ‘alter system archive log current’;
backup archivelog all delete all input tag ‘bkp_archives’;
release channel t1;
}E novamente:
RMAN> list backup of archivelog scn between 1124990915104 and 1124990915104;
Agora deve aparecer para você os caras que poderão salva a sua vida um dia.
Caso não queira fazer o backup dos archives, então faça:
RMAN> list archivelog scn between 1124990915104 and 1124990915104;
E teráo mesmo efeito, porém com backup é mais garantido porque terá um backup set para eles.
** Se tiver um TEMPINHO
Se tiver mais dúvidas, dá uma olhada nas views abaixo:
v$log, v$logfile, v$archived_log e v$controlfile_record_section
que pode fazer umas brincadeiras…
Abraços,
Rodrigo Almeida27 de janeiro de 2009 às 6:24 pm #84922mpvargas
ParticipanteRodrigo,
Sobre o seu ultimo exemplo “list backup of archivelog scn between 35988047 and 35988048;” eu fiz o teste e não apareceu nada.
Você diz pra não se preocupar e rodar um novo backup.
Isso quer dizer que o meu backup está inconsistente ou que ele só vai conseguir recuperar até o ultimo archivelog que ele tem arquivado?
No meu caso, eu uso linux e tenho um script que roda durante alguns horários e faz a cópia dos archivelogs para uma outra máquina.
Essa cópia que faço pode ser util caso haja um crash do banco? Digo, o RMAN consegue aproveitá-la ou o RMAN só lê os archivelogs que estão no seu catálogo?
Obrigado pela ajuda.27 de janeiro de 2009 às 7:51 pm #84924Rodrigo Almeida
ParticipanteÉ rodar um BACKUP DO ARCHIVELOS, pq quando tu realizar um LIST BACKUP OF ARCHIVELOG, ele irá procurar no cátalogo do RMAN pelos SCNs correspondentes aos archives, agora, seão, faça SOMENTE LIST ARCHIVELOG que ele irá verificar os archives em disco, pois eles deixaram o seu backup consistente.
Abraços,
Rodrigo Almeida27 de janeiro de 2009 às 8:44 pm #84926mpvargas
Participante$ cat rman_bkp.cmd
connect catalog rman/password@rman
connect target /
run {
crosscheck archivelog all;
delete noprompt obsolete;
allocate channel ch1 type disk format ‘/home/oracle/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch2 type disk format ‘/home/oracle/bkprman/%d_%t_%s_%r.bkp’;
backup as compressed backupset database include current controlfile;
backup spfile;
release channel ch1;
release channel ch2;
}O meu script de backup é assim.
Seria recomendável colocar a opção de copiar os archivelogs junto com o backup? Como faço isso?
Obrigado27 de janeiro de 2009 às 10:22 pm #84933Rodrigo Almeida
ParticipanteMarcelo,
Pode adicionar os comandos abaixo para deixar mais completo.
$ cat rman_bkp.cmd
connect catalog rman/password@rman
connect target /
run {
crosscheck archivelog all;
delete noprompt obsolete;
allocate channel ch1 type disk format ‘/home/oracle/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch2 type disk format ‘/home/oracle/bkprman/%d_%t_%s_%r.bkp’;
backup as compressed backupset database include current controlfile;
backup spfile;
[b]sql ‘alter system archive log current’;
backup as compressed backupset archivelog all delete all input tag ‘archives’;[/b]
release channel ch1;
release channel ch2;
}[/b]27 de janeiro de 2009 às 10:34 pm #84935David Siqueira
ParticipanteAi sim hein rodrigão, uma instrução sql dentro do próprio RMAN script pra garantir que o ultimo redo corrente seja arquivado, evitando assim ter que recorrer a um RECOVER DATABASE convencional, onde ele iria ter que ler a informação retida em redo. Como sempre show de bola.
Abcs.
28 de janeiro de 2009 às 2:17 pm #84940Rodrigo Almeida
ParticipanteExato,
Tu força o switch do REDO LOG CURRENT e evita realizar um Cancel Recovery Instance, que aí partiria para a utilização do camarada SQLPLUS.
Abraços,
Rodrigo Almeida -
AutorPosts
- Você deve fazer login para responder a este tópico.