In 11g there are two major enhancements to restore points
1. Create restore point as of scn, until 10g you can create a restore point with current scn only
SQL> create restore point p1 as of scn 19393930;
2. Preserve the restore points
SQL> create restore point p1 preserve;
The second point above need a bit explanation which normally confused by documentation:-
Here is excerpt from the documentation
CREATE
RESTORE
POINT
statement to create a restore point, which is a name associated with a timestamp or an SCN of the database. A restore point can be used to flash back a table or the database to the time specified by the restore point without the need to determine the SCN or timestamp. Restore points are also useful in various RMAN operations, including backups and database duplication. You can use RMAN to create restore points in the process of implementing an archival backup.Specify
PRESERVE
to indicate that the restore point must be explicitly deleted. Such restore points are useful when created for use with the flashback history featureA guaranteed restore point enables you to flash the database back deterministically to the restore point regardless of the
DB_FLASHBACK_RETENTION_TARGET
initialization parameter setting. The guaranteed ability to flash back depends on sufficient space being available in the flash recovery area.Guaranteed restore points guarantee only that the database will maintain enough flashback logs to flashback the database to the guaranteed restore point. It does not guarantee that the database will have enough undo to flashback any table to the same restore point.
It is that, Guaranteed restore points are always preserved. A preserved restore point is same as guaranteed restore points, which enables you to flashback a database to restore point regardless of setting for the db_flash_back_retention_target parameter. The oracle will not drop the restore point even though it reaches the maximum restore points (i.e 2048 per instance). You have to explicitly delete or drop the restore point in both the cases. When you specify preserve rather guaranteed it just maintain as like guaranteed except it does note or mark as guaranteed. Not sure why this much confusion Oracle creates.
-Thanks
Geek DBA
Follow Me!!!