Oracle数据库中备份、恢复的概念及其关系
什么是备份
所谓备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。如下图所示:
ORACLE数据库的备份分为物理备份和逻辑备份两种。物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物理备份。逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。Oracle提供的逻辑备份工具是 EXP。数据库逻辑备份是物理备份的补充。
根据在物理备份时数据库的状态,可以将备份分为一致性备份(consistent backup)和不一致性备份(inconsistent backup)两种:
一致性备份:一致性备份是当数据库的所有可读写的数据库文件和控制文件具有相同的系统改变号(SCN),并且数据文件不包含当前 SCN 之外的任何改变。在做数据库检查点时,Oracle 使所有的控制文件和数据文件一致。对于只读表空间和脱机的表空间,Oracle 也认为它们是一致的。使数据库处于一致状态的唯一方法是数据库正常关闭(用shutdown normal 或 shutdown immediate 命令关闭)。因此,只有在以下条件下的备份是一致性备份:
数据库正常关闭(用shutdown normal 或 shutdown immediate 命令关闭)。
不一致性备份:不一致备份是当数据库的可读写的数据库文件和控制文件的系统改变号(SCN)在不一致条件下的备份。对于一个 7*24 工作的数据库来说,由于不可能关机,而数据库数据是不断改变的,因此只能进行不一致备份。在 SCN 号不一致的条件下,数据库必须通过应用重做日志使 SCN 一致的情况下才能启动。因此,如果进行不一致备份,数据库必须设为归档状态,并对重做日志归档才有意义。在以下条件下的备份是不一致性备份:
数据库处于打开状态。
数据库处于关闭状态,但是用非正常手段关闭的。例如,数据库是通过 shutdown abort 或机器掉电等等方法关闭的。
什么是恢复
所谓恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。根据出现故障的原因,恢复分为两种类型:
实例恢复。这种恢复是Oracle实例出现失败后,Oracle自动进行的恢复。
介质恢复。这种恢复是当存放数据库的介质出现故障时所做的恢复。本书后面提到的恢复都是指介质恢复。
装载(restore)物理备份与恢复(Recover)物理备份是介质恢复的手段。装载是将备份考回到磁盘,恢复是利用重做日志(物理备份的一部分)修改考回到磁盘的数据文件(物理备份的另一部分),从而恢复数据库的过程。如下图所示:
根据数据库的恢复程度,将恢复方法分为两种类型:
完全恢复:将数据库恢复到数据库失败时数据库的状态。这种恢复是通过装载数据库备份和并应用全部的重做日志做到的。
不完全恢复:将数据库恢复到数据库失败前的某一时刻数据库的状态。这种恢复是通过装载数据库备份和并应用部分的重做日志做到的。进行不完全恢复后必须在启动数据库时用 resetlogs 选项重设联机重做日志。
例如,在上午10:00,由于磁盘损坏导致数据库中止使用。现在使用两种方法进行数据库的恢复,第一种方法使数据库可以正常使用,且使恢复后与损坏时(10:00)数据库中的数据相同,那么第一种恢复方法就属于完全恢复类型;第二种方法能使数据库正常使用,但只能使恢复后与损坏前(例如9:00)数据库中的数据相同,没能恢复数据库到失败时(10:00)数据库的状态,那么第二种恢复方法就属于不完全恢复类型。
事实上,如果数据库备份是一致性的备份,则装载后的数据库即可使用,从而也可以不用重做日志恢复到数据库备份时的点。这也是一种不完全恢复。
Oracle 备份 数据库 恢复 backup Database 相关文章:
- 浅析SQL Server与Oracle区别(04-22)
- 5条DBA最佳实践指导(04-25)
- Oracle简化Oracle 10g中用户管理(04-29)
- 讲解基于Oracle高性能动态SQL程序开发(04-29)
- 在Linux系统下优化Oracle具体步骤(05-01)
- 如何选择Oracle优化器(04-30)