- Este tópico contém 35 respostas, 3 vozes e foi atualizado pela última vez 15 anos, 2 meses atrás por
mpvargas.
-
AutorPosts
-
3 de janeiro de 2011 às 11:48 pm #97527
mpvargas
ParticipanteCaros amigos,
Fiz um teste no backup RMAN, restaurou blz até o momento de dar o ALTER DATABASE OPEN RESETLOGS…
Agora estou literalmente “correndo atrás do rabo” e não consigo achar solução. Já dropei o catalogo e criei novamente, mas o problema persiste.-bash-3.00$ ./rman
Recovery Manager: Release 10.2.0.1.0 – Production on Mon Jan 3 17:45:12 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect catalog rman/password@rman
connected to recovery catalog database
RMAN> connect target /
connected to target database: asoec10 (not mounted)
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 01/03/2011 17:45:37
ORA-01507: database not mountedRMAN> ALTER DATABASE MOUNT;
database mounted
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 01/03/2011 17:45:51
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20001: target database not found in recovery catalogRMAN> register database;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of register command at 01/03/2011 17:45:58
RMAN-08040: full resync skipped, control file is not current or backup4 de janeiro de 2011 às 12:00 am #97528mpvargas
ParticipanteApós algumas tentativas, cheguei numa nova situação:
RMAN> RECOVER DATABASE;
Starting recover at 03-JAN-11
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 01/03/2011 17:59:25
RMAN-12010: automatic channel allocation initialization failed
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20003: target database incarnation not found in recovery catalog4 de janeiro de 2011 às 12:01 am #97529mpvargas
ParticipanteJá usei o comando RESET DATABASE mas o erro persiste.
4 de janeiro de 2011 às 2:59 pm #97530Ricardo Portilho Proni
ParticipanteParece que CF também foi restaurado, correto?
Você precisa executar SET DBID após conectar no RMAN com CATALOG. Restaure o CF, depois o DATABASE.4 de janeiro de 2011 às 3:14 pm #97531mpvargas
ParticipanteFala Ricardo, td blz
Primeiramente feliz 2011 !!!Com relação ao RMAN, eu fiz esses procedimentos…
Setei o DBID, restaurei CF e restaurei o Database.Agora estou nesse ponto
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20003: target database incarnation not found in recovery catalogPesquisei e vi que as opções são: Unregister database / Register database ou Reset Database… mas sempre volto para o mesmo problema.
4 de janeiro de 2011 às 3:23 pm #97533Ricardo Portilho Proni
ParticipanteFeliz 2011!!!
E LIST INCARNATION, mostra o que?4 de janeiro de 2011 às 4:03 pm #97535mpvargas
ParticipanteRMAN> LIST INCARNATION;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
1581 1588 ASOEC10 467626776 PARENT 1 22-OCT-05
1581 1582 ASOEC10 467626776 CURRENT 525876 16-MAR-094 de janeiro de 2011 às 6:51 pm #97536Ricardo Portilho Proni
ParticipanteFerrou, vc só tem provavelmente uma incarnação válida, a outra é da instalação do DB.
Liste os Backups que vc tem e coloca aqui.
Mais que isso, só abrindo com _allow_resetlogs_corruption.4 de janeiro de 2011 às 8:20 pm #97540mpvargas
ParticipanteNão tem problema Ricardo… na verdade estou fazendo um teste de restore do RMAN num outro host, nesse caso vou deletar esse banco e fazer novamente… acho que depois de tantas tentativas de corrigir o problema, acabou piorando as coisas…
Muito Obrigado pela ajuda.4 de janeiro de 2011 às 8:40 pm #97541Ricardo Portilho Proni
ParticipanteIsso, faz de novo o BACKUP e RESTORE, não tem porque dar errado! Deve ter sido só um azar.
Posta aqui o procedimento de BACKUP e RECOVER!5 de janeiro de 2011 às 4:03 pm #97556mpvargas
ParticipanteRicardo, segue os procedimentos de backup e restore
BACKUP
connect catalog rman/password@rman
connect target /
run {
crosscheck archivelog all;
delete noprompt obsolete;
allocate channel ch1 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch2 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch3 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch4 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
backup as compressed backupset database include current controlfile;
backup spfile;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
}RESTORE
SQL > startup nomount;RMAN> connect catalog rman/password@rman RMAN> connect target / RMAN> set DBID 999999999 RMAN> restore controlfile from '/logs/bkprman/xxx.bkp';RMAN> ALTER DATABASE MOUNT;
RUN {
ALLOCATE CHANNEL C1 DEVICE TYPE DISK;
ALLOCATE CHANNEL C2 DEVICE TYPE DISK;
ALLOCATE CHANNEL C3 DEVICE TYPE DISK;
ALLOCATE CHANNEL C4 DEVICE TYPE DISK;
set newname for datafile 1 to ‘/u01/app/oracle/oradata/asoec10/system01.dbf’;
set newname for datafile 2 to ‘/u01/app/oracle/oradata/asoec10/undotbs01.dbf’;
set newname for datafile 3 to ‘/u01/app/oracle/oradata/asoec10/sysaux01.dbf’;
set newname for datafile 4 to ‘/u01/app/oracle/oradata/asoec10/users01.dbf’;
set newname for datafile 5 to ‘/logs/tbsasoec10/dados01/dados01.dbf’;
set newname for datafile 6 to ‘/backup/tbsasoec10/dados02/dados02.dbf’;
set newname for datafile 7 to ‘/backup/tbsasoec10/dados03/dados03.dbf’;
…
set newname for datafile 26 to ‘/backup/tbsasoec10/indices07/indices07.dbf’;
set newname for datafile 27 to ‘/backup/tbsasoec10/dados15/dados15.dbf’;
RESTORE DATABASE;
RECOVER DATABASE ;
ALTER DATABASE OPEN RESETLOGS;
switch datafile all;
release channel C1;
release channel C2;
release channel C3;
release channel C4;
}Dúvida:
Sempre que eu restauro é necessário um ou mais archivelogs para restaurar por completo. Existe uma forma de colocar junto do backup rman os archivelogs necessários para ele completar o restore? E caso eu queira um ponto mais pra frente, eu inclua novos archivelogs?
Tb tenho uma dúvida com relação aos redo logs… é necessário copiá-los ou podemos usar os da nova base de dados e o comando resetlogs sincroniza com o banco.Obrigado pela ajuda.
5 de janeiro de 2011 às 4:25 pm #97557CleitonHanzen
ParticipanteOpá…
Desculpe a intromissão…rsrsrsrsrsrs
Respondendo as suas perguntas:
“Existe uma forma de colocar junto do backup rman os archivelogs necessários para ele completar o restore?”
Sim. Existem várias formas, as mais comuns são adicionar no comando de backup database, a cláusula “plus archivelog”. Outra forma, é no mesmo bloco run {…} Adicionar um comando como “backup archivelog all delete all input”
“E caso eu queira um ponto mais pra frente, eu inclua novos archivelogs? ”
Você tendo um backup full integro e todos os archivelogs gerados após este backup full, você irá conseguir restaurar o banco para qualquer dia/hora/minuto/segundo que você quiser, isso se dá através da claúsula “set until”. Este restore também é chamado de incomplete restore (você não estará retornando o banco ao seu estado atual, irá retorná-lo em algum ponto no passado)..
“Tb tenho uma dúvida com relação aos redo logs… é necessário copiá-los ou podemos usar os da nova base de dados e o comando resetlogs sincroniza com o banco. ”
Os redo-logs somente serão usados no caso de um complete restore, ou seja, se você restaurar o banco até o estado atual, as últimas alterações geradas no banco serão recuperadas dos redos, não mais dos archives logs.
Ahh, e mais uma coisa: Sobre este teu comando de restore, o “switch datafile all” precisa estar entre o restore/recover, depois de abrir o banco não adianta mais, haja visto, que o controlfile já terá gravado a localização dos datafiles….
Me corrijam, se eu estiver errado…. 😉
[]s
5 de janeiro de 2011 às 4:29 pm #97558Ricardo Portilho Proni
ParticipanteO SWITCH deve ser antes do RECOVER, acho que este é o problema.
5 de janeiro de 2011 às 5:29 pm #97559mpvargas
ParticipanteDessa forma então
RESTORE DATABASE;
switch datafile all;
RECOVER DATABASE ;5 de janeiro de 2011 às 5:35 pm #97560mpvargas
ParticipanteCleiton, obrigado pela ajuda.
Esclareceu as minhas dúvidas…
Eu estava preocupado porque nesse teste que eu estava fazendo ele estava pedindo os archives… aí eu fiquei pensando num caso de “crash” da máquina, como eu faria para copiar esses archives… não seria possível…
Eu quero criar um bkp rman que restaure o banco por completo, no caso, até o horário que foi feito…
Sendo assim, de acordo com sua dica, devo alterar meu script conforme abaixo, incluindo o backup dos archives.connect catalog rman/password@rman
connect target /
run {
crosscheck archivelog all;
delete noprompt obsolete;
allocate channel ch1 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch2 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch3 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
allocate channel ch4 type disk format ‘/logs/bkprman/%d_%t_%s_%r.bkp’;
backup as compressed backupset database include current controlfile;
backup spfile;
backup archivelog all delete all input;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
} -
AutorPosts
- Você deve fazer login para responder a este tópico.