2.1.2 物理备份
执行物理备份时,需要复制构成数据库的文件。这些备份也称为“文件系统备份”,因为它们涉及使用操作系统文件备份命令。Oracle支持两种不同类型的物理文件备份:脱机备份和联机备份(也分别称为冷备份和热备份)。可以使用RMAN(本章及第3、4、5、7和9章介绍了RMAN)执行所有物理备份。虽然也可以根据需要选择编写自定义脚本来执行物理备份,但这样一来,你将无法享受RMAN方法的诸多好处。
1.脱机备份
如果已经使用SHUTDOWN命令的NORMAL、IMMEDIATE或TRANSACTIONAL选项正常关闭了数据库(即不是因为实例故障造成的关闭),将执行一致的脱机备份。在数据库处于脱机状态时,将备份以下文件:
●所有数据文件
●所有控制文件
●所有归档重做日志文件
●init.ora文件或服务器参数文件(SPFILE)
●文本格式文件,如密码文件和tnsnames.ora
提示:
不可能也没必要备份联机重做日志文件。尽管在正常关闭后从冷备份进行还原会省下一点时间,但这样做将面临丢失已提交事务的风险,这些缺点胜过了它的方便性优点。应该镜像和多路复用联机重做日志,以便有效地消除丢失当前联机日志文件的可能性。
如果在关闭数据库时备份所有这些文件,将可以提供数据库的固定或一致的映像或快照(与关闭数据库时相同)。可在后面从保存在磁盘或磁带上的这些备份还原这些文件的完整集合,只需要重新启动数据库就可以使数据库运行。除非在将表空间设置为备份模式时执行表空间数据文件的联机备份,在数据库处于打开状态时执行数据库的文件系统备份是无效的。
处于备份模式的表空间将表空间数据文件切换为脱机状态,以便读写数据。对处于备份模式的表空间的任何更改将全部写入日志文件中。这样一来,数据文件看上去是静态的,可以复制到文件系统,并可以在后来用于恢复和日志项还原。在表空间脱离备份模式时,在日志文件中所做的所有临时更改将应用于(或恢复到)联机的数据文件。
如果在数据库发生异常终止后执行脱机备份,也将出现不一致情形,而且在恢复期间可能需要做更多工作(如果备份可用)。在崩溃后重新启动的数据库需要使用联机重做日志文件进行故障恢复,但由于未备份联机重做日志文件,还原不一致的脱机备份后几乎肯定会丢失数据。
2.联机备份
可以为在ARCHIVELOG模式中运行的任何数据库使用联机备份。在这种模式中,会归档联机重做日志,创建一个包含数据库所有事务的日志。
Oracle以循环方式写入联机重做日志文件:在填满第一个日志文件后,它开始写入第二个日志文件,在填满第二个日志文件后,它开始写入第三个日志文件,依此类推。在填满最后一个联机重做日志文件后,LGWR后台进程开始覆盖第一个重做日志文件的内容。
当Oracle以ARCHIVELOG模式运行时,ARCn后台进程会在覆盖每个重做日志文件前制作一个副本。通常将这些归档的重做日志文件写入磁盘设备中。也将这些文件直接写入磁带设备,但是磁盘空间十分经济,虽然归档到磁盘需要附加成本,但在执行灾难恢复操作时节省的人力和时间抵销了这些缺点。
提示:
大多数生产数据库,特别是支持事务处理应用程序的生产数据库,必须以ARCHIVELOG模式运行。为了使用RMAN备份联机数据库,数据库必须处于ARCHIVELOG模式。
如果数据库以ARCHIVELOG模式运行,可以在数据库打开时执行数据库的文件系统备份。在联机备份时,会将每个表空间设置为备份状态,备份其数据文件,然后将表空间还原到正常状态。
提示:
使用RMAN实用程序时,无须以手动方式将每个表空间置于备份状态。RMAN读取数据块的方式与Oracle用于查询的方式相同。
可根据联机备份完全恢复数据库,根据归档的联机重做日志,可以将其前滚到发生故障前的任意时间点。此后打开数据库时,发生故障时数据库中的任何已提交事务将还原,而在重做日志文件和数据文件中记录的任何未提交事务将回滚。
可以在数据库打开时备份以下文件:
●所有数据文件
●所有归档重做日志文件
●使用ALTER DATABASE BACKUP CONTROLFILE命令备份的一个控制文件
●SPFILE
考点:
每当备份整个数据库或SYSTEM表空间时,RMAN将自动备份控制文件和SPFILE。
联机备份过程是一项十分强大的功能,原因有以下两点:首先,它们提供了完全时间点恢复。第二,它们允许数据库在备份文件系统时仍然处于打开状态。即使根据用户的要求无法关闭数据库,也仍然可以备份文件系统。通过使数据库一直处于打开状态,也可以避免在关闭和重新启动数据库时清除数据库实例的系统全局区(SGA)。由于避免了清除SGA内存,从而减少了重新启动数据库时需要执行的物理I/O数量,数据库性能将得到提高。
提示:
可以使用Oracle Database 10g中引入的FLASHBACK DATABASE选项,不依靠物理备份来及时回滚数据库。要使用FLASHBACK DATABASE命令,必须定义闪回恢复区,必须以ARCHIVELOG模式运行,必须在安装数据库(但未打开)时发出ALTER DATABASE FLASHBACK ON命令。在FLASHBACK DATABASE操作期间,Oracle使用已经写入闪回恢复区的日志。本章的2.2节“配置快速恢复区”中将介绍快速恢复区的配置方法和用法。