Oracle数据库备份与恢复技术Word格式文档下载.docx
- 文档编号:21106535
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:10
- 大小:24.94KB
Oracle数据库备份与恢复技术Word格式文档下载.docx
《Oracle数据库备份与恢复技术Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Oracle数据库备份与恢复技术Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
如果备份是一致的,那么根本不需要用户应用任何重做数据。
下面用介质恢复的一个简单例子来解释一下这个概念。
假定用户在中午为数据库作了一个备份。
从中午开始,每一分钟对数据库进行一次更改。
在下午1点时,一个磁盘驱动器出现故障,导致那个磁盘上的所有数据丢失。
幸运的是,Oracle在重做日志中记录了所有更改。
则用户可以将中午的备份还原到一个正常运转的磁盘驱动器上,使用重做数据将数据库恢复到下午1点,从而重建丢失的更改。
备份与恢复策略要素
尽管备份与恢复操作非常复杂并随因企业而异,但基本原则均遵循这四个简单的步骤:
1.创建联机重做日志的多个副本
2.在ARCHIVELOG模式下运行数据库,并将重做日志存档至多个位置
3.维护控制文件的多个并发备份
4.时常备份物理数据文件,并将它们存储在一个安全的地方;
如果可能,创建多个副本
只要用户在安全的存储器备份了数据库并存档了重做日志,就可以重建原始数据库。
备份与恢复的主要数据结构
在用户开始认真考虑备份与恢复策略之前,必须明确与备份和恢复操作相关的物理数据结构。
本节讨论了以下物理数据结构:
∙数据文件
∙控制文件
∙联机重做日志文件
∙存档重做日志文件
∙自动管理的撤消
数据文件
每个Oracle数据库都有属于称为表空间的逻辑结构的一个或多个物理数据文件。
数据文件被分为更小的称为数据块的单元。
逻辑数据库结构的数据(如表和索引)物理上位于为数据库分配的数据文件的块中。
数据文件具有以下特性:
∙用户自定义的特性允许数据文件在数据库空间不足时自动扩展。
∙一个或多个物理数据文件组成了一个称为表空间的逻辑数据库存储单元。
每个数据文件的第一个块均为头(header)。
头包括诸如文件大小、块大小、表空间和创建时间戳记等重要信息。
只要打开数据库,Oracle就检查数据文件头信息是否与存储在控制文件中的信息匹配。
如果不匹配,则必须进行恢复。
Oracle在正常操作期间读取数据文件中的数据,并将其存储在缓冲区高速缓存中。
例如,假定用户要访问表中的一些数据。
如果请求的信息尚未出现缓冲区高速缓存中,则Oracle将从相应的数据文件中读取它并将其存储在内存中。
控制文件
每个Oracle数据库都有一个控制文件,该文件包含组成数据库的所有其它文件的操作系统文件名。
这个重要的文件还包含在恢复期间使用的一致性信息,如:
∙数据库名称
∙数据库创建时间戳记
∙数据库的数据文件以及联机和存档重做日志文件的名称
∙检查点—在重做日志中指示在这个点之前的所有数据库更改都已保存在数据文件中的一条记录。
∙恢复管理器(RMAN)备份元数据
用户可以创建控制文件的多个副本,从而允许Oracle写控制文件的多个副本以防止灾难的发生。
如果操作系统支持磁盘镜像,那么也可以创建控制文件的镜像,从而允许O/S将控制文件的一个副本写到多个磁盘上。
每一次用户挂载Oracle数据库时,均使用它的控制文件来识别数据文件和联机重做日志文件(必须为数据库操作而打开)。
如果更改了数据库的物理组成,如创建了一个新的数据文件或重做日志文件,则Oracle将修改数据库的控制文件以反映该更改。
只要更改了数据库的结构,就应备份控制文件。
结构更改可能包括添加、删除或更改数据文件或表空间以及添加或删除联机重做日志。
联机重做日志文件
重做日志对于恢复绝对至关重要。
例如,假定一次电力中断使Oracle无法将修改的数据永久写入数据文件中。
在这种情况下,可以把数据文件中较早版本的数据与记录在联机重做日志中的最近更改结合起来重建丢失的数据。
每个Oracle数据库都包含一组两个或多个联机重做日志文件。
Oracle为每个重做日志文件分配一个日志序列号以唯一地标识它。
该组数据库重做日志文件共同称为数据库的重做日志。
Oracle使用重做日志记录对数据库所做的所有更改。
Oracle在重做记录(重做缓冲区中一个描述更改的条目)中记录每一个更改。
例如,假定用户更新了工资单表中的一个列值(从5改为7)。
Oracle将旧值记录在撤销记录中,将新值记录在重做记录中。
因为重做日志存储了对数据库所做的每次更改,所以这个事务的重做记录实际上包含了三个部分:
∙对撤消事务表所做的更改
∙对撤消数据块所做的更改
∙对工资单表数据块所做的更改
如果用户随后提交了对工资单表所做的更新—使得由SQL语句执行的更改变为永久性的—那么Oracle将生成另一条重做记录。
通过这种方式,系统仔细地监视着在数据库中发生的一切。
重做日志文件的循环使用
日志写入器(LGWR)将重做日志条目写到磁盘上。
重做日志数据是在系统全局区的重做日志缓冲区中生成的。
随着事务的提交和日志缓冲区的充满,LGWR将重做日志条目写到一个联机重做日志文件中。
LGWR以循环方式书写联机重做日志文件:
当它写满了当前联机重做日志文件(称为活动文件)时,LGWR将写入下一个可用非活动重做日志文件。
LGWR循环使用数据库中的联机重做日志文件,覆盖旧的重做数据。
根据是否启用了存档,写满的重做日志文件可按以下方式进行重用:
∙如果禁用了存档,则一旦将记录在日志中的更改保存到数据文件中,就可再次使用写满的联机重做日志了。
∙如果启用了存档,则一旦将更改保存到数据文件中并将文件存档后,就可再次使用写满的联机重做日志了。
存档重做日志文件
存档日志文件是Oracle已经在其中写满了重做条目、将其以非活动状态提供并拷贝到一个或多个日志存档目标位置的重做日志。
Oracle可以在两种模式中的任意一种之下运行:
∙ARCHIVELOG—Oracle在周期中重用写满的联机重做日志文件之前将其存档。
∙NOARCHIVELOG—Oracle在周期中重用写满的联机重做日志文件之前不将其存档。
在ARCHIVELOG模式下运行数据库有以下好处:
∙数据库可以从实例故障和介质故障中完全恢复过来。
∙用户可以执行联机备份,即在数据库打开并且可供使用的同时备份表空间。
∙可将存档的重做日志传输并应用到备用数据库中
∙Oracle支持多重存档日志,以避免存档日志上任何可能的单点故障。
∙用户拥有更多恢复选择,如能够执行表空间时间点恢复(TSPITR)
在NOARCHIVELOG模式下运行数据库有以下后果:
∙用户只能在正常停机后、数据库完全关闭时备份数据库。
∙一般而言,唯一的介质恢复选择就是还原整个数据库,这将导致丢最后一次备份后执行的所有事务。
自动管理的撤消
每个Oracle数据库都必须有一种方法来保留用于回滚或撤消对数据库所做更改的信息。
这种信息包含了事务的操作的记录(主要在提交这些操作之前)。
Oracle将这些记录统称为撤消。
过去,Oracle曾使用回滚段存储撤消。
事实证明,对这些回滚段的空间管理十分复杂。
Oracle现在提供了存储撤消的另一种方法,它消除了管理回滚段空间的复杂性,并为DBA提供对撤消被覆盖前所保留时间的控制。
这种方法使用一个撤消表空间。
撤销记录用于:
∙在执行ROLLBACK语句时回滚事务
∙恢复数据库
∙提供读一致性
当执行回滚语句时,撤销记录用于撤销由未提交的事务对数据库所做的更改。
在数据库恢复期间,撤销记录用于撤销从重做日志应用到数据文件中的任何未提交的更改。
在一个用户更改数据的同时,撤销记录将为访问数据的另一用户保留数据的前镜像,从而提供读一致性。
了解基本备份
备份策略为防止数据丢失提供了安全防护。
回答以下问题可以帮助数据库管理员制订一个强大的备份策略:
∙可能出现何种类型的故障?
∙应当备份哪些信息?
∙应当使用哪种备份方法?
∙应当联机还是离线备份?
∙备份的频率?
∙如何避免危险的备份方法?
可能出现何种类型的故障?
数据丢失的原因各种各样。
下面是可能导致数据丢失的一些最常见的故障类型。
语句故障是Oracle程序在处理语句时的逻辑错误。
例如,用户执行了无效SQL结构的语句。
当发生语句故障时,Oracle自动撤销语句的所有效果并将控制返回给用户。
进程故障是访问Oracle的用户进程中出现的故障(即异常断开或进程终止)。
尽管Oracle和其他的用户进程可以继续工作,但出现故障的用户进程将不能继续工作。
如果用户进程在更改数据库时出现故障,则Oracle后台进程将撤销未提交事务的效果。
实例故障是使Oracle实例(即SGA和后台进程)无法继续工作的问题。
实例故障可能源于硬件问题(如电力中断)或软件问题(如操作系统崩溃)。
当实例出现故障时,Oracle不会将SGA缓冲区中的数据写到数据文件中。
用户或应用程序错误是导致数据丢失的用户错误。
例如,用户可能无意地从工资单表中删除数据。
这种用户错误可能需要将数据库或对象恢复到该错误发生前的某个时间点上。
为了允许从用户错误中恢复过来并满足其他独特的恢复要求,Oracle提供了闪回技术。
介质故障是当Oracle试图写或读操作数据库所需要的文件时出现的物理问题。
一个常见的例子是磁盘头损坏,它将导致磁盘驱动器上的所有数据丢失。
磁盘故障可能影响各种文件(包括数据文件、重做日志文件和控制文件)。
因为数据库实例无法继续正常工作,所以它无法将SGA的数据库缓冲区中的数据写到数据文件中。
应当备份哪些信息?
一个数据库包含各种类型的数据。
当制订备份策略时,DBA必须确定他们要复制哪些信息。
基本的备份类型包括:
∙联机数据库备份
∙离线数据库备份
∙整个数据库
∙表空间
∙存档重做日志
∙配置文件
在确定要备份的信息时,基本的原则是根据数据的重要性和更改的程度来确定数据的优先级。
例如,虽然存档日志不发生变化,但它们对恢复数据库至关重要,因此如果可能应维护多个副本。
然而,费用帐户表被用户不断更新。
因此,应当经常备份该表空间,以防止在恢复时不得不应用过多的重做数据。
可以以多方式组合备份。
例如,DBA可以决定每周执行整个数据库的备份,以确保获得原始数据库信息的一个相对较新的副本,而每天备份使用最频繁的表空间。
DBA还可以为所有重要的控制文件和存档重做日志创建多个副本作为额外的安全防护。
联机数据库备份
联机备份也称为开放备份,其中所有的读-写数据文件和控制文件都没有对相同的SCN设置检查点。
例如,一个读-写数据文件头可能包含一个为100的SCN,而其他读-写数据文件头包含一个为95或90的SCN。
在所有这些头SCN一致前,即将联机重做日志中记录的所有更改都保存到磁盘上的数据文件前,Oracle无法打开数据库。
如果数据库必须保持不间断运行,则您除了在ARCHIVELOG模式下执行整个数据库的联机备份之外别无选择。
离线数据库备份
在这种备份中,所有的数据文件和控制文件在相同的时间点上都保持一致—例如,对相同的SCN保持一致。
在一个一致的备份中被允许拥有旧SCN的唯一表空间是只读且“离线-正常”的表空间,它们与备份中的其他数据文件保持一致。
这种类型的备份允许用户打开由备份创建的文件集,而无需应用重做日志,这是因为数据已经是一致的了。
执行这种备份的唯一方式是正常关闭数据库,然后在数据库关闭时执行备份。
一个一致的整个数据库备份是为在NOARCHIVELOG模式下运行的数据库提供的唯一有效的备份选择。
整个数据库备份
这种最常见的备份类型—整个数据库备份—包含了控制文件以及属于该数据库的所有数据库文件。
如果在ARCHIVELOG模式下运行,则DBA还可以选择在一段时间内备份数据库的不同部分,从而一部分一部分地构建整个数据库备份。
表空间备份
表空间备份是数据库的一个子集。
表空间备份只有当数据库在ARCHIVELOG模式下运行时才有效。
表空间备份对于在NOARCHIVELOG模式下运行的数据库有效的唯一时间是当该表空间只读或离线正常时。
数据文件备份
数据文件备份是单个数据文件的备份。
数据文件备份没有表空间备份那么常见,并且只有当数据库在ARCHIVELOG模式下运行时才有效。
数据文件备份对于在NOARCHIVELOG模式下运行的数据库有效的唯一时间是当数据文件是表空间中唯一的文件时。
例如,备份是表空间备份,但表空间只包含一个文件并且只读或离线正常。
控制文件备份
控制文件备份是数据库控制文件的备份。
如果数据库是打开的,那么用户可以通过执行以下SQL语句或使用恢复管理器(RMAN)来创建有效的备份:
ALTERDATABASEBACKUPCONTROLFILEto'
location'
。
存档重做日志备份
存档重做日志是成功的介质恢复的关键。
您希望根据可用磁盘空间和在数据库上执行的事务的数量在磁盘上尽可能长时间地保留存档日志,并定期备份它们以确保较完整的恢复。
配置文件
配置文件可能包含spfile文件或init.ora、口令文件、tnsnames.ora和sqlnet.ora。
因为这些文件不经常变化,所以它们不需要频繁备份。
如果您丢失了某个配置文件,您可以很容易地重新手动创建它。
当还原时间更重要时,还原配置文件的一个备份要比以特定格式手动创建一个文件要快得多。
应当使用哪种备份方法?
Oracle为用户提供了几种创建备份的基本方法以备选择。
这些方法包括:
∙恢复管理器(RMAN)—建立与服务器进程的连接并使备份与恢复操作的数据转移自动化的一个组件。
∙Oracle企业管理器—调用恢复管理器的GUI界面。
∙OracleDataPump—该实用程序通过将数据以专有格式从Oracle数据库写入操作系统文件来创建逻辑备份。
稍后可以将这种数据导入数据库中。
∙用户管理的方法—通过执行特别针对用户操作系统的命令手动备份数据库。
创建恢复管理器备份
恢复管理器(RMAN)是一个强大的通用程序,它允许用户创建RMAN备份或用户数据的镜像副本。
当用户使用RMANBACKUP命令指定文件或存档日志时,RMAN默认创建一个备份集作为输出。
一个备份集是专有格式的一个文件或一些文件,它需要使用RMANRESTORE命令来进行恢复操作。
相比而言,当使用BACKUPASCOPY命令创建文件的镜像副本时,它是实例可用(instance-usable)格式的—用户不需要调用恢复管理器即可还原或恢复它。
当执行RMAN命令(如备份或还原)时,恢复管理器建立了一个与Oracle服务器进程的连接。
然后服务器进程从目标数据库中备份指定的数据文件、控制文件或存档日志。
恢复目录是包含各种对备份和恢复有用的信息的中央信息库。
RMAN自动建立备份所需的所有文件的名称和位置。
恢复管理器还支持增量备份—仅备份那些自上次备份以来发生变化的块。
在传统的备份方法中,必须备份数据文件中用到的所有数据块。
自动的基于磁盘的备份和恢复
创建不同的与备份和恢复相关的文件的组件对彼此一无所知,或者也不了解它们存储数据的文件系统的大小。
利用自动的基于磁盘的备份和恢复,您可以创建一个闪回恢复区,它将使与备份相关的文件的管理自动化。
在磁盘上选择一个位置和存储空间的上界,并设置一个保留策略—它控制需要为恢复保留备份文件的时间。
数据库在这个空间内为您的数据库管理用于备份的存储器、存档日志和其他与恢复相关的文件。
当RMAN需要为新的文件回收空间时,可以删除不再需要的文件。
如果您不使用闪回恢复区,则您必须为与备份相关的文件手动管理磁盘空间并平衡不同类型文件间的空间使用。
OracleCorporation建议您启用一个闪回恢复区以简化您的备份管理。
Oracle企业管理器
尽管通常把恢复管理器用作一个命令行实用程序,但Oracle企业管理器中的备份向导是GUI界面,通过点击即可实现备份与恢复。
Oracle企业管理器(EM)支持用户常用的备份与恢复特性。
∙备份配置,用于定义和保存常用配置以供重复使用
∙备份与恢复向导,用于引导用户完成创建备份脚本的步骤并将其作为计划作业提交
∙备份作业库,用于保存可以被检索并应用到多个目标上的常用备份作业
∙备份管理,用于查看并在RMAN备份上进行维护。
使用DataPump提供额外备份保护
可以使用DataPump实用程序创建数据的逻辑备份来补充物理备份。
逻辑备份存储为数据库创建的模式对象的相关信息。
DataPump以专有格式将数据从数据库写入Oracle文件中,然后可以使用导入实用程序将这些文件导入数据库中。
用户管理的备份
可以使用操作系统命令(如UNIXdd或tar命令)来创建备份。
还可以通过编写脚本来使备份操作自动化。
用户可以一次性创建整个数据库的备份或备份个别的表空间、数据文件、控制文件或存档日志。
个别表空间、数据文件、控制文件和存档日志的备份可以补充整个数据库备份。
如果数据库关闭或数据库进入热备份模式来执行联机备份,则还可以使用O/S命令来执行这些备份。
了解基本的恢复策略
基本的恢复包含两个部分:
还原物理备份,然后用自最后一次备份以来对数据库所做的更改更新它。
恢复的最重要方面是确保所有的数据文件就相同时间点而言是一致的。
Oracle具有完整性检查,以防止用户在所有数据文件彼此保持一致之前打开数据库。
在准备恢复策略时,了解这些问题的答案至关重要:
∙恢复如何工作?
∙恢复的类型有哪些?
∙应当使用哪种恢复方法?
恢复如何工作?
在每一种类型的恢复中,Oracle都按顺序将重做数据应用到数据块中。
Oracle使用控制文件和数据文件头中的信息来确定是否必须进行恢复。
恢复有两个部分:
前滚和回滚。
当Oracle前滚时,它将重做数据应用到相应的数据块中。
Oracle系统地遍览重做日志,以确定它需要将哪些更改应用到哪些块中,然后更改这些块。
例如,如果用户向表中添加了一行,但服务器在将更改保存到磁盘之前就崩溃了,则Oracle可以使用这个事务的重做记录来更新该数据块以反映该新行。
一旦Oracle完成了前滚阶段,就可以打开Oracle数据库了。
回滚阶段在数据库打开后开始。
回滚信息存储在事务表中。
Oracle在整个表中搜索未提交的事务,撤销它找到的任何未提交的事务。
例如,如果用户从未提交添加行的SQL语句,则Oracle将在事务表中发现这一事实并撤销该更改。
恢复的类型有哪些?
有三种基本的恢复类型:
实例恢复、崩溃恢复和介质恢复。
Oracle在实例启动时自动执行前两种恢复。
只有介质恢复需要用户执行命令。
当一个实例发现另一个实例已经崩溃时,实例恢复(只可能在Oracle真正应用集群配置中存在)将在打开的数据库中进行。
一个幸存的实例将自动使用重做日志来恢复数据库缓冲区中已提交但在实例出现故障时丢失的数据。
Oracle还将撤销当实例崩溃时在出现故障的实例上正在进行的任何事务,然后在恢复完成之后清除崩溃的实例拥有的任何锁。
崩溃恢复在单实例数据库崩溃或多实例数据库的所有实例崩溃时发生。
在崩溃恢复中,实例必须首先打开数据库,然后执行恢复操作。
一般而言,在崩溃或关机退出之后第一个打开数据库的实例将自动执行崩溃恢复。
与崩溃恢复和实例恢复不同,介质恢复通常响应介质故障并根据用户的命令来执行。
在介质恢复中,可以使用联机或存档重做日志来使还原的备份为最新或将其更新至一个特定的时间点。
介质恢复可以还原整个数据库、一个表空间或一个数据文件并将它们还原至指定的时间。
无论何时使用重做日志或将数据库恢复到某个非当前时间,都将执行介质恢复。
总可以使用还原的备份来执行该种恢复。
介质恢复主要分为完全恢复和不完全恢复。
完全恢复涉及将重做数据与数据库、表空间或数据文件等的备份结合使用以将其更新至最新的时间点。
它之所以称为完全备份是因为Oracle将所有重做更改应用到备份上。
通常,介质恢复在介质故障损坏了数据文件或控制文件之后执行。
恢复选项
如果用户没有将数据库完全恢复至最新时间,那么必须指示Oracle要恢复到什么程度。
用户可以执行:
∙表空间时间点恢复(TSPITR),它使用户能够将一个或多个表空间恢复至与数据库其余的部分不同的某个时间点。
∙基于时间的恢复,也称为时间点恢复(PITR),它将数据恢复至一个指定的时间点。
∙基于取消的恢复,它恢复到执行CANCEL命令为止。
∙基于更改的恢复或日志序列恢复。
如果使用了O/S命令,那么基于更改的恢复将一直恢复到重做记录中一个指定的SCN为止。
∙从人为错误中闪回
如果使用了恢复管理器,那么日志序列恢复将一直恢复到一个指定的日志序列号。
当执行不完全恢复时,用户必须在打开数据库时重置联机重做日志。
重置数据库的新版本称为一个新化身。
用RESETLOGS选项打开数据库将告知Oracle丢弃一些重做。
在Oracle数据库10g中,控制文件增加了新的结构,这些结构提供了利用先前化身的备份通过RESETLOGS操作进行恢复的能力。
从人为错误中恢复
Or
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 备份 恢复 技术