- Este tópico contém 33 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 8 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
24 de julho de 2009 às 12:39 am #88168
vieri
ParticipantePerfeito Rodrigo.
Foi extamente esses os passos que eu segui.
Já disparei um novo backup hà umas meia hora atrás, com um script melhorzinho(abaixo),
porque não lembro qual script que utilizei antes.===============DATABASE================
run {
allocate channel t1 type disk maxpiecesize = 20G;
allocate channel t2 type disk maxpiecesize = 20G;
allocate channel t3 type disk maxpiecesize = 20G;
backup database include current controlfile tag ‘BKP_WIS_FULL_HOT’
format ‘/u02/backup/bkp_full_%d_%t_%s.rman’;
backup current controlfile tag ‘BKP_CTL’
format ‘/u02/backup/bkp_ctl_%d_%t_%s.rman’;
backup spfile tag ‘BKP_SPFILE’
format ‘/u02/backup/bkp_spfile_%d_%t_%s.rman’;
release channel t1;
release channel t2;
release channel t3;
}=========ARCHIVE=============
run {
allocate channel ch1 type Disk maxpiecesize = 1000M;
sql “alter system archive log current”;
backup archivelog all filesperset 10
format ‘/u02/backup/arch%p_%t.rman’
tag ‘BKP_WIS_FULL_ARCHIVE’
delete all input;
release channel ch1;
}Os passos 1,2,3,4,5 e 10 eu já havia feito…
o 6,7,8,9 eu fiz após sua recomendação.
Talvez essa confusão fora da ordem possa ter ferrado algum passo.Vou iniciar o procedimento do zero com este novo backup e posto e resultado aqui
em breve…24 de julho de 2009 às 4:31 pm #88174jspaulonci
ParticipanteBom dia Vieri, acho que você deve ir até o fim com a idéia do Rodrigo, mas quando eu tive essa necessidade eu usei o conceito do duplicate.
Abraços
jps
24 de julho de 2009 às 5:58 pm #88177vieri
ParticipanteMas eu seguirei o passos do 1 até o 10… 😀
Oque eu falei e que na mina tentativa eu fiz com sequencia de passos diferentes…
não entendi essa sua colocação.Obs : O duplicate funciona para servidores diferentes com path’s diferentes ? 🙄
Quando finalizar o restore coloco todos os passos, com os log’s
aqui.abços e bom fim de semana!!
24 de julho de 2009 às 6:15 pm #88178jspaulonci
ParticipanteNão se preocupe não Vieri, siga a idéia do Rodrigo, de repente falei besteira pra ti.
Abraços e bom final de semana
jps
24 de julho de 2009 às 6:42 pm #88179vieri
ParticipanteQue nada JPS…
abraços !
bom fds
24 de julho de 2009 às 7:23 pm #88180David Siqueira
ParticipanteVieri ficaremos FERA em RMAN com esses posts do Rodrigão e as participações no Forum…hehehhe…
Abraço á todos…
Bom fds!!!24 de julho de 2009 às 8:31 pm #88181Rodrigo Almeida
ParticipanteVieri,
Depois confirma se consegui com sucesso, o seu controlfile que está lendo ainda os caminhos antigos.
JPS,
O Duplicate também poderia ser uma sugestão. Funciona com Patchs diferentes também, e iria gerar um DBID e nome diferente do atual. É uma opção.
Abraços,
Rodrigo Almeida
24 de julho de 2009 às 8:33 pm #88182jspaulonci
ParticipanteEntaum Vieri segundo o nosso guru……(Rodrigo kkkkk) o duplicate talvez caberia no seu caso.
abraços
jps24 de julho de 2009 às 8:55 pm #88184Rodrigo Almeida
ParticipantePoderia ser feito sim.
Mas Vieri, vamos se concentrar no tipo de recuperação que está fazendo. Vamos analisar os erros e ver os passos para a recuperação, pois é necessário mais atenção!
Depois, com calma podemos fazer usando o DUPLICATE!
E depois, outro saindo de Linux e restaurando para Windows. Mas com calma, senão perdemos o foco!
Continua nesses passos Vieri.
E JSP, a sugestão foi boa sim, depois fazemos uma com duplicate.
Abraços,
Rodrigo Almeida
24 de julho de 2009 às 10:51 pm #88187vieri
ParticipanteVamo lá galera !! 😀
Seguinte fiz os passo todinhos novamente do zero !
Resultado tudo CERTO!!
Restore OK.
RECOVER mais ou MENOS.. risos…
Seguinte:
disparei meu script:
rman target /
STARTUP NOMOUNT
SET DBID=428367008;
RESTORE CONTROLFILE FROM ‘/u03/wis/full_wis_692811273_2’;
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 UNTIL SEQUENCE 1190 THREAD 1;
set newname for datafile 1 to ‘/u03/wis/system01.dbf’;
set newname for datafile 2 to ‘/u03/wis/undotbs1.dbf’;
set newname for datafile 3 to ‘/u03/wis/sysauy01.dbf’;
set newname for datafile 4 to ‘/u03/wis/data_entrega.dbf’;
set newname for datafile 5 to ‘/u03/wis/data_entrega_small.dbf’;
set newname for datafile 6 to ‘/u03/wis/gkoscf_dtau.dbf’;
set newname for datafile 7 to ‘/u03/wis/gkoscf_inau.dbf’;
set newname for datafile 8 to ‘/u03/wis/gkoscf_indy.dbf’;
set newname for datafile 9 to ‘/u03/wis/indy_entrega.dbf’;
set newname for datafile 10 to ‘/u03/wis/tbs_data_asstec.dbf’;
set newname for datafile 11 to ‘/u03/wis/tbs_data_cestqhist_32m.dbf’;
set newname for datafile 12 to ‘/u03/wis/tbs_data_detprep_32m.dbf’;
set newname for datafile 13 to ‘/u03/wis/tbs_data_hist_256k.dbf’;
set newname for datafile 14 to ‘/u03/wis/tbs_data_hist_32m.dbf’;
set newname for datafile 15 to ‘/u03/wis/tbs_data_hist_5m.dbf’;
set newname for datafile 16 to ‘/u03/wis/tbs_data_hist_64m.dbf’;
set newname for datafile 17 to ‘/u03/wis/tbs_data_inet.dbf’;
set newname for datafile 18 to ‘/u03/wis/tbs_data_sge.dbf’;
set newname for datafile 19 to ‘/u03/wis/tbs_data_trcmovestq_64m.dbf’;
set newname for datafile 20 to ‘/u03/wis/tbs_data_wis_256k.dbf’;
set newname for datafile 21 to ‘/u03/wis/tbs_data_wis_32m.dbf’;
set newname for datafile 22 to ‘/u03/wis/tbs_data_wis_5m.dbf’;
set newname for datafile 23 to ‘/u03/wis/tbs_indy_asstec.dbf’;
set newname for datafile 24 to ‘/u03/wis/tbs_indy_cestqhist_32m.dbf’;
set newname for datafile 25 to ‘/u03/wis/tbs_indy_detprep__32m.dbf’;
set newname for datafile 26 to ‘/u03/wis/tbs_indy_hist_256k.dbf’;
set newname for datafile 27 to ‘/u03/wis/tbs_indy_inet.dbf’;
set newname for datafile 28 to ‘/u03/wis/tbs_indy_sge.dbf’;
set newname for datafile 29 to ‘/u03/wis/tbs_indy_trcmovestq_64m.dbf’;
set newname for datafile 30 to ‘/u03/wis/tbs_indy_wis_256k.dbf’;
set newname for datafile 31 to ‘/u03/wis/tbs_indy_wis_32m.dbf’;
set newname for datafile 32 to ‘/u03/wis/tbs_indy_wis_5m.dbf’;
set newname for datafile 33 to ‘/u03/wis/tools.dbf’;
set newname for datafile 34 to ‘/u03/wis/undotbs2.dbf’;
set newname for datafile 35 to ‘/u03/wis/users.dbf’;
set newname for datafile 36 to ‘/u03/wis/gkoscf_data.dbf’;
RESTORE DATABASE;
switch datafile all;
RECOVER DATABASE ;
ALTER DATABASE OPEN RESETLOGS;
}Ele fez tudo certo, restaurou os archivos fez o switch perfeitamente!!! 🙂
Mas na hora do recover ele reclamou do SCN.então mudei de método ao invês do until sequence
que peguei na v$log da origem… usei o SCN que obtive
no list backup do meu destino.veja abaixo.
RMAN> run{
2> set until sequence 5256322985 ;
3> recover database;
4> }executing command: SET until clause
Starting recover at 24-JUL-09
using channel ORA_DISK_1starting media recovery
unable to find archive log
archive log thread=1 sequence=1195
Oracle Error:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01190: control file or data file 1 is from before the last RESETLOGS
ORA-01110: data file 1: ‘/u03/wis/system01.dbf’RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/24/2009 14:01:55
RMAN-06054: media recovery requesting unknown log: thread 1 seq 1195 lowscn 5669424646RMAN> run{
2> set until sequence 5256322985 ;
3> recover database noredo;
4> }executing command: SET until clause
Starting recover at 24-JUL-09
using channel ORA_DISK_1
Finished recover at 24-JUL-09com o NOREDO ele conseguiu fazer acho que foi
porque tinha alguma transação no redo que não archivei
no bkp on-line, devia ter dado mais de um switch.
obs: Rodrigo vai me concertando ai…. hehehehRMAN> alter database open ;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 07/24/2009 14:02:58
ORA-01589: must use RESETLOGS or NORESETLOGS option for database openEle me pediu para abrir com resetlogs
RMAN> alter database open resetlogs ;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 07/24/2009 14:03:08
ORA-00344: unable to re-create online log ‘/u02/oracle/oradata/wis/redo01.log’
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directorynão entendi porque ele quis criar o REDO no u02 !?!?!
FALTA POUCO!!!!! 8)
Se precisa de mais informação me diga…
24 de julho de 2009 às 11:38 pm #88189vieri
ParticipanteSUBIUUUU!!!!!!!!
RMAN> run{
2> SQL “ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo01.log”
3> TO ”/u03/wis/redo01.log” “;
4> SQL “ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo02.log”
TO ”/u03/wis/redo02.log” “;
5> 6> SQL “ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo03.log”
TO ”/u03/wis/redo03.log” “;
7> 8> SQL “ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo04.log”
TO ”/u03/wis/redo04.log” “;
9> 10> }using target database control file instead of recovery catalog
sql statement: ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo01.log”TO ”/u03/wis/redo01.log”sql statement: ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo02.log”TO ”/u03/wis/redo02.log”
sql statement: ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo03.log”TO ”/u03/wis/redo03.log”
sql statement: ALTER DATABASE RENAME FILE ”/u02/oracle/oradata/wis/redo04.log”TO ”/u03/wis/redo04.log”
RMAN>
RMAN> alter database open resetlogs ;
database opened
RMAN> exit
Recovery Manager complete.
[oracle@admbidev wis]$ sqlplus / as sysdba
[
SQL*Plus: Release 10.2.0.3.0 – Production on Fri Jul 24 14:52:04 2009Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
With the Partitioning, OLAP and Data Mining optionsSQL> select * from v$instance ;
INSTANCE_NUMBER INSTANCE_NAME
HOST_NAME
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO
1 wisadmbidev.corp.casaevideo.com.br
10.2.0.3.0 24-JUL-09 OPEN NO 1 STARTED
ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NOteste de fogo agora !!!
SQL> shutdown abort ;
ORACLE instance shut down.
SQL> startup;
SP2-0714: invalid combination of STARTUP options
SQL> startup;
ORACLE instance started.Total System Global Area 536870912 bytes
Fixed Size 1262788 bytes
Variable Size 155192124 bytes
Database Buffers 373293056 bytes
Redo Buffers 7122944 bytes
Database mounted.
Database opened.Base retaurada!! 🙂 )))
Rodrigo poste seus comentários ai pra não ficar informação técnica
mal entendida.obrigado a todos!! Valeu Rodrigo…
obs:Estamos esperando seu curso de RMAN no Rio hein!!25 de julho de 2009 às 12:10 am #88191David Siqueira
ParticipanteParabéns pelo desfecho Vieri.
Abraço
25 de julho de 2009 às 12:17 am #88192Rodrigo Almeida
ParticipanteAí simmmmmmmmmmmmmmmmm…
VIERI! Parabéns CARA, foi 100% agora.
Sobre os ajustes.
PRIMEIRO RESTORE
=============SIM! Seu backup online teve uma transação que não foi totalmente arquivada e no momento do backup ele não trouxe os archives todos necessários.
Existia algumas saídas, como:
1) O que você utilizo, foi uma saída também, limitar a sua recuperação até um UNTIL TIME ou LOG SEQUENCE.
2) Outro modo é pegar o atual SCN que estaria no CURRENT REDO LOG da base original e UNTIL SCN no número do REDO LOG.
3) Outro ponto, é abrir com a opção NOREDO, que é mais utilizado quando se trabalha com banco de dados em NOARCHIVELOG, onde não se tem REDO LOGS para equalizar e durante o processo de recuperação com NOREDO, ele ZERA seu redo log e abre a base.
REDO LOGS
========Os comandos que você teve que fazer para alterar os caminhos do REDO LOGS, DEVEM estar sim no seu script, pois, esses caminhos eles ficam gravados no CONTROL FILE, então, quado você executo o NOREDO, ele automaticamente iria criar os grupos e membros do REDO LOG, com isso, o caminho ainda estava errado, e você conseguiu contornar bem com o comando SQL feito atráves do bloco do RMAN.
RESETLOGS
========Abrir o banco de dados com a opção RESETLOGS é inevitável! Pois ao realizar a recuperação por POINT-IN-TIME como foi o caso, você irá criar uma nova incarnação ao banco de dados VIDA NOVA A ELE, ou seja, será ZERADO a LOG SEQUENCE e seu banco terá uma nova vida.
Nesse tipo de recover também é possível abrir a base com em OPEN NORESETLOGS (Padrão), porém, você teria que ficar pegando os archives da produção e jogando para a base nova até deixar 100% consistente, isso pode demorar ou não, depende do nível de transação da base.
CONCLUSÃO
========De resto! Está tudo OK! Cada tipo de recupeção é diferente e míniumos detalhes podem mudar, como alteração de patch, versão, plataforma, base, aplicação e etc…
Muito bom VIERI! Parabéns novamente!
Abraços,
Rodrigo Almeida
25 de julho de 2009 às 12:18 am #88193vieri
ParticipanteValeu David !!
Grande abraço…E essa parceria que rola aqui no GPO é exemplo
para profissionais de T.I e de qualquer outro ramo.Rodrigão estamos anciosos pelos seus comentários!! hehe
obrigado pelo apoio de sempre!!
até segunda!! risos…
25 de julho de 2009 às 12:19 am #88194Rodrigo Almeida
ParticipanteEsqueci de Mencionar!
Tô esperando o convite para dar workshops aí no RIO, de preferência perto da Praia do Recreio, Arpoador… eittaaaaa praias boasssss!!!
Abraços,
Rodrigo Almeida
-
AutorPosts
- Você deve fazer login para responder a este tópico.