Data

5 jan, 2007

Backup Recover Full

Publicidade

Caros usuários, saudações! Nesse artigo iremos abordar uma recuperação
full do banco de dados. Para isso, utilizaremos o RMAN no procedimento
de backup e restore.

É INADMISSÌVEL a um profissional Oracle desconhecer
essa ferramenta. Se você desconhece, minha sugestão é que
você procure obter informações a respeito
do funcionamento dela.

É possível acessá-la de duas maneiras:

. Com
catálogo
. Sem catálogo

Esse artigo se restringe ao acesso SEM USO DO CATÁLOGO,
mas, sempre que possível, faça uso do catálogo
ro RMAN. Para isso é necessário que, em outra máquina
você possua um banco de dados para armazenar o catalogo.
O colunista Rodrigo Almeida está disponibilizando um
excelente material sobre o catálogo do RMAN.

Mãos a obra…

Preparação do Ambiente

A primeira coisa a fazer, é confirmar a utilização
do banco de dados no modo archivelog. Para isso, utilizando o
SQLPLUS, siga conforme abaixo:

C:\>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 – Production on Mon
Dec 25 20:01:03 2006

Copyright (c) 1982, 2005,
Oracle.  All rights
reserved.

SQL> conn / as sysdba
Connected.
SQL> archive log list;
Database log mode              Archive
Mode
Automatic archival             Enabled
Archive destination            C:\oracle\archive
Oldest online log sequence     1
Next log sequence to archive   3
Current log sequence           3
SQL>

Caso não esteja, é necessário ativá-lo,
para isso, consulte o artigo publicado anteriormente.

De forma a melhor mostrar a utilização da restauração
do banco de dados, iremos criar uma tabela com a seguinte estrutura:

SQL> desc estudo.insert_time;
 Name                               Null?    Type
 ———————————- ——–
—-
 DATA_INSERCAO                      NOT
NULL DATE

SQL> select count(1) from estudo.insert_time

  COUNT(1)
———-
         0

1 row selected.

Essa tabela será utilizada para a geração
de registros a cada minuto, de forma a melhor exemplificar o recover
database until time
.

Iremos utilizar o script abaixo para fazer a inserção
do registro no banco de dados.

insert_time.sql
insert into estudo.insert_time(data_insercao)
values (sysdate);
commit;
exit;

O script abaixo, é apenas uma forma de facilitar a chamada
para a inserção dos registros.

script_insert.bat
sqlplus "/ as sysdba" @c:\imasters\insert_time.sql

É preciso fazer um backup full de um momento anterior
ao do provável problema.

Ex: Você precisa voltar o banco de dados da empresa para
o estado em que ele se encontrava no dia 21/12/2006 às
08:00. Imaginando que seus backups são realizados todos
os dias às 19:00, significa dizer que é necessário
voltar o backup que foi disparado no dia 20/12/2006 às
19:00 e aplicar os archivelogs até o dia 21/12/2006 às
08:00.

Nesse momento, iremos precisar do RMAN para realizar o backup.

Para acessar o utilitário, através da console,
execute:

C:\>rman target /

Recovery Manager: Release 10.2.0.1.0 – Production
on Mon Dec 25 19:55:07 2006

Copyright (c) 1982, 2005,
Oracle.  All rights
reserved.

connected to target database: ORCL (DBID=1125663715)

RMAN>

O comando SHOW ALL, revela informações
interessantes.

RMAN> show all;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO
BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO
1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK
TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO     ‘C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFORCL.ORA’;
# default

RMAN>

Existem alguns pontos a serem observados na configuração
do RMAN. É de muita importância o backup do controlfle
e do spfile. Para isso você deve configurar o autobackup
do controlfile.

RMAN> CONFIGURE CONTROLFILE
AUTOBACKUP ON;

old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully
stored

RMAN>

Isso automatiza o backup do controlfile, é recomendado
que esteja ON.

Outra configuração importante é a localização
do backup do controlfile. Para isso configure a localização
do backup do controlfile.

RMAN> CONFIGURE CONTROLFILE
AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘C:\BACKUP
\%F’;

old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE
TYPE DISK TO ‘%F’;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE
TYPE DISK TO ‘C:\BACKUP\%F’;
new RMAN configuration parameters are successfully
stored

Conforme a configuração realizada no RMAN, o backup
do arquivo de controlfile é composto por quatro informações:

C – Significa que o arquivo armazena o backup do controlfile
e spfile

9999999999 –  É o DBID da instância,
muito utilizado quando é preciso recuperar o spfile.

YYYYMMDD – Ano,
mês e dia de geração
do arquivo.

99 – Seqüência de geração
do arquivo, inicia em 00. A seqüência é zerada
a cada dia.

Confirmando as modificações no RMAN.

RMAN> SHOW ALL;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; #
default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE
TYPE DISK TO ‘C:\BACKUP\%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE
TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE
DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE
DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA’; # default

Realizando o backup full

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
  BACKUP AS COMPRESSED BACKUPSET
    DATABASE TAG ‘DB_LEVEL0_WHOLE’
    FORMAT ‘c:\backup\%d_%I_level0_%s_%p_%u.bkp’
    PLUS ARCHIVELOG TAG ‘ARCHIVEDLOGS’
    FORMAT ‘c:\backup\%d_%I_arch_%s_%p_%u.bkp’;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

No exemplo acima, são utilizados dois canais C1 e C2.
Percebam que, dependendo das características do hardware
pode ser utilizado um número maior de canais, mas isso
deve ser avaliado com cuidado para não gerar uma carga
excessiva no ambiente.

Após alocar os canais, foi utilizado o comando para a
realização do backup, perceba também a utilização
do comando COMPRESSED, é de se imaginar que esse comando
irá compactar o backup. Isso irá gerar uma carga
a mais no momento da recuperação, uma vez que será necessário
descompactar o backup.

Ao backup dos datafiles foi data uma TAG DB_LEVEL0_WHOLE, essa é uma
forma de localizar o backup utilizando comandos do RMAN. A cláusula
format determina onde os backups dos datafiles devem ser armazenados.

O comando PLUS ARCHIVELOG executa o switch logfile de forma
automática ao final do backup, e dessa forma armazenar
os archives gerados após o início do backup.

Perceba uma ligeira diferença na cláusula format
dos archivelogs, isso foi feito de forma a facilitar a identificação
do tipo de arquivo armazenado.

allocated channel: c1
channel c1: sid=141 devtype=DISK

allocated channel: c2
channel c2: sid=140 devtype=DISK

Starting backup at 25-DEC-06
current log archived
channel c1: starting compressed archive log backupset
channel c1: specifying archive log(s) in backup
set
input archive log thread=1 sequence=1 recid=6
stamp=610047133
input archive log thread=1 sequence=2 recid=7
stamp=610047422
input archive log thread=1 sequence=3 recid=8
stamp=610047490
input archive log thread=1 sequence=4 recid=9
stamp=610111910
channel c1: starting piece 1 at 25-DEC-06
channel c2: starting compressed archive log backupset
channel c2: specifying archive log(s) in backup
set
input archive log thread=1 sequence=9 recid=1
stamp=609959261
input archive log thread=1 sequence=10 recid=2
stamp=609960115
input archive log thread=1 sequence=11 recid=3
stamp=609960185

Foi criada uma tarefa no windows de forma a executar o arquivo script_insert.bat a
cada minuto, durante 1 hora. Isso irá gerar 60 registros
na tabela INSERT_TIME.

SQL> select count(1)
from estudo.insert_time

  COUNT(1)
———-
        60

1 row selected.

Agora que estamos com o ambiente preparado, vamos iniciar o
processo de recuperação.

A primeira coisa a fazer é restaurar o controlfile do último
backup full, ou seja, o que foi realizado algumas linhas acima.

C:\>cd \backup

C:\backup>dir
 Volume in drive C has no label.
 Volume Serial Number is D4CF-5E81

Directory of C:\backup

25/12/2006  20:55    <DIR>          .
25/12/2006  20:55    <DIR>          ..
24/12/2006  17:38         7.143.424
C-1125663715-20061224-00

25/12/2006  11:32         7.143.424
C-1125663715-20061225-00

25/12/2006  20:55         7.143.424
C-1125663715-20061225-01

24/12/2006  17:37         2.748.928
ORCL_1125663715_ARCH_15_1_0FI5P5DV.BKP
24/12/2006  17:37         2.514.944
ORCL_1125663715_ARCH_16_1_0GI5P5DV.BKP
24/12/2006  17:37         1.861.120
ORCL_1125663715_ARCH_17_1_0HI5P5E2.BKP
24/12/2006  17:38            12.800
ORCL_1125663715_ARCH_20_1_0KI5P5G2.BKP
25/12/2006  11:12         4.742.144
ORCL_1125663715_ARCH_22_1_0MI5R386.BKP
25/12/2006  11:12         4.579.840
ORCL_1125663715_ARCH_23_1_0NI5R386.BKP
25/12/2006  11:12           143.872
ORCL_1125663715_ARCH_24_1_0OI5R38B.BKP
25/12/2006  20:54         4.742.144
ORCL_1125663715_ARCH_24_1_0OI5S5B8.BKP
25/12/2006  20:54         4.579.840
ORCL_1125663715_ARCH_25_1_0PI5S5B8.BKP
25/12/2006  20:54         1.681.920
ORCL_1125663715_ARCH_26_1_0QI5S5C3.BKP
25/12/2006  11:13             7.680
ORCL_1125663715_ARCH_27_1_0RI5R3AB.BKP
25/12/2006  20:55            79.360
ORCL_1125663715_ARCH_29_1_0TI5S5E3.BKP
24/12/2006  17:38        86.245.376
ORCL_1125663715_LEVEL0_18_1_0II5P5E5.BKP
24/12/2006  17:38        38.780.928
ORCL_1125663715_LEVEL0_19_1_0JI5P5E6.BKP
25/12/2006  11:13        86.269.952
ORCL_1125663715_LEVEL0_25_1_0PI5R38E.BKP
25/12/2006  11:13        39.034.880
ORCL_1125663715_LEVEL0_26_1_0QI5R38E.BKP
25/12/2006  20:55        86.253.568
ORCL_1125663715_LEVEL0_27_1_0RI5S5C6.BKP
25/12/2006  20:55        38.912.000
ORCL_1125663715_LEVEL0_28_1_0SI5S5C6.BKP
              21
File(s)    424.621.568 bytes
               2
Dir(s)  11.710.783.488 bytes free

Fazendo o Restore do Controlfile

O controlfile possui principalmente informações
referentes ao caminho dos datafiles, além de outras informações
necessárias a recuperação. A primeira coisa
a fazer é realizar o shutdown do banco
de dados:

C:\>rman target /

Recovery Manager: Release 10.2.0.1.0 – Production
on Tue Dec 26 19:06:02 2006

Copyright (c) 1982, 2005,
Oracle.  All rights
reserved.

connected to target database: ORCL (DBID=1125663715)

RMAN> shutdown immediate;

using target database control file instead of
recovery catalog
database closed
database dismounted
Oracle instance shut down

RMAN>

Em seguida, inicie o banco no modo nomount:

RMAN> startup nomount;

connected to target database (not started)
Oracle instance started

Total System Global Area     293601280
bytes

Fixed Size                     1248624
bytes
Variable Size                 79692432
bytes
Database Buffers             209715200
bytes
Redo Buffers                   2945024
bytes

RMAN>

Execute a recuperação do controlfile:

RMAN> restore controlfile
from ‘c:\Backup\C-1125663715-20061224-00’;

Starting restore at 26-DEC-06
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed
time: 00:00:03
output filename=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
Finished restore at 26-DEC-06

RMAN>

Vale lembrar que, o controlfile recuperado deve ter sido gerado
em um backup anterior ao problema. Quanto mais distante do momento
que se deseja recuperar o banco de dados, mais arquivos de logs
precisaram ser aplicados.

Agora vamos iniciar o banco no modo mount:

RMAN> startup force
mount;

Oracle instance started
database mounted

Total System Global Area     293601280
bytes

Fixed Size                     1248624
bytes
Variable Size                 79692432
bytes
Database Buffers             209715200
bytes
Redo Buffers                   2945024
bytes

RMAN>

Ainda no RMAN, vamos recuperar o banco de dados até o
seu estado no dia 24/12/2006 às 18:30:00.

run
{
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
  set until time "TO_DATE(’24-12-2006
18:30:00′,’DD-MM-YYYY HH24:MI:SS’)";
  RESTORE DATABASE;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

allocated channel: c1
channel c1: sid=156 devtype=DISK

allocated channel: c2
channel c2: sid=155 devtype=DISK

executing command: SET until clause

Starting restore at 26-DEC-06

channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore
from backup set
restoring datafile 00002 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
restoring datafile 00003 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
restoring datafile 00005 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
channel c1: reading from backup piece C:\BACKUP\ORCL_1125663715_LEVEL0_19_1_0JI5
P5E6.BKP
channel c2: starting datafile backupset restore
channel c2: specifying datafile(s) to restore from
backup set
restoring datafile 00001 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
restoring datafile 00004 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
restoring datafile 00006 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_ESTUDO_01.
DBF
channel c2: reading from backup piece C:\BACKUP\ORCL_1125663715_LEVEL0_18_1_0II5
P5E5.BKP
channel c1: restored backup piece 1
piece handle=C:\BACKUP\ORCL_1125663715_LEVEL0_19_1_0JI5P5E6.BKP
tag=DB_LEVEL0_WH
OLE
channel c1: restore complete, elapsed time: 00:00:49
channel c2: restored backup piece 1
piece handle=C:\BACKUP\ORCL_1125663715_LEVEL0_18_1_0II5P5E5.BKP
tag=DB_LEVEL0_WH
OLE
channel c2: restore complete, elapsed time: 00:01:04
Finished restore at 26-DEC-06

released channel: c1

released channel: c2

RMAN>

Restauramos os datafiles
e agora iremos fazer o recover, que nada mais é do que a aplicação
dos archivelog

RMAN> RECOVER DATABASE until time "TO_DATE(’24-12-2006
18:30:00′,’DD-MM-YYYY HH24:MI:SS’)";

Starting recover at 26-DEC-06
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK

starting media recovery

archive log thread 1 sequence 3 is already on
disk as file C:\ORACLE\ARCHIVE\ARC
00003_0609963499.001
archive log filename=C:\ORACLE\ARCHIVE\ARC00003_0609963499.001
thread=1 sequence
=3
archive log filename=C:\ORACLE\ARCHIVE\ARC00004_0609963499.001
thread=1 sequence
=4
media recovery complete, elapsed time: 00:00:04
Finished recover at 26-DEC-06

RMAN>

Agora iremos abrir o banco com RESET LOGS.
O comando ALTER DATABASE OPEN RESETLOGS, irá criar
os arquivos de redologs, de acordo com a configuração
armazenada no controlfile.

RMAN> alter database
open resetlogs;

database opened

RMAN>

select to_char(max(data_insercao),’DD-MM-YYYY
HH24:MI:SS’)
 from estudo.insert_time;

TO_CHAR(MAX(DATA_IN
——————-
24-12-2006 18:29:00

1 row selected.

Caso você deseje se aproximar um pouco mais do momento
do problema, precisará restaurar o controlfile novamente,
restaurar os datafiles, e recuperar o banco informando uma hora
mais próxima.

Vamos voltar o banco ao estado em que ele se encontrava as 18:45
do dia 24/12/2006.

RMAN> shutdown immediate;

database closed
database dismounted
Oracle instance shut down

RMAN>

RMAN> startup nomount;

connected to target database (not started)
Oracle instance started

Total System Global Area     293601280
bytes

Fixed Size                     1248624
bytes
Variable Size                 79692432
bytes
Database Buffers             209715200
bytes
Redo Buffers                   2945024
bytes

RMAN>

Restaure o controlfile mais próximo.

RMAN> restore controlfile
from ‘c:\Backup\C-1125663715-20061224-00’;

Starting restore at 26-DEC-06
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed
time: 00:00:01
output filename=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
Finished restore at 26-DEC-06

RMAN>

Inicie o banco no modo mount.

RMAN> startup force
mount;

Oracle instance started
database mounted

Total System Global Area     293601280
bytes

Fixed Size                     1248624
bytes
Variable Size                 79692432
bytes
Database Buffers             209715200
bytes
Redo Buffers                   2945024
bytes

RMAN>

Faça o restore dos datafiles.

run
{
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
  set until time "TO_DATE(’24-12-2006
18:45:00′,’DD-MM-YYYY HH24:MI:SS’)";
  RESTORE DATABASE;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

allocated channel: c1
channel c1: sid=156 devtype=DISK

allocated channel: c2
channel c2: sid=155 devtype=DISK

executing command: SET until clause

Starting restore at 26-DEC-06

channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore
from backup set
restoring datafile 00002 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
restoring datafile 00003 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
restoring datafile 00005 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
channel c1: reading from backup piece C:\BACKUP\ORCL_1125663715_LEVEL0_19_1_0JI5
P5E6.BKP
channel c2: starting datafile backupset restore
channel c2: specifying datafile(s) to restore from
backup set
restoring datafile 00001 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
restoring datafile 00004 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
restoring datafile 00006 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_ESTUDO_01.
DBF
channel c2: reading from backup piece C:\BACKUP\ORCL_1125663715_LEVEL0_18_1_0II5
P5E5.BKP
channel c1: restored backup piece 1
piece handle=C:\BACKUP\ORCL_1125663715_LEVEL0_19_1_0JI5P5E6.BKP
tag=DB_LEVEL0_WH
OLE
channel c1: restore complete, elapsed time: 00:00:48
channel c2: restored backup piece 1
piece handle=C:\BACKUP\ORCL_1125663715_LEVEL0_18_1_0II5P5E5.BKP
tag=DB_LEVEL0_WH
OLE
channel c2: restore complete, elapsed time: 00:01:03
Finished restore at 26-DEC-06

released channel: c1

released channel: c2

RMAN>

Faça o recover até o momento desejado.

RMAN> RECOVER DATABASE until time "TO_DATE(’24-12-2006
18:45:00′,’DD-MM-YYYY HH24:MI:SS’)";

Starting recover at 26-DEC-06
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK

starting media recovery

archive log thread 1 sequence 3 is already on
disk as file C:\ORACLE\ARCHIVE\ARC
00003_0609963499.001
archive log filename=C:\ORACLE\ARCHIVE\ARC00003_0609963499.001
thread=1 sequence
=3
archive log filename=C:\ORACLE\ARCHIVE\ARC00004_0609963499.001
thread=1 sequence
=4
media recovery complete, elapsed time: 00:00:04
Finished recover at 26-DEC-06

Abra o banco com resetlogs.

RMAN> alter database
open resetlogs;

database opened

RMAN>

Fazendo o mesmo select feito anterior, teremos:

select to_char(max(data_insercao),’DD-MM-YYYY
HH24:MI:SS’)
from estudo.insert_time

TO_CHAR(MAX(DATA_IN
——————-
24-12-2006 18:44:00

1 row selected.

Acredito que demonstramos uma boa utilização do
RMAN em processos de recover point in time.

Vale lembrar que em bases relativamente grandes é preciso
ter um certo cuidado em relação ao tempo informado
para a recuperação. Imagine você restaurar
300GB de datafiles, e depois de 2, 3 ou 4 horas executar o comando
recover com uma hora posterior ao momento desejado, você terá que
fazer todo o processo novamente e talvez a empresa não
possua mais janela para realizar a operação.

Espero ter ajudado um pouco na descoberta do RMAN, uma ferramenta
excelente, e muito útil.