I'm finding myself in this conceptual dead end.
I don't know if this is correct, but in my understanding:
- flashback logs = totally required, since they are the ones to know which blocks have changed and need to be undone in flashback scenario.
- archive logs generated after restore point creation = not so sure.
I reproduced in my virtual machine the following:
enabled flashback:
SQL> alter database flashback on;
Database altered.
created restore point in mount state:
create restore point gui_rp guarantee flashback database;
Restore point created.
alter database open;
Database altered.
Generated archive:
alter system switch logfile; (3 times)
create table x as select * from all_objects;
delete from x;
commit;
alter system switch logfile;
! ls 1_*
1_8_929480415.dbf 1_9_929480415.dbf 1_10_929480415.dbf
shutdown immediate ;
exit
Moved archivelogs:
mv /oradata/1_* gui_rp
startup mount
flashback database to restore point gui_rp;
Flashback complete.
alter database open resetlogs;
create restore point gui_rp_2 guarantee flashback database;
! ls 1_*
1_11_929480415.dbf
However this test scenario worked without the "after restore point" archivelogs, I'm not finding the concept or MOSC note to support this.
I found this in the docs:
The flashback rollback database by using flashback logs, then it recovers to desire point in time
using archived log files.
But it lacks explanation about after restore point archived log files. I know rman is smart enough to warn when someone tries to delete a required archivelog to be used by flashback, but still I haven't experienced it in a production environment.
Can someone please clarify on that, and refer to an official Oracle statement?
Any help is appreciated.
Thanks.