- Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 17 anos atrás por
Emersonmartins.
-
AutorPosts
-
19 de fevereiro de 2009 às 3:26 pm #85374
jspaulonci
ParticipanteBom dia Moçada, fiz um teste caseiro de restore e quero compartilhar com vcs
Eu simulei a perda de todos os meus controlfiles, datafiles e redo logs online, aí eu fiz o restore normal , primeiro restaurei os controlfiles, depois os datafiles, aí eu montei o banco, criei manualmente os redos log, fiz o recover database e abri a base com resetlogs .
Todo esse processo eu fiz usando o RMAN e o sqlplus.Vocês enchergam alguma falha ? eu deixei algo pra trás ?
Obs.: Eu uso o RMAN com catalogo, detalhe, eu não precisei setar o DBID do banco pra voltar o controlfile, será que é porque eu tenho somente um banco registrado no catalogo ?
Obrigado
João Paulo Spaulonci
19 de fevereiro de 2009 às 6:39 pm #85377Rodrigo Almeida
ParticipanteJoão,
Você deletou todos os arquvos do banco de dados mesmo?
Primeiro, o RMAN não faz backup dos arquivos de REDO LOG, só iria precisar utilizar o SQL*PLUS se quiser realizar um RECOVER DATABASE UNTIL CANCEL, onde ele iria ler o seu CURRENT REDO LOG.
Segundo, esse backup foi FULL, pois não preciso dos ARCHIVES?
Terceiro, não estava usando o SPFILE, por isso não fez restore dele?
Quarto, quando se realiza um recover completo por media recover e é necessário um OPEN RESETLOGS, seus grupos de REDO LOG são criados automaticamente, não precisa criar eles. pois o RESETLOGS internamento no Core do Oracle irá zerar o LOG SEQUENCE e escrever isso nos headers dos datafiles e atualizar o seu controlfile.
Quinto, sobre se conectar no catálogo de recuperação sem setar o DBID, é porque tu está na mesma máquina com as variáveis de ambiente configuradas, ou seja, tu está recuperando o seu banco de dados TARGET, não é uma nova base em um novo servidor. Se fosse em um novo servidor e uma cópia banco, seria necessário o SET DBID, para informar ao catálogo de recuperação quais os arquivos necessários, deste modo, no seu exemplo, apenas ao se conectar no RMAN com TARGET / CATALOG e blá blá blá… ele já sabe que tu está recuperando o banco de dados target registrado.
Abraços,
Rodrigo Almeida19 de fevereiro de 2009 às 6:48 pm #85378jspaulonci
ParticipanteBom dia Rodrigo, vou tentar responder tudo pra vc
Você deletou todos os arquvos do banco de dados mesmo?
R: Deletei os controlfiles, dbfs, redo logs online,arquivos temporários, não apaguei o spfile pois ele está na minha flash area. Não apaguei nada da flash áreaPrimeiro, o RMAN não faz backup dos arquivos de REDO LOG, só iria precisar utilizar o SQL*PLUS se quiser realizar um RECOVER DATABASE UNTIL CANCEL, onde ele iria ler o seu CURRENT REDO LOG.
R: Eu sabia que o Oracle não faz backup dos redo logs, porem não sabia que ele os cria na opção resetlogsSegundo, esse backup foi FULL, pois não preciso dos ARCHIVES?
R: Sim foi feito full a quente com o rman.backup as compressed backupset full database plus archivelog delete input;
Terceiro, não estava usando o SPFILE, por isso não fez restore dele?
R: Meu spfile estava na flash area.Quarto, quando se realiza um recover completo por media recover e é necessário um OPEN RESETLOGS, seus grupos de REDO LOG são criados automaticamente, não precisa criar eles. pois o RESETLOGS internamento no Core do Oracle irá zerar o LOG SEQUENCE e escrever isso nos headers dos datafiles e atualizar o seu controlfile.
R Sim…abri com resetlogsQuinto, sobre se conectar no catálogo de recuperação sem setar o DBID, é porque tu está na mesma máquina com as variáveis de ambiente configuradas, ou seja, tu está recuperando o seu banco de dados TARGET, não é uma nova base em um novo servidor. Se fosse em um novo servidor e uma cópia banco, seria necessário o SET DBID, para informar ao catálogo de recuperação quais os arquivos necessários, deste modo, no seu exemplo, apenas ao se conectar no RMAN com TARGET / CATALOG e blá blá blá… ele já sabe que tu está recuperando o banco de dados target registrado.
R: Isso não tinha me vindo na cabeçaFico no aguardo
Obrigado
João Paulo Spaulonci
19 de fevereiro de 2009 às 8:35 pm #85383Rodrigo Almeida
ParticipanteJoão,
Se conseguu contornar todos esses processos, então está conseguindo recuperar eles. Se quiser enfatizar melhor os seus testes, tente realizar um restore e recover em uma nova máquina e instalação, deste modo, tu irá conseguir seguir todos os passos certinhos!
Se tiver mais dúvidas, posta o passo-a-passo feito por você numerado, porque podemos encurtar ele e conforme as dúvidas vão surgindo, vamos postando algumas soluções.
Abraços,
Rodrigo Almeida19 de fevereiro de 2009 às 9:37 pm #85385jspaulonci
ParticipanteRodrigo boa tarde, fez ele fez…mas não gostei , ocorreram erros
C:BANCOSscriptsLOGS>rman target sys/gio2007 catalog=usr_rman/a@rman
Recovery Manager: Release 10.2.0.3.0 – Production on Thu Feb 19 11:49:44 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
connected to recovery catalog databaseRMAN> set dbid 1055037708;
executing command: SET DBID
database name is “ORCL1” and DBID is 1055037708RMAN> startup nomount;
Oracle instance started
Total System Global Area 838860800 bytes
Fixed Size 1293384 bytes
Variable Size 415237048 bytes
Database Buffers 352321536 bytes
Redo Buffers 70008832 bytesRMAN> restore controlfile from autobackup;
Starting restore at 19-FEB-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISKrecovery area destination: C:BANCOSORCL1flash_recovery_area
database name (or database unique name) used for search: ORCL1
channel ORA_DISK_1: no autobackups found in the recovery area
channel ORA_DISK_1: looking for autobackup on day: 20090219
channel ORA_DISK_1: autobackup found: c:bancosbackupscontrolfilecfc-1055037708-20090219-06
channel ORA_DISK_1: control file restore from autobackup complete
output filename=C:BANCOSORCL1ORCL1CONTROL01.CTL
output filename=C:BANCOSORCL1ORCL1CONTROL02.CTL
output filename=C:BANCOSORCL1ORCL1CONTROL03.CTL
Finished restore at 19-FEB-09RMAN> startup mount;
database is already started
database mounted
released channel: ORA_DISK_1RMAN> restore database;
Starting restore at 19-FEB-09
Starting implicit crosscheck backup at 19-FEB-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
Crosschecked 154 objects
Finished implicit crosscheck backup at 19-FEB-09Starting implicit crosscheck copy at 19-FEB-09
using channel ORA_DISK_1
Finished implicit crosscheck copy at 19-FEB-09searching for all files in the recovery area
cataloging files…
no files catalogedusing channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to C:BANCOSORCL1ORCL1SYSTEM01.DBF
restoring datafile 00002 to C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF
restoring datafile 00003 to C:BANCOSORCL1ORCL1SYSAUX01.DBF
restoring datafile 00004 to C:BANCOSORCL1ORCL1IDX_01.DBF
restoring datafile 00005 to C:BANCOSORCL1ORCL1PAC1_01
restoring datafile 00006 to C:BANCOSORCL1ORCL1USERS2.DBF
restoring datafile 00007 to C:BANCOSORCL1ORCL1IDX_02.DBF
restoring datafile 00008 to C:BANCOSORCL1ORCL1IDX_03.DBF
restoring datafile 00009 to C:BANCOSORCL1ORCL1DADOS_01.DBF
restoring datafile 00010 to C:BANCOSORCL1ORCL1DADOS_02.DBF
restoring datafile 00011 to C:BANCOSORCL1ORCL1DADOS_03.DBF
channel ORA_DISK_1: reading from backup piece C:BANCOSBACKUPSBKP_DB_ORCL1_S_381_P_1_T_679232069
channel ORA_DISK_1: restored backup piece 1
piece handle=C:BANCOSBACKUPSBKP_DB_ORCL1_S_381_P_1_T_679232069 tag=TAG20090219T113429
channel ORA_DISK_1: restore complete, elapsed time: 00:03:17
Finished restore at 19-FEB-09RMAN>recover database;
Starting recover at 19-FEB-09
using channel ORA_DISK_1starting media recovery
archive log thread 1 sequence 3 is already on disk as file C:ORACLEPRODUCT10.2.0DB_1DATABASEUSE_DB_RECOVERY_FILE_DESTARC00003_0679230665.00
1
archive log filename=C:ORACLEPRODUCT10.2.0DB_1DATABASEUSE_DB_RECOVERY_FILE_DESTARC00003_0679230665.001 thread=1 sequence=3
unable to find archive log
archive log thread=1 sequence=4
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/19/2009 11:55:26
RMAN-06054: media recovery requesting unknown log: thread 1 seq 4 lowscn 1125040326233RMAN> sql ‘alter database open resetlogs’;
sql statement: alter database open resetlogs
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync completeRMAN> sql ‘alter database open resetlogs’;
sql statement: alter database open resetlogs
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 02/19/2009 12:28:15
RMAN-11003: failure during parse/execution of SQL statement: alter database open resetlogs
ORA-01531: a database already open by the instanceRMAN>
19 de fevereiro de 2009 às 11:59 pm #85393Rodrigo Almeida
ParticipanteJoão,
Os erros que ocorreram são porque as ações impostas ao RMAN já tinham sido realizado, por isso ele retornou erro para você. Por exemplo:
[b]
RMAN-03002: failure of recover command at 02/19/2009 11:55:26
RMAN-06054: media recovery requesting unknown log: thread 1 seq 4 lowscn 1125040326233
[/b]Nesse ponto ele não conseguiu identificar a LOG SEQUENCE 4 da sua base para efetuar a recuperação, ou por ter perdido ou porque estava no REDO LOG.
[b]
RMAN> sql ‘alter database open resetlogs’;sql statement: alter database open resetlogs
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
[/b]Nesse ponto, como ocorreu um MEDIA RECOVERY, necessariamente deverá abrir com RESETLOGS (zera o LOG SEQUENCE) e também, como não é a primeira vez que está recuperando o banco de dados, será gerado uma nova incarnação, ou seja, seu banco de dados morreu e vai nascer novamente, por isso a incarnação!
[b]
RMAN-03009: failure of sql command on default channel at 02/19/2009 12:28:15
RMAN-11003: failure during parse/execution of SQL statement: alter database open resetlogs
ORA-01531: a database already open by the instance
[/b]O seu banco de dados já estava aberto, quando ele criou uma nova incarnação com o mesmo ALTER DATABASE OPEN RESETLOGS, seu banco de dados já estava disponível, e como emitiu o comando novamente, ele reclamou, pq automaticamente o Oracle vê que não não feito nenhuma recuperação e pelo simples fato do banco de dados estar no ar com todos os seus datafiles ONLINE.
Aparentemente João! Os passos que tu realizo foram feitos sem problemas. Agora, faça uns SWITCHS LOGS para gerar bastante archives, depois um backup FULL ONLINE ou COLD, e deleta o banco de dados novamente, e no momento da recuperação faça o script abaixo:
run {
startup nomount;
restore spfile from autobackup;
restore controlfile from autobackup;
alter database mount;
restore database;
recover database;
alter database open resetlogs;
}Veja se está fazendo AUTOBACKUP do SPFILE e CONTROLFILE. E não esqueça de fazer backup dos archives. E veja se terá errors.
Abraços,
Rodrigo Almeida26 de fevereiro de 2009 às 5:33 pm #85462Emersonmartins
ParticipanteAmigos Estou vendo essa discução porem nunca fiz um teste como esse de backup e recovery..
Onde posso conseguir essa ferramenta!
-
AutorPosts
- Você deve fazer login para responder a este tópico.