备份和恢复.docx

上传人:b****5 文档编号:28054546 上传时间:2023-07-07 格式:DOCX 页数:72 大小:46.78KB
下载 相关 举报
备份和恢复.docx_第1页
第1页 / 共72页
备份和恢复.docx_第2页
第2页 / 共72页
备份和恢复.docx_第3页
第3页 / 共72页
备份和恢复.docx_第4页
第4页 / 共72页
备份和恢复.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

备份和恢复.docx

《备份和恢复.docx》由会员分享,可在线阅读,更多相关《备份和恢复.docx(72页珍藏版)》请在冰豆网上搜索。

备份和恢复.docx

备份和恢复

BackupandRecovery

备份(backup)及恢复(recovery)过程能够保护数据库,防止数据丢失,并

在需要时重建数据。

重建数据通常是通过介质恢复(mediarecovery)实现

的,介质恢复是指利用备份的数据库文件所执行的复原(restoring),前滚

(rollingforward),及回滚(rollingback)等一系列操作。

本章将介绍设计备

份恢复策略时需要掌握的基本概念。

 

本章包含以下主题:

●备份简介

●恢复简介

●如何选择适当的恢复方式

另见:

●“数据库备份与恢复特性概述”

15.1备份简介

备份(backup)是数据的一个副本(copyofdata)。

这个副本中通常包含数

据库的重要组成部分,例如控制文件(controlfile)及数据文件(datafile)

等。

备份能够减少不可预见的数据丢失或应用程序错误造成的损失。

如果原

始数据丢失,用户可以使用备份重建数据。

 

 

备份分为物理备份(physicalbackup)及逻辑备份(logicalbackup)。

物理备

份指物理数据库文件的副本,物理备份是备份恢复策略的主体。

用户可以使

用RecoveryManager(RMAN)或操作系统工具进行物理备份。

与物理备份相

对的是逻辑备份,这种备份方式使用Oracle工具抽取逻辑数据(例如,表或

存储过程)并保存在二进制文件中。

逻辑备份可以作为物理备份的补充。

 

 

进行Oracle备份恢复的方式有两种:

使用RecoveryManager进行备份恢复,

或手工管理(user-managed)的备份恢复。

 

RecoveryManager(RMAN)是用于备份(backup),复原(restore),及恢复

(recover)数据库文件的Oracle工具。

RMAN是Oracle数据库的内置工具,

无须单独安装。

 

用户也可以使用操作系统命令进行备份,并使用SQL*Plus进行恢复。

这种方

式被称为手工管理的备份恢复。

Oracle同时支持上述两种方式,但强烈建议

采用RMAN,因为采用RMAN的备份恢复方式更为健壮,且能够极大地简化

备份恢复的管理工作。

 

 

无论用户采用RMAN或手工管理的备份恢复,都可以使用Exportutility(导

出工具)对方案对象(schemaobject)进行逻辑备份,作为物理备份的补充。

Export能够将Oracle数据库内的数据写入二进制的操作系统文件。

用户可以

使用Importutility(导入工具)将数据恢复到数据库中。

 

本节包含以下主题:

●一致性备份与非一致性备份

●数据库完全备份与数据库部分备份

●RMAN备份与手工管理备份

另加:

“何时采用Import/Export工具恢复”了解关于逻辑备份的信息

一致性备份(consistentbackup)的含义是,备份所包含的各个文件中的所有

修改都具备相同的系统变化编号(systemchangenumber,SCN)。

也就是

说,备份所包含的各个文件中的所有数据均来自同一时间点。

与非一致性备

份(inconsistentbackup)不同,使用一致性数据库完全备份(consistentwhole

databasebackup)进行复原(restore)后,不需要执行恢复操作(recovery)。

 

 

非一致性备份指,在数据库处于打开(open)状态时,或数据库异常关闭

(shutdownabnormally)后,对一个或多个数据库文件进行的备份。

 

 

对数据库整体或部分进行的一致性备份(consistentbackup)后,备份中所有

数据文件(datafile)及控制文件(controlfile)都经历过检查点

(checkpoint),拥有相同的SCN。

 

 

进行一致性数据库完全备份(consistentwholedatabasebackup)的唯一方法

是:

首先使用NORMAL,IMMEDIATE,或TRANSACTIONAL选项关闭数

据库,并在数据库处于关闭状态时进行备份。

如果数据库没有完全关闭,例

如出现实例故障,或用户使用了SHUTDOWNABORT语句,此时数据库的

数据文件是非一致性的,除非此数据库为只读数据库(read-onlydatabase)。

 

 

Oracle通过数据库检查点操作使数据文件和控制文件拥有相同的SCN,即具

备一致性。

在一致性备份中,只有只读表空间(read-onlytablespace)及脱机

表空间(offlinetablespace)的SCN可以比备份中其他文件的SCN滞后。

这两

种表空间内的数据不会被修改,因此她们也能满足一致性的要求。

 

 

一致性数据库完全备份的重要特点是,使用此种备份复原(restore)的数据

库无须恢复(recovery)即可打开(open),这是因为复原的数据库具备一致

性:

复原的数据文件内的数据是正确的,无须用户进行任何处理。

用户可以

使用一年前的一致性备份复原数据库,而无须进行介质恢复(media

recovery),Oracle也不必执行实例恢复(instancerecovery)。

但是,如果使

用一致性备份复原数据库而没有应用重做日志(applyingredo),备份之后产

生的事务将全部丢失。

 

 

如果数据库运行在NOARCHIVELOG(非归档)模式下,一致性数据库完全

备份是唯一有效的备份方案,因为使用非一致性备份(inconsistentbackup)

复原数据库后需要执行恢复操作来确保数据一致性。

在NOARCHIVELOG模

式下,Oracle不会对重做日志进行归档,因此恢复所需的重做日志可能已经

不存在了。

而运行在ARCHIVELOG(归档)模式下的数据库,可以采用一

致性数据库完全备份。

当使用此种备份复原数据库后,用户可以立即打开数

据库,使备份后发生的事务全部丢失;如果归档的重做日志存在,用户也可

以应用这些日志从而恢复备份后发生的事务。

 

15.1.1.2非一致性备份概述

 

非一致性备份(inconsistentbackup)的含义是,备份所包含的各个文件中的

所有修改不具备相同的系统变化编号(systemchangenumber,SCN)。

换句

话说,有些修改在备份中不存在。

这意味着备份所包含的各个文件中的所有

数据来自不同的时间点。

如果数据文件在备份的同时也在被修改就会出现上

述情况。

Oracle的恢复(recovery)操作能够比较所有数据文件头(datafile

headers)中的SCN,之后以最早的SCN为起点读取归档及联机重做日志文

件,并将其中出的所有修改应用到复原的数据文件中。

如果数据库必须24*7地工作,对这样的数据库只能进行非一致性数据库完全

备份。

联机数据文件的备份被称为联机备份(onlinebackup)。

需要进行联机

备份的数据库必须运行在ARCHIVELOG(归档)模式下。

 

 

如果数据库运行在ARCHIVELOG模式下,用户不必每次都进行数据库完全

备份。

例如,如果数据库包含七个表空间,用户每晚都备份控制文件及一个

不同的表空间,那么一周后用户就已经备份了数据库的全部表空间及控制文

件。

用户可以把这个交错的备份作为数据库完全备份。

如果需要使用这个交

错的备份恢复数据库,除了复原数据之外,用户还需应用最早备份时间之后

的产生所有归档重做日志。

 

警告:

Oracle强烈建议,运行在NOARCHIVELOG模式下的数据库关

闭后不要进行非一致性备份。

如果用这样的备份复原数据库有

可能造成数据损坏。

另见:

 

在进行联机备份(onlinebackup)后或关闭(close)数据库后进行非一致性备

份(inconsistentbackup)后,一定要归档未归档的重做日志,以保存恢复

(recover)所需的重做数据。

 

15.1.1.2.2备份归档日志文件及控制文件

 

在进行了非一致性备份后(无论备份时数据库是打开(open)或关闭

(close)状态),Oracle建议首先对非一致性备份期间产生的归档重做日志

进行备份,再对非一致性备份完成后的控制文件进行备份。

如果用户没有备

份非一致性备份期间产生的归档重做日志,将无法恢复使用非一致性备份还

原的数据库,因为此种情况下可能缺少足够的重做日志来使数据保持一致

性。

 

15.1.2数据库完全备份与数据库部分备份

本节讨论以下主题:

●数据库完全备份

●表空间备份

●数据文件备份

●控制文件备份

●归档重做日志备份

另见:

了解关于逻辑备份的信息

15.1.2.1数据库完全备份

 

数据库完全备份(wholedatabasebackup)是数据库内所有数据文件

(datafile)及控制文件(controlfile)的备份。

数据库完全备份是最常用的一

种备份。

 

 

运行在ARCHIVELOG(归档)及NOARCHIVELOG(非归档)模式下的数

据库都可以进行数据库完全备份。

在进行数据库完全备份前,应了解在

ARCHIVELOG及NOARCHIVELOG模式下各种备份方案间的关系。

 

 

图15-1显示了进行数据库完全备份时所有可能的备份方案。

 

039Figure15-1WholeDatabaseBackupOptions

 

图15-1数据库完全备份方案

 

 

 

数据库完全备份既可以是一致性备份(consistentbackup)或非一致性备份

(inconsistentbackup)。

备份的类型决定了使用备份复原(restore)数据库后

是否需要应用重做日志(redolog)。

 

15.1.2.2表空间备份

 

表空间备份(tablespacebackup)是构成表空间的数据文件(datafile)的备

份。

例如,如果users表空间包含数据文件2,3,及4,那么对users表空间进

行备份时就应备份这三个数据文件。

 

 

表空间备份可以是联机的(online)或脱机的(offline),但数据库必须运行

在ARCHIVELOG(归档)模式下表空间备份才是有效的。

因为在使用表空

间备份复原(restore)一个表空间后,必须应用重做日志(redo)才能使其与

其他表空间保持一致性。

 

15.1.2.3数据文件备份

数据文件备份(datafilebackup)是对单个数据文件(datafile)的备份。

与表

空间备份(tablespacebackup)相比,数据文件备份较少被使用。

数据库运行

在ARCHIVELOG(归档)模式下时数据文件备份才有效。

但有两种例外情

况,数据库运行在NOARCHIVELOG(非归档)模式下数据文件备份也有

效:

●构成表空间的所有数据文件都进行了备份。

用户必须使用所有数据文

件来复原数据库。

●数据文件是只读的或脱机(offline-normal)的。

047SeeAlso:

另见:

15.1.2.4控制文件备份

 

备份控制文件(controlfile)是备份与恢复(recovery)过程中的重要工作。

有控制文件,数据库将无法挂载(mount)或打开(open)。

 

 

用户可以利用RMAN命令CONFIGURECONTROLFILEAUTOBACKUP来实

现在运行备份作业时自动地备份控制文件。

由于自动备份功能

(autobackup)使用默认的文件名,即使RMAN资料库不可用RMAN也能使

用备份复原(restore)数据库。

因此,这个功能在灾难恢复(disaster

recovery)工作中可以发挥重要作用。

 

用户也可以采用以下方式手工备份控制文件:

●RMAN的BACKUPCURRENTCONTROLFILE命令能够以二进制的格

式备份控制文件。

备份可以存在于备份集(backupset)或镜像副本

(imagecopy)中。

●SQL语句ALTERDATABASEBACKUPCONTROLFILE能够以二进制的

格式备份控制文件。

●SQL语句ALTERDATABASEBACKUPCONTROLFILETOTRACE能够

将控制文件的内容导出为SQL脚本文件。

用户可以使用此脚本创建新

的控制文件。

但跟踪文件备份(tracefilebackup)有一个重大缺点。

踪文件无法备份归档重做日志(archivedredolog)及RMAN备份与备

份副本。

因此采用二进制格式的备份更为适宜。

另见:

●OracleDatabaseBackupandRecoveryReference

15.1.2.5归档重做日志备份

 

在恢复(recover)使用非一致性备份(inconsistentbackup)复原(restore)的

数据库时,归档重做日志(archivedredolog)必不可少。

除非使用了RMAN

的增量备份(incrementalbackup)功能,否则必须利用归档重做日志对非一

致性备份进行恢复。

如需将一个备份恢复到最新日志点(recentlog),则必

须使用从复原点到最新日志点间的所有重做日志。

举例来说,如果173号重

做日志丢失,用户就无法将数据库从100号日志点恢复到200号日志点。

时用户只能在172号日志点处停止恢复,并使用RESETLOGS选项打开

(open)数据库。

 

 

由于归档重做日志在恢复中必不可少,用户应该周期性地对其进行备份。

条件允许,还应将备份复制到磁带上。

 

用户可以采用以下方法对归档重做日志进行备份:

●RMANBACKUPARCHIVELOG命令

●RMANBACKUP...PLUSARCHIVELOG命令

●操作系统工具

另见:

15.1.3RMAN备份与手工管理备份

 

备份有两种类型(type):

镜像副本(imagecopy)及备份集(backupset)。

镜像副本是与数据文件(datafile),控制文件(controlfile)或归档重做日志

文件(archivedlog)完全一致的副本。

用户可以使用操作系统工具或RMAN

创建镜像副本,也能够使用操作系统工具或RMAN直接利用镜像副本恢复数

据库,而无须任何额外处理。

 

提示:

RMAN与操作系统复制的区别在于,RMAN能够验证备份文件

内数据块的有效性,并在资料库中记录复制的情况。

 

备份集(backupset)是由被称为备份成员(backuppiece)的一个或多个物理

文件构成的,其格式为RMAN自有格式。

备份集与镜像副本的区别在于,备

份集内可以包含多个数据文件,且备份过程中可以进行特殊处理,例如压缩

或增量备份(incrementalbackup)等。

备份集必须使用RMAN来恢复。

 

15.1.3.1使用RMAN进行联机备份

在联机备份(onlinebackup)期间数据库仍会向数据文件中写入数据,因此备

份中可能存在含有非一致性(inconsistent)数据的数据块(datablock)。

如,RMAN或操作系统工具在读取数据块的同时,数据库写进程可能会更新

相同的数据块。

此时,RMAN或复制工具读取的数据块中既包含新数据,又

包含旧数据。

这样的数据块是无效块(fracturedblock),即块内的数据不具

备一致性。

 

 

在使用RMAN进行备份时,是Oracle数据库服务器而非操作系统工具负责读

取数据文件(datafile)。

数据库服务器逐一读取数据块并判断其是否有效。

如果数据块是无效的,Oracle会再次读取直道获得了具备一致性的数据块为

止。

 

 

如果用户使用操作系统工具(而非RMAN)备份联机数据,则需采用另一种

方式解决无效块的问题。

用户需要首先使用ALTERTABLESPACEBEGIN

BACKUP语句(备份单独的表空间)或ALTERDATABASEBEGINBACKUP

语句(备份整个数据库)将数据文件置为备份模式(backupmode)。

在联机

备份结束后,再使用ALTERTABLESPACE...ENDBACKUP或ALTER

DATABASEENDBACKUP将相关的数据文件恢复原状态。

 

 

当数据库对处于备份模式的文件进行修改操作时,系统会记录额外的重做数

据(redodata)。

这些数据用于修复操作系统工具备份中可能包含的无效

块。

 

15.2恢复简介

 

复原(restore)数据文件(datafile)或控制文件(controlfile)的物理备份是

指利用备份重建这些文件并使其在Oracle数据库服务器中正常工作。

而对复

原的数据文件进行恢复(recover)是指利用归档重做日志(archivedredo

log)及联机重做日志(onlineredolog)对其进行更新,即重做在数据库备份

后发生的操作。

如果使用了RMAN,用户也可以使用增量备份(incremental

backup)来恢复数据文件,数据文件的增量备份中只包含其前一次增量备份

后修改过的数据块。

 

 

当所有文件被复原后,用户还需执行介质恢复(mediarecovery)的剩余步

骤。

介质恢复过程包括了对备份数据库文件的复原,前滚(rollforward)及

回滚(rollback)等操作。

 

 

在介质恢复过程中将应用归档重做日志及联机重做日志恢复数据文件。

Oracle每次修改数据文件之前,都会首先将这些修改记录在联机重做日志

中。

介质恢复过程就是将归档重做日志及联机重做日志中的相关修改操作记

录应用到复原的数据文件中以实现前滚。

 

 

如果用户需要修正逻辑数据错误(logicaldatacorruption)或用户操作失误

(usererror),可以使用OracleFlashback(回闪)技术。

用户利用Oracle

FlashbackDatabase(回闪数据库)及OracleFlashbackTable(回闪表)能够将

数据迅速恢复到之前某个时间点的状态。

 

 

图15-2显示了数据库备份,复原,及介质恢复的基本原理。

 

 

图15-2介质恢复

 

 

 

图15-2显示了数据库介质故障后进行复原及恢复的基本概念。

数据库

在SCN为100时进行了备份,在SCN为600时发生了介质故障。

SCN在100至600之间的重做日志已经被归档以供恢复只用。

用户首

先使用SCN为100时制作的备份复原数据库(复原也可以在新介质上

进行)。

之后再使用重做日志恢复数据库,即重新执行从备份点到介

质故障点之间的所有数据修改操作。

 

与介质恢复不同,Oracle在实例故障(instancefailure)之后能自动地执行崩

溃恢复(crashrecovery)及实例恢复(instancerecovery)。

崩溃恢复及实例恢

复能够在实例故障发生后将数据库恢复到满足事务一致性(transactionconsistent)

的状态。

崩溃恢复的定义是:

单实例系统发生崩溃或OracleRAC

系统中所有实例发生崩溃后对数据库进行的恢复。

与之相对,实例恢复的定

义是:

OracleRAC系统中正常实例对故障实例进行的恢复。

 

本节包含以下主题:

●介质恢复概述

●RMAN与手工管理的复原及恢复概述

●利用OracleFlashback技术实现恢复

●其他类型的Oracle恢复

另见:

15.2.1介质恢复概述

 

先利用备份复原(restore)数据再应用重做日志(redolog)的恢复

(recovery)方式被称为介质恢复(mediarecovery)。

介质恢复能将一个复原

的备份更新到当前时间点或之前某个指定的时间点。

通常“介质恢复”这个

术语专指对数据文件进行恢复的过程。

而数据块介质恢复(blockmedia

recovery)指数据文件中的个别数据块出现错误时进行的特殊恢复操作。

无论

进行哪种恢复,首先都需要使用备份复原数据。

 

●BlockMediaRecovery

本节包含以下主题:

●完全恢复

●不完全恢复

●数据文件介质恢复

●数据块介质恢复

15.2.1.1完全恢复

 

完全恢复(completerecovery)包括两个步骤:

首先使用数据库,表空间或数

据文件(datafile)的备份进行复原,再使用重做数据(redodata)或增量备份

(incrementalbackup)将数据更新到当前时间点。

之所以称这样的恢复为完

全恢复,是因为Oracle将使用归档及联机重做日志(archivedandonlinelog)

中的所有重做信息进行恢复,即恢复到当前时间点。

通常,当出现介质故障

(mediafailure)导致数据文件或控制文件(controlfile)损坏时,需要用户进

行介质恢复。

 

用户可以对数据库,表空间,数据文件执行完全恢复。

用户对整个数据库进

行完全恢复时必须满足以下条件:

●挂载(mount)数据库

●确保所有需要被恢复的数据文件处于联机(online)状态

●复原数据库或需要恢复的数据文件

●应用联机重做日志或/与归档重做日志

用户对表空间及数据文件进行完全恢复时必须满足以下条件:

●如果数据库处于打开状态,应将需要恢复的表空间或数据文件置为脱

机(offline)状态

●复原需要恢复的数据文件

●应用联机重做日志或/与归档重做日志

15.2.1.2不完全恢复

不完全恢复(incompleterecovery),也被称为按时间点恢复(point-in-time

recovery),指没有将数据库恢复到当前时间点的恢复。

换句话说,用户没有

将最近一次备份之后产生的所有重做日志应用到复原的数据库上。

用户通常

在下列情况出现时对数据库进行不完全恢复:

●介质故障(mediafailure)导致部分或全部联机重做日志(onlineredo

log)损坏。

●用户操作失误(usererror)导致数据丢失,例如,用户由于疏忽而移

除了表。

●由于归档重做日志(archivedredolog)丢失而无法进行完全恢复

(completerecovery)。

●当前控制文件(controlfile)丢失,必须使用备份的控制文件打开

(open)数据库。

 

执行不完全介质恢复(incompletemediarecovery)时,用户需要使用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1