一致性备份(consistent backup)的含义是,备份所包含的各个文件中的所有修改都具备相同的系统变化编号(system change number,SCN)。
也就是说,备份所包含的各个文件中的所有数据均来自同一时间点。与非一致性备份(inconsistent backup)不同,
使用一致性数据库完全备份(consistent whole database backup)进行复原(restore)后,不需要执行恢复操作(recovery)。
非一致性备份指,在数据库处于打开(open)状态时,或数据库异常关闭(shut down abnormally)后,对一个或多个数据库文件进行的备份。
1 一致性备份概述
对数据库整体或部分进行的一致性备份(consistent backup)后,备份中所有数据文件(datafile)及控制文件(control file)
都经历过相同检查点(checkpoint),拥有相同的 SCN。
进行一致性数据库完全备份(consistent whole database backup)的唯一方法是:首先使用 NORMAL,IMMEDIATE,或 TRANSACTIONAL 选项关闭数据库
并在数据库处于关闭状态时进行备份
Oracle 通过数据库检查点操作使数据文件和控制文件拥有相同的 SCN,即具备一致性。在一致性备份中,只有只读表空间(read-only tablespace)及
脱机表空间(offline tablespace)的 SCN 可以比备份中其他文件的 SCN 滞后。这两种表空间内的数据不会被修改,因此她们也能满足一致性的要求。
一致性数据库完全备份的重要特点是,使用此种备份复原(restore)的数据库无须恢复(recovery)即可打开(open),
这是因为复原的数据库具备一致性:复原的数据文件内的数据是正确的,无须用户进行任何处理。用户可以使用一年前的一致性备份复原数据库,
而无须进行介质恢复(media recovery),Oracle 也不必执行实例恢复(instance recovery)。
但是,如果使用一致性备份复原数据库而没有应用重做日志(applying redo),备份之后产生的事务将全部丢失。
2 非一致性备份
如果数据库没有完全关闭,例如出现实例故障,或用户使用了 SHUTDOWN ABORT 语句,此时数据库的数据文件是非一致性的,即控制文件和redo log,
dbf这三个拥有的scn不一至,除非此数据库为只读数据库。
如果数据库运行在 NOARCHIVELOG(非归档)模式下,一致性数据库完全备份是唯一有效的备份方案,因为使用非一致性备份(inconsistenbackup)复原数据库后需要执行恢复操作来确保数据一致性。在NOARCHIVELOG 模式下,Oracle 不会对重做日志进行归档,因此恢复所需的重做日志可能已经不存在了。而运行在 ARCHIVELOG(归档)模式下的数据库,可以采用一致性数据库完全备份。当使用此种备份复原数据库后,用户可以立即打开数据库,使备份后发生的事务全部丢失;如果归档的重做日志存在,用户也可以应用这些日志从而恢复备份后发生的事务。