Oracle 12c 2 Day DBA 手册指出:
虽然整个数据库备份可能是整体备份策略中的一个重要元素,但在某些情况下它们也是必需的步骤,例如当您启用或禁用 ARCHIVELOG 模式时。
(我假设“完整”数据库备份与概念部分中提到的“完整”数据库备份相同。)
在“启用重做日志文件归档”一节中,手册指出:
您不能使用切换到 ARCHIVELOG 模式之前的备份将数据库还原和恢复到切换之后的某个时间点。因此,如果您在切换后没有立即进行备份,那么您正在运行没有有效备份的数据库。
手册的第一个摘录是错误的吗?您是否需要任何类型的备份?还是真的需要完整备份,而不是 0 级备份?如果是这样,为什么不同?
看了这段话,很有道理。如果您在未启用存档日志的数据库上启用存档日志,那么您在启用存档日志之前拥有的任何备份都不能用于执行时间点恢复,因为您没有存档日志可以从备份中向前滚动。您只有备份,可以恢复到您拥有的任何热备份。
如果您采用启用了存档日志并禁用存档日志的数据库,那么您将无法进行时间点恢复。您只能恢复到您拥有的任何备份。但是,当数据库在存档日志中时,您拥有的任何热备份都可以恢复并向前滚动到您拥有存档日志的程度。
据我所知,热完整备份和增量 0 级备份都是完整备份,如果数据库在备份期间处于存档日志模式,您应该能够使用其中任何一个来进行完整的时间点恢复。完全备份和增量 0 级备份之间最大的区别可能是增量 0 级备份会更新块更改跟踪文件,但我不确定完全热备份是否会这样做。
但是如果你想确定一个不处于归档日志模式的数据库,将它置于归档日志模式,进行增量 0 级备份,删除数据库并恢复它。到时候你就知道了。
这不是一个真正的要求。在 ARCHIVE / NOARCHIVE 模式之间切换后,数据库本身将在没有备份的情况下完美运行。但是,如果出现问题(或需要将数据库复制/克隆到其他机器),您将需要备份。
您可能会也可能不会使用增量备份功能;如果你确实想使用它们,你必须进行 0 级备份,这将是后续增量备份的父级: