Why is a Full Database Backup (as opposed to a level 0 backup) required in Oracle after switching to ARCHIVELOG mode

backuporacleoracle-12c

The Oracle 12c 2 Day DBA manual states:

While whole database backups can be an important element in your
overall backup strategy, they are also a required step in some
situations, such as when you enable or disable ARCHIVELOG mode.

(I'm assuming that a "whole" database backup is the same as a "full" database backup as mentioned in the Concepts section.)

In the section "Enabling Archiving of Redo Log Files" the manual states:

You cannot use backups from before the switch to ARCHIVELOG mode to
restore and recover the database to a point in time after the switch.
Thus, if you do not immediately make a backup after switching, then
you are running your database without a valid backup.

Is the first excerpt of the manual wrong? Is the requirement that you need -any- type of backup? Or does it really need to be a full backup, as opposed to a level 0 backup? If so, why the difference?

Best Answer

You cannot use backups from before the switch to ARCHIVELOG mode to restore and recover the database to a point in time after the switch.

Looking at this quote it makes sense. If you enable archivelog on a database where it was not enabled, then any backup that you have before archive log was enabled can't be used to do a point in time recover, since you have no archive logs to rolll forward from the backup. You just have the backups and can restore to whatever warm backups that you have.

If you take a database that has archive log enabled and disable archive log, then going forward you can't do point in time recover. You can only restore to whatever backups that you have. But any warm backup that you have from when the database was in archive log can be restored and rolled as far forward as you have archive logs.

As far as I know both a warm full backup and incremental level 0 backup are full backups and you should be able to use either to do a full point in time restore provided that the databases were in archive log mode during the backup. Probably the biggest difference between a full backup and an incremental level 0 backup is that the incremental level 0 backup will update the block change tracking file, but I'm not sure that a full hot backup will do that.

But if you want to know for certain take a database that is not in archive log mode, put it in archive log mode, do an incremental level 0 backup, drop the database and restore it. You will know for certain then.