1.NOARCHIVELOG模式下的物理备份
前面已经讨论过Oracle数据库中的NOARCHIVELOG模式,这种数据库操作模式只在数据库关闭时支持数据库备份。此外,NOARCHIVELOG模式下数据库的完全恢复只能恢复到备份的时间点。按照下面的步骤可以在NOARCHIVELOG模式中执行数据库的手动备份(需要注意的是,如果使用RMAN,这些步骤会有所不同,这将在后面的章节介绍):
(1)完全关闭数据库。
(2)备份所有数据库数据文件、控制文件和联机重做日志。
(3)重新启动数据库。
2.ARCHIVELOG模式下的物理备份
如果在ARCHIVELOG模式下运行数据库,那么既可以在数据库运行时完全备份数据库,也可以在数据库关闭时进行。即使是在数据库关闭时进行备份,步骤也会稍有不同,请看如下所示的冷备份步骤:
(1)完全关闭数据库。
(2)备份所有数据库数据文件。
(3)重新启动数据库。
(4)使用alter system switch logfile命令强制执行一个联机重做日志切换。一旦归档了联机重做日志,那么就备份所有归档的重做日志。
(5)使用alter database backup control file to trace 命令和alter database backupcontrolfile to ‘file_name’命令创建控制文件的一个备份。
当然,在数据库处于ARCHIVELOG模式时,您有可能想完成数据库的联机备份(热备份)。数据库处于ARCHIVELOG模式时,Oracle允许在数据库打开和运行的同时备份每个单独的表空间与其数据文件,甚至还可以在不同的时刻备份选择的数据库部分。使用下面的步骤可以执行表空间的一个联机备份:
(1)使用alter tablespace begin backup命令将需要备份的表空间和数据文件置入联机备份模式。如果希望备份整个数据库,则可以使用alter database begin backup命令将所有数据库表空间置入热备份模式。
(2)备份与刚被置入热备份模式的表空间相关联的数据文件(可以选择备份指定的数据文件)。
(3)对于在步骤(1)中置入联机备份模式的每个表空间来说,都要执行alter tablespaceendbackup命令将其从热备份模式中取出。如果希望将所有表空间从热备份模式中取出,可以使用alter database end backup命令。
(4)使用alter system switch logfile命令强制执行一个联机重做日志切换。
(5)一旦完成了日志切换并归档了当前的联机重做日志,就备份所有归档的重做日志。
需要注意的是,步骤(5)中的日志切换和归档的重做日志备份是必需的,这是因为恢复操作必须应用在备份期间生成的所有重做上。Oracle在联机备份期间不断地物理更新数据文件(除了数据文件头)时,在备份操作期间存在数据块分离的可能性,这种可能性会导致备份的数据文件不一致。此外,数据库数据文件可能在备份之后、但是在整个备份进程结束之前被写入,由于备份中的每个数据文件当前可能会有不同的SCN,因此数据件备份映像会不一致,所以拥有在备份期间生成的重做以应用于恢复是非常重要的。
执行alter tablespace begin backup命令或alter database begin backup命令时,重做生成会发生更改。一般来说,Oracle只将更改矢量存储为重做记录。这些小型的记录只定义已经发生的更改。当数据文件处于联机备份模式时,Oracle会记录数据库数据文件的整个块更改,而不是仅仅记录更改矢量,这意味着联机备份期间总的重做生成会大幅增加,这样在热备份进程执行期间所需的磁盘空间和CPU开销会受到影响。RMAN提供了不将表空间置入热备份模式而执行热备份的功能,这样就避免了使用额外的I/O操作。当结束数据文件的联机备份状态时,就可以进行正常的操作。
还需要注意的是在ARCHIVELOG模式的两种备份中(联机备份和脱机备份),并不备份联机重做日志,而是备份数据库的归档的重做日志。此外,也不会备份控制文件,但是会创建备份控制文件,这是因为在恢复期间不希望冒险重写联机重做日志或控制文件。
至于为什么不恢复联机重做日志,那是因为在ARCHIVELOG模式的恢复期间,联机重做日志中可能有最新的重做,这样当前的联机重做日志将被用于完全的时间点恢复。由于这个原因,我们不在ARCHIVELOG模式的数据库恢复期间重写联机重做日志。如果数据库丢失了联机重做日志(希望不会发生这种情况),就必须使用所有归档的重做日志来执行时间点恢复。
出于与不备份联机重做日志相同的原因,我们也不备份控制文件。因为当前控制文件包含最新的联机重做日志信息和归档的重做日志信息,所以我们不想用这些对象先前的信息来重写最新的信息。如果丢失了所有的控制文件,则可以使用备份控制文件来恢复数据库。
最后来看看对归档的重做日志文件做补充备份以及保护归档的重做日志不丢失的其他方法。丢失归档的重做日志直接影响将数据库恢复到故障点的能力。如果丢失了归档的重做日志并且联机重做日志组不再含有该日志序列号,数据库就只能恢复到丢失的归档的重做日志序列号之前的日志序列号。
……
展开