Oracle备份与恢复

Oracle备份与恢复

 

9.1 目标

本节中,您应该能够:

  • 设定数据库以进行备份与还原操作
  • 建立与管理数据库备份
  • 恢复和复原数据库
  • 使用闪回功能

 

9.2 Oracle恢复功能

  • 实例在发生错误后会自动进行恢复(损毁恢复)
  • 数据文件介质恢复
  • 闪回:
    – 闪回查询
    – 闪回版本查询
    – 闪回事务查询
    – 闪回表
    – 闪回删除
    – 闪回数据库

 

Oracle提供了多重功能,可让您从数据库的错误中恢复,其中包含了硬件故障与用户错误。在本节中,您将学会如何实行备份和还原策略,在硬件故障时保护数据库。此外,您还会学到如何使用闪回功能来恢复用户错误。

实例恢复或损毁复原都是特殊形式的恢复,它们会在Oracle数据库实例损坏之后的第一次启动时发生。在损毁复原中,数据文件会回到事务一致性的状态,并保留实例失败的时间点以前所有已经确认的变更。

 

数据文件介质恢复,是用户起始的数据恢复中最基本形式,可从遗失或损坏的数据文件、服务器参数文件(spfile)或控制文件中恢复数据。

 

【Oracle闪回功能】支持查看数据的功能、与即使向前和向后倒回数据的功能,请看下列说明:

  • 【闪回查询】功能可让您指定一个目标时间,然后对数据库执行查询,并可查看在目标时间会出现的结果。
  • 【闪回版本查询】功能可让您查看在特定的时间间隔内,曾经存在一或多个表中的所有数据行版本。
  • 【闪回事务查询】功能可让您查看在特定一段时间内,单一事务或所有事务进行的变更。
  • 【闪回表】功能可让表回到先前某个时间点的状态。
  • 【闪回删除】功能可撤销DROP TABLE语句的影响。
  • 【闪回数据库】功能是数据库时间点复原更有效的替代方案。

 

在本节中,您将学会如何使用【闪回删除】与【闪回表】功能。如需有关其他【闪回】功能的详细信息,请参阅Oracle Database Backup and Recovery Advanced User’s Guide。

 

9.3 备份、恢复与复原的概念

备份类型:

  • 一致:
    – 在实例关闭时进行
    – 重做日志中的所有变更已应用到数据文件
    – 可让您在恢复操作完成后立即开启数据库
  • 不一致:
    – 在数据库开启时进行
    – 在线重做日志与归档重做日志中可包含尚未应用到数据文件的变更
    – 恢复之后必须执行介质恢复

 

当您备份数据库时,会复制数据文件、控制文件及重做日志归档(如果有的话)。而在一般的数据库操作中,从备份来恢复数据库只是单纯将组成数据库的实体文件,从一些备份介质(磁盘或磁带)复制到它们原来的位置。

 

您可以执行一致或不一致的备份。一致的备份在恢复操作完成后,即可立即开启数据库。建立一致的备份时,必须先将重做日志中的所有变更应用的数据文件。您必须关闭数据库与实例才能执行这种备份。

 

而在不一致的备份中,在线重做日志与归档重做日志可包含尚未应用到数据库的变更。您可在数据库开启时建立不一致的备份。不过,如果要使用不一致的备份来恢复数据库,在从备份中恢复数据库之后,您还必须执行介质恢复。

 

介质恢复选项:

  • 完整:
    – 应用日志中的所有变更。
    – 数据库会回到错误发生时的状态。
  • 时间点(不完整):
    – 在数据文件备份的时间到重做日志上一次变更的时间之间,选取任一时间点。
    – 只应用到指定时间为止的变更。

 

当您从备份中恢复归档重做日志与数据文件时,Oracle服务器会在您尝试开启数据库时执行介质恢复。还未反映到数据文件的在线重做日志与归档重做日志内的数据库事务,会应用到数据文件中。而各种未确认的事务则会被倒回。这样便能在开启数据库之前,达成事务一致性状态。

 

介质恢复可以是完整恢复或时间点恢复。完整恢复会应用日志中的所有变更,而且数据库会回到错误发生时候的状态。之后,您便可在不遗失任何数据的状况下重启开启数据库。

 

时间点恢复是根据您所选择的目标时间,让数据库回到它当时的状态。在目标时间之前所建立的数据文件备份集、以及备份时间到目标时间之间的完整归档重做日志文件集,它们的变更一律会应用到数据文件。当到目标时间点为止的所有变更都被重新应用时,数据文件就会回到目标时间点当时的内容。时间点恢复有时也称为不完全恢复,因为不会应用所有变更。

 

介质恢复需要一个控制文件、通常从备份中恢复的数据文件,以及自数据文件备份时间开始的所有在线重做日志与归档重做日志。介质恢复一般只在因介质错误而造成数据库错误的状态下才使用,如文件或磁盘遗失。

 

9.4 介质复原步骤

 

数据库的介质复原包含下列步骤:

  1. 从备份中恢复损坏或遗失的文件。
  2. 根据需要来应用归档重做日志文件与在线重做日志文件的变更。此时会产生回滚段。这称为向前恢复(Rolling forward)或缓存恢复。
  3. 数据库现在可能包含确认与未确认的变更。
  4. 回滚段可用来倒回任何未确认的变更。这就是所谓的倒回(Rolling back)或事务恢复。
  5. 数据库现在处于已复原的状态。

 

9.5 设定数据库以进行备份与恢复

如果要使用Oracle功能来自动管理备份与还原操作,请按照下列指示来设定数据库:

  • 使用闪回恢复区,为大部分与备份相关的文件自动化存储管理。
  • 在ARCHIVELOG模式下操作数据库,以执行线上备份。
  • 使用闪回恢复区作为归档日志目的地。

 

您可以设定制定原则来管控要备份哪些文件、在磁盘上使用哪种格式来存储备份以及何时可从闪回恢复区删除文件。

 

调整闪回恢复区的大小

在理想状况下,闪回恢复区的大小应足以容纳两个完整的数据库备份副本、再加上各种增量备份、以及在恢复视窗中将数据库恢复到任一时间点所需的存档日志。

 

如需有关设定闪回恢复区的详细信息,请参阅Oracle Database Backup and Recovery Basics.

 

9.6 设定闪回恢复区

您可以按照下列步骤来设定ARCHIVELOG模式与闪回恢复区:

  1. 在您的操作系统建立一个目录来存放闪回恢复区。请确认针对此目录的权限允许Oracle服务器在其中建立文件。
  2. 从数据库(Database)首页选取【可用性(Availability)】特性页签。然后在【备份/恢复(Backup/Recovery)】区的【设置(Setup)】子区中选取【恢复设置(Recovery Settings)】。接着会显示【恢复设置(Recovery Settings)】页面。
  3. 如果没有选取【介质恢复(Media Recovery)】区下的【ARCHIVELOG模式(Archivelog Mode)】请在选取框中加以勾选。

【ARCHIVELOG模式(Archivelog Mode)】选取框下有一个归档日志目的地清单,最多可列出10个可能的归档日志目的地。目的地编号10会指定USE_DB_RECOVERY_FILE_DEST作为目的地,表示将会使用闪回恢复区。

  1. 在【快速恢复(Fast Recovery)】区中,指定目录名称并调整快速恢复区的大小。(

注意:位置可以是主机操作系统的一个目录,或是ASM磁盘组的名称。请确认没有选取【仅将初始化参数更改应用于SPFILE(Apply initialization parameter changes to SPFILE only)】勾选框。再按一下【应用(Apply)】。

 

  1. 画面上会显示【确认(Confirmation)】页面。按一下【是(Yes)】来重新启动实例,这样才能将数据库置于ARCHIVELOG模式。
  2. 接着会进入【重新启动数据库: 指定主机和目标数据库用户名密码信息(Restart Database:Specify Host and Target Database Credentials)】页面。请提供主机与数据库登陆用户密码,再按一下【确定(OK)】。
  3. 显示【重启数据库:确认(Restart Database: Confirmation)】页面。按一下【是(Yes)】。
  4. 显示【重启数据库:活动信息(Restart Database: Acitivity Information)】页面。如果收到浏览器信息,请按一下重新刷新按钮,直到显示【登陆(Login)】页面为止。
  5. 在【数据库登陆(Database Login)】页面中指定用户名及密码。
  6. 在【启动/关闭: 指定主机和目标数据库用户名密码信息(Startup/Shutdown: Specify Host and Target Database Credentials)】页面。请提供主机和数据库用户名密码之后,按一下【确定(OK)】。
  7. 显示【数据库(Database)】首页。
  8. 按一下【可用性(Availability)】页签,再按一下【恢复设置(Recovery Settings)】。在【恢复设置(Recovery Settings)】页面上确认您的变更。

 

9.7 备份类型

  • 数据文件的完整备份
  • 数据文件的增量备份
  • 增量更新备份: 数据文件的向前备份映像副本
  • 整个数据库备份

 

Oracle Enterprise Manager (EM)支持下列备份类型:

数据文件的完整备份: 包含数据文件中所有已使用的区块。这可以是映像副本备份或是备份集。不论以何种形式存储备份,即使只有变更一小部分的区块,仍然会备份整个数据文件。

数据文件的增量备份: 只包含那些在数据库的每个数据文件备份之间所更动的区块。一般的增量备份策略,是将层级0(Level 0)的增量备份被当做开始点,它会抓取数据文件中的所有区块。而后续层级1的增量备份(一般会定期执行),则会在变更的数据文件中抓取每个区块的映像。1级备份文件可以是累计式的(Cumulative),在此状况下,会加入上次0级备份以来所有变更过的区块。1级的备份文件也可以是差异式的(Differential), 在此状况下,只会包含上次层级0及层级1的增量备份以来所有变更或的区块。

整个数据库备份: 备份数据库中的整个内容。它会建立所有数据文件的完整备份。而结果会储存成映像副本或备份集,但是无论在哪种状况下,数据库所有数据文件的完整内容都会包含在备份中,同时也包含了控制文件、归档重做日志及服务器参数文件。使用此文件集,就可以完整的恢复数据库。

备份整个数据库在某些情况下是必要的,例如当您在ARCHIVELOG模式与NOARCHIVELOG模式之间做数据库切换时。

 

9.8 备份文件类型

 

您可以制作下列类型的备份:

  • 映像副本是数据文件、控制文件或归档日志文件的副本。您可以使用Enterprise Manager或操作系统公共程序来制作副本。数据文件的映像副本是由数据文件的所有区块组成,其中包含了未使用的区块。映像副本只能包含一个文件,单个副本不能有多重备份(Multiplexed)。
  • 备份集可以包含一或多个数据文件、控制文件或归档重做日志文件。您可以使用下列两种不同方式来制作备份集:

完整备份:在完整备份中,您在会备份一或多个文件,而且会指定文件中所包含数据的所有区块。

增量备份:增量备份是针对上次备份之后,区块曾变更过的数据文件来进行备份。增量备份需要基础层级(或增量层级0)的备份,此基础备份会备份指定文件中包含数据的所有区块。增量层级0的备份都会复制数据文件中的所有区块,但完整备份却无法用在增量备份策略中。

 

注意:您可以设定自动化控制文件备份操作,如此一来,在您backup或copy命名时,便会备份控制文件与目前的服务器参数文件。

 

增量更新备份功能可让您使用一或多个1级增量备份,再搭配较旧的数据文件备份副本,将副本还原到1级增量备份时的SCN。副本建立后曾变更过的区块,会以上次层级1的增量备份新内容加以覆写。这样便能及时倒回文件,使其内容与上次增量层级1的备份时所抓取的映像副本完整数据文件备份相同。此功能可让您以较短的恢复时间来实施备份策略,因为您只需从上次应用至数据文件的1级增量备份的SCN开始,来执行复原即可。

 

9.9 设定备份设定值: 磁盘设定值

  • 并行程度:预设值1
  • 磁盘备份位置:空值表示使用闪回恢复区
  • 磁盘备份类型:磁盘的预设值

 

您可在的【备份设置(Backup Settings)】页面中,设定适用于所有备份工作的设定值。必要时,您也可以覆写这些设定值。

您可以按照下列步骤,使用Enterprise Manager来设定磁盘设定值:

  1. 在数据库首页的【可用性(Availabilty)】页签的【备份/还原(Backup/Recovery)】页面中,按一下【备份设置(Backup Settings)】。画面上会显示【备份设置(Backup Settings)】页面的【设备(Device)】页签。
  2. 选择【并行程度(Parallelism)】的预设值1。

3.【磁盘备份位置(Disk Backup Location)】必须设为空值,表示备份将置于闪回恢复区。

  1. 选择【磁盘备份类型(Disk Backup Type)】的预设值【备份集(Backup Set)】。
  2. 在【主机身份证明(Host Credentials)】区域中指定备份的主机登陆用户名密码。
  3. 按一下【测试磁盘备份(Test Disk Backup)】按钮来确认用户名密码信息及备份位置是否正确。
  4. 如果正确,就会显示【磁盘备份测试成功(Disk Backup Test Successful)】的确认信息。

 

9.10 备份设置: 制定备份策略

  • 备份策略:
    – 备份服务器参数文件(spfile)
    – 备份控制文件
    – 略过未变更的文件
    – 启用区块变更追踪功能
  • 保留策略:
    – 保留所有备份
    – 恢复视窗
    – 冗余

在【策略(Policy)】页签中,您可以设定控制文件与服务器参数文件(SPFILE)备份的备份策略、指定要排除在整个数据库备份之外的表空间、以及设定设定备份的保留策略。

 

您可以使用Enterprise Manager,按照下列步骤来设定备份策略:

  1. 在数据库首页【可用性(Availability)】页签的【备份/恢复(Backup/Recovery)】区域中,按一下【备份设置(Backup Settings)】。
  2. 按一下【策略(Policy)】页签。
  3. 选取【随着每个备份和数据库结构的更改自动备份控制文件和服务器参数文件(SPFILE) (Automatically backup the control file and server parameter file(SPFILE) with every backup and database structural change)】勾选框。不要为【自动备份磁盘位置(Autobackup Disk Location)】指定位置,这样才能在闪回恢复区中生成备份。
  4. 选取【通过跳过未更改的文件(如已经备份的只读和脱机数据文件)优化整个数据库备份(Optimize the whole database backup by skipping unchanged files such as read-only and offline datafiles that have been backed up)】勾选框。
  5. 选取【启用块更改跟踪, 以提高增量备份的速度(Enable block change tracking for faster incremental backups)】勾选框。如果您还未设定数据库区使用【Oracle管理的文件(Oracle Managed File)】,则请为块更改跟踪文件提供文件位置与名称。
  6. 选取【保留恢复到指定天数内任意时间的状态所需的备份(时间点恢复)(Retain backups that are necessary for a recovery to any time within the specified number of days (point-in-time recovery))】,然后选择预设值31天。
  7. 在【主机身份证明(Host Credentials)】区域指定备份的主机登陆用户名密码信息。再按一下【确定(OK)】。
  8. 画面会回到【数据库(Database)】首页。

 

9.11 整个数据库备份

当您建立整个数据库的备份时,即是在备份整个数据库,所以会建立所有数据文件的完整备份。而结果会储存成映像副本或备份集,但是无论在哪种状况下,数据库所有数据文件的完整内容都会包含在备份中,同时也包含了控制文件、归档重做日志及服务器参数文件。使用此备份集,就可以完整的复原数据库。

 

备份整个数据库在某些情况下是必要的,例如当您在ARCHIVELOG模式与NOARCHIVELOG模式之间做数据库切换时。

 

9.12 备份数据库

您可以使用Enterprise Manager,按照下列步骤来执行整个数据库备份:

  1. 在【可用性(Availability)】页面的【备份/恢复(Backup/Recovery)】区域中,按一下【调度备份(Schedule Backup)】,就会显示调度备份(Schedule Backup)】页面。
  2. 在【定制备份(Customizaed Backup)】, 选择【整个数据库(Whole Database)】。

  1. 在【主机身份证明(Host Credentials)】输入主机操作系统用户名密码信息,再按一下【调度定制备份(Schedule Customized Backup)】,会显示【调度定制备份: 选项(Schedule Customized Backup: Options)】页面。
  2. 在【备份类型(Backup Type)】区域中选取【完整备份(Full Backup)】。
  3. 在【备份模式(Backup Mode)】区域中,选取【联机备份(Online Backup)】。一般而言,您执行在线备份是为了最大化数据库的可用性。
  4. 如果您正在执行联机备份,请在【高级(Advanced)】区中选取【同时备份磁盘上的所有归档日志(Also back up all archived logs on disk)】勾选框。

注意:执行脱机备份时,不需要备份归档日志,因为在备份时数据库是处于一致的状态,而且如果你要从这个备份恢复,也不需要执行介质恢复。

按一下【下一步(Next)】,就会显示【调度定制备份: 设置(Schedule Customized Backup: Settings)】页面。

  1. 选择【磁盘(Disk)】作为备份目的地。按一下【下一步(Next)】,会显示【调度定制备份: 调度(Schedule Customized Backup: Schedule)】页面。
  2. 选择预设作业名称。查看需要编辑【作业说明(Job Description)】栏位。为预设的开始时间选取【一次: 立即(One Time: Immediately)】以立即执行备份。或者,您也可以在将来的某个时间排定工作,并且依需要设定【重复(Repeat)】与【重复到(Repeat Until)】参数。再按一下【下一步(Next)】。就会显示【调度定制备份: 复查(Schedule Customized Backup: Review)】页面。
  3. 您可以在【调度定制备份: 复查(Schedule Customized Backup: Review: Review)】页面中进行各种最后的变更。按一下【提交作业(Submit Job)】来执行指定选项的备份工作。
  4. 您可以按一下【查看作业(View Job)】来监督备份工作的进度。接着就会显示已提交作业的摘要页面。在【日志(Logs)】区域中,您可以查看备份工作中不同步骤的处理进度,也可以逐层查看从工作输出的RMAN日志。

 

9.13 Oracle建议的略备份策略

Enterprise Manager让设定Oracle建议的备份策略变得简单。备份策略能够保护您的数据,还能提供高效率恢复能力。Oracle建议的策略会充分利用Oracle增量备份与增量更新备份功能,来提供比从归档日志应用数据库变更到数据文件更快的复原能力。备份策略需要按用户计划使用的备份设置而定。

Oracle建议的备份策略会以建立一份数据库映像副本为基础,然后使用增量备份来复原。

Oracle Enterprise Manager会为您排定RMAN备份工作在晚上进行。

每个数据库的备份策略可用下列方式达成:

  • 策略第一天开始时(第一个排定工作实际执行的时间),会建立一份增量备份层级0的数据文件副本备份。其中包含第一天开始时的数据文件内容。在恢复与复原案例中,第一天的重做日志可用来复原到第一天的任何时间点。
  • 第二天开始时,会建立一份增量层级1的备份,其中包含在第一天中已经变更的区块。在恢复与复原案例中,可应用此1级增量备份,以迅速复原0级备份到第二天的开始,而且重做日志可用来复原到第二天的任何时间点。
  • 第三天及以后,每n天的开始,第n-1天开始的1级备份会应用到0级备份。这样这样做能让数据文件副本回到第n-1天开始时候的状态。然后,会建立一个新的1级备份,其中包含在第n-1天中变更的区块。在恢复与复原案例中,可套用此1级增量备份,以迅速将已储存的备份复原到第n天的开始,且重做日志可用来将数据库恢复到第n天的任何时间点。

 

Oracle建议的备份策略中所使用的数据文件副本,会加上ORA$OEM_LEVEL_0标记。要在此策略中使用的1级增量备份会被建立,来搭配被如此标记的数据文件副本一起使用。您可以放心实行其他备份策略,不需担心Oracle建议策略的备份会造成干扰。

 

9.14 使用Oracle建议的策略备份数据库

您可以使用Enterprise Manager, 按照下列步骤来执行整个数据库备份:

  1. 在数据库首页的【可用性(Availability)】页签【备份/还原(Backup/Recovery)】区【管理(Manage)】分区中,按一下【调度备份(Schedule Backup)】。就会显示【调度备份 (Schedule Backup)】页面。
  2. 在【主机身份证明(Host Credentials)】输入主机用户名及密码后,点【调度Oracle建议的备份(Schedule Oracle-Suggested Backup)】。

 

  1. 在【调度Oracle建议的备份: 目标(Schedule Oracle-Suggested Backup: Destination)】为您的备份目的地选取【磁盘(Disk)】, 按一下【下一步(Next)】
  2. 默认【调度 Oracle 建议的备份: 设置(Schedule Oracle-Suggested Backup: Setup)】设置。
  3. 按一下【下一步(Next)】。就会显示【调度Oracle建议的备份: 调度(Schedule Oracle-Suggested Backup: Schedule)】页面。
  4. 指定备份开始日期与每日备份时间。再按一下【下一步(Next)】, 会显示【调度Oracle建议的备份: 复查(Schedule Oracle-Suggested Backup: Review)】。
  5. 查看您的设定值。再按一下【提交作业(Submit Job)】来调度Oracle建议的备份策略。之后的状态页面会出现正在确认提交工作的信息。
  6. 按一下【查看作业(View Job)】来查看已提交的工作。

 

9.15 管理备份

  • 管理备份的工作包括:

– 在磁盘或磁带上管理备份文件

– 管理备份记录

  • 备份可以是下列三种状态的其中一种:

– 可用: 备份仍然会存在磁盘或磁带上,就像记录在储存区域上一样。

– 过期: 备份已从磁盘或磁带上删除,但是仍然会列在存储区域上。

– 无法取得: 数据恢复操作暂时无法取得备份。

 

管理备份包含管理磁盘或磁带上的备份,以及管理备份的记录。备份记录会储存在Recovery Manager(RMAN)储存区域。

您可以透过Enterprise Manager来管理备份记录。Enterprise Manager提供了下列备份维护功能:

  • 查看记录于RMAN存储区中的备份清单(备份集与映像副本)。
  • 交叉检查储存区域:

– 验证列对于储存区域中的备份是否存在以及是否可存取

– 交叉检查时会将无法存取的所有备份标记成过期

  • 删除RMAN存储区中过期的备份记录
  • 删除存储区与磁盘中逾时的备份

 

注意:如果您使用闪回恢复区做为备份存储位置,则因为闪回恢复区的自动磁盘空间管理与根据保留制定原则保留文件的缘故,会减少或排除许多维护活动。

 

9.16 使用管理目前的备份页面

您可以在数据库首页【可用性(Availability)】页签的【备份/恢复】区【管理(Mange)】分区中,按一下【管理当前备份(Manage Current Backups)】,来访问Enterprise Manager中的【管理当前备份(Manage Current Backups)】页面。此页面有两个特性页签:【备份集(Backup Set)】和【映像副本(Image Copy)】,这两个页签用途相似,就是在Recovery Manager存储区中将备份列为记录。

 

备份集可藉由它们标记与完成次数来识别。如果要查看关于哪些文件是在备份集中备份的相关信息,请看【内容(Contents)】信息列中的值来了解详细信息。如果需要备份集中个别的备份片段。请在【片段(Pieces)】数据列中按一下片段编号,就会按文件名列出个别片段。【映像副本(Image Copy)】特性页面呈现的信息和【备份集(Backup Set)】特性页面类似。

 

9.17 执行备份维护工作

  • 交叉检查
  • 删除EXPIRED备份
  • 删除逾时的备份
  • 将暂不使用的备份标记成UNAVAILABLE
  • 归类其他备份

 

交叉检查

交叉检查备份会让RMAN去确认实际备份的状态是否与RMAN存储区的备份记录相符。在交叉检查操作期间,会更新储存区来反映目前的备份状态。如果在RMAN储存区所列的位置中仍然有备份,而且文件头并无损坏,磁盘上备份就会标记成AVAILABLE。如果在磁带上仍然可以找到备份,磁带上的备份就会标记成AVAILABLE(不会检查文件头是否损坏。)遗失或损坏的备份会标记成EXPIRED。

在【管理当前备份(Manage Current Backups)】页面上方,按一下【全部交叉检验(Crosscheck All)】以交叉检验RMAN存储区域里的所有文件。当您按一下【全部交叉检验(Crosscheck All)】时,会排定一个工作来执行交叉检查。

您也可以选取结果清单中的文件,然后按一下【结果(Results)】清单上方的【交叉检验(Crosscheck)】来交叉检查个别的文件。但是不同于【全部交叉检验(Crosscheck All)】, 个别文件的交叉检查会立即执行。

 

删除过期的备份

当您从RMAN存储区删除过期备份时,就会删除标记为EXPIRED的备份记录。

您可以在【管理当前备份(Manage Current Backups)】页面上方,按一下【删除所有失效记录(Delete All Expired)】,来使用Enterprise Manager删除失效的备份。请注意,当您按一下【删除所有失效记录(Delete All Expired)】时,不论正在查看的是【备份集(Backup Sets)】特性页签或是【映像副本(Image Copies)】特性页签,都会从RMAN存储区域中删除失效备份集与失效的映像副本。

当您选取【删除所有失效记录(Delete All Expired)】时,会显示【删除所有失效记录: 指定作业参数(Delete All Expired: Specify Job Parameters)】页面。如果要确认RMAN拥有目前最新的新消息,请选择【在 ‘删除所有失效记录’ 之前执行 ‘全部交叉检验’ 操作 (Perform the operation ‘Crosscheck All’ before ‘Delete All Expired’)】。

 

删除过时的备份

过时的备份是根据保留策略不再需要的备份。您可以在【管理当前备份(Manage Current Backups)】页面上,按一下【删除所有过时的备份(Delete All Obsolete)】来删除过时的备份。不论您在【管理当前备份(Manage Current Backups)】页面上查看的是【备份集(Backup Set)】或【映像副本(Image Copy)】特性页面,按一下【删除所有过时的记录(Delete All Obsolete)】,都会删除所有过时备份(备份集和映像副本)。

当您按一下【删除所有过时的记录(Delete All Obsolete)】时,会显示【删除所有过时的项目: 指定做作业参数(Delete All Obsolete: Specify Job Parameters)】页面。您可以立即执行删除工作或是调度删除工作。

 

注意: 如果使用闪回恢复区作为磁盘为基础的单一备份目的地,就永远不需要删除磁盘的过时备份。这些文件会根据备份保留策略的制定选项来管理,而且只在需要空间时才会被删除。

 

将备份标记成Unavailable

如果您知道个别备份因为暂时发生状况而无法使用,例如暂时离线的磁盘或非现场储存的磁带机,就可以将备份标记成UNAVAILABLE。RMAN会将备份信息保存在RMAN存储区域中(当您删除过期备份时,不会删除它),但是不会尝试使用其作为恢复作业中的备份。当备份再次变为可用时,您就可以将备份状态变回AVAILABLE。

选取位于备份【结果(Result)】清单的每个备份旁边的【选取(Select)】勾选框。再选择【更改为不可用(Change to Unavailable)】,就能将备份标记成UNAVAILABLE。

注意: 您无法将存储于闪回恢复区中的备份标记成UNAVAILABLE。

 

归类其他备份

如果您在闪回恢复区有多个备份,或是已经使用操作系统命令制作多个备份,您可以在RMAN存储区中将它们归类,让RMAN可以在恢复操作中使用它们。

您可以在【管理当前备份(Manage Current Backups)】页面上方选取【将其他文件列入目录(Catalog Additional Files)】将备份加入分类目录。在【将其他文件列入目录(Catalog Additional Files)】页面上,您可以选择【将恢复区中的所有文件列入Recovery Manager 资料档案库的目录(Catalog all files in the recovery area into the Recovery Manager repository)】或【将指定磁盘位置中的文件列入 Recovery Manager 资料档案库的目录(Catalog files in the specified disk location into the Recovery Manager respository)】

 

9.18 恢复整个数据库

  1. 从【数据库(Database)】首页选取【可用性(Availability)】特性页签。在【备份/恢复(Backup/Recovery)】区【管理(Manage)】分区下,点【执行恢复(Perform Recovery)】链接进入执行恢复页面。

 

  1. 从【恢复范围(Recovery Scope)】下拉列表中选择【整个数据库(Whole Database)】。
  2. 选取【恢复到当前时间或过去的某个时间点(Recover to the current time or a previous point-in-time)】作为【操作类型(Operation Type)】。
  3. 指定【主机身份证明(Host Credentials)】的【用户名(Username)】与【密码(Password)】后,点【恢复(Recover)】按钮。
  4. 关闭实例。并点【刷新(Refresh)】按钮。
  5. 会显示EM登陆页,登陆后进入数据库首页。请按一下【Perform Recovery(执行恢复)】。
  6. 指定主机身份证明。按一下【继续(Continue)】,然后以SYSDBA登陆数据库,会显示【执行恢复(Perform Recovery)】页面。
  7. 从【恢复范围(Recovery Scope)】下拉列表中选择【整个数据库(Whole Database)】。选取【恢复到当前时间或过去的某个时间点(Recover to the current time or a previous point-in-time)】作为【操作类型(Operation Type)】。确认【主机身份证明(Host Credentials)】的【用户名(Username)】与【密码(Password)】,按一下【恢复(Recover)】。
  8. 选择【复原至当前时间(Recover to the current time)】。按一下【下一步(Next)】。
  9. 选择【否,将文件复原到默认位置(No. Restore the files to the default location)】。再按一下【下一步(Next)】。

 

  1. 在【执行整个数据库恢复: 复查(Perform Recovery: Review)】页面上,查看您的选择。按一下【提交(Submit)】来开始进行复原操作。
  2. 会显示成功完成恢复的信息。打开数据库后,按一下【确定(OK)】回到【登陆(Login)】页面。

 

9.19 闪回表

  • 闪回表让您可以将一个或多个表恢复到特定的时间点,不需要从备份恢复。
  • 会从Undo表空间中撷取数据,以执行闪回表的操作。
  • 必须有 flashback table权限才能执行表的闪回。
  • 必须在执行闪回操作的表上启用数据行移动。

 

【闪回表】让您不用恢复备份,就可以将一个或多个表复原到特定的时间点。当您使用这个功能时,会恢复表的数据以及所有相关对象(索引、限制条件、触发器等)。闪回表所需的信息则从Undo表空间中撷取。

您可以使用【闪回版本查询】与【闪回事务查询】来协助决定适当的闪回时间。如需更多关于这些功能使用的信息,请参阅Oracle Database Concepts。

【闪回表】让用户在没有DBA从旁协助的情况下,能轻松又快速的复原不慎造成的修改。您必须将flashback table或flashback any table系统权限授予要使用【闪回表】功能的用户。此外,也必须将select, insert, delete以及alter对象权限授予使用者。您可以使用Enterprise Manager来闪回表。会出现精灵引导您进行整个过程。

 

9.20 在表上启用数据行迁移

您必须在表上启用行迁移才能闪回表。启用行迁移之后,Oracle服务器就可以在表中移动数据行。

您可以使用Enterprise Manager在表中启用行迁移,步骤如下:

  1. 在数据库首页【方案(Schema)】特性页的【数据库对象(Database Objects)】区点【表(Tables)】链接。。
  2. 进入【表(Table)】页面, 您可以按一下手电筒图示来搜寻Schema和表。
  3. 在【结果(Results)】区中按一下表名,会显示【编辑表(Edit Table)】页面。
  4. 选取【选项(Options)】页签。
  5. 【启用行迁移(Enable Row Movement)】选【是(Yes)】。再按一下【应用(Apply)】来更新表的选项。

 

  1. 显示更新确认信息。

 

9.21 执行闪回表

您可以使用Enterprise Manager,执行下列步骤来来闪回表:

  1. 在【可用性(Availability)】特性页面的【备份/恢复(Backup/Recovery)】区的【管理(Manage)】分区,选取【执行恢复(Perform Recovery)】。接下来会显示【执行恢复(Perform Recovery)】页面。
  2. 从【恢复范围(Recovery Scope)】下拉列表选择【表(Tables)】。然后会重新刷新页面。
  3. 选择【闪回现有表(Flashback existing tables)】作为【操作类型(Operation Type)】。按一下【恢复(Recover)】。会显示【执行对象级恢复: 时间点(Perform Object Level Recovery: Point-in-time)】页面。

  1. 选取【评估行更改和事务处理, 以确定时间点(Evaluate row changes and transactions to decide on a point in time)】。
    如果选【闪回到时间戳(Flashback to a timestamp)】,请指定适当的时间戳。再按一下【下一步(Next)】继续。
    会显示【执行对象级恢复 (Perform Object Level Recovery)】页面。

图为【执行对象级恢复: 选择 SCN】, 选择需要闪回的SCN,点【下一步(Next)】

【下一步(Next)】

5. 如果有相互依赖的表,就会显示【相关性选项(Dependency Options)】页面。

 

  1. 会显示【执行对象级恢复: 复查(Perform Object Level Recovery: Review)】页面。页面中会显示哪些表与对象会被闪回。如果您满意这些结果,请按一下【提交(Submit)】以执行闪回表操作。

 

9.22 使用闪回删除来恢复表

闪回删除让您可以逆转表格的效果,将已删除的表和它的相互依赖对象传回数据库。当您删除数据库中的表时,这些表会置于数据回收桶中。在清除数据回收桶之前,都可以从数据源回收桶撷取已删除的表。

等您清除对象之后,配置给对象的区块才会被解除配置。

 

9.23 执行闪回删除

您可以使用Enterprise Manager,按照下列步骤执行闪回删除:

  1. 在【可用性(Availability)】特性页面的【备份/恢复(Backup/Recovery)】区的【管理(Manage)】分区,选取【执行恢复(Perform Recovery)】。接下来会显示【执行恢复(Perform Recovery)】页面。
  2. 从【恢复范围(Recovery Scope)】下拉列表选择【表(Tables)】。然后会重新刷新页面。
  3. 选择【闪回已删除的表(Flashback dropped tables)】作为【操作类型(Operation Type)】。再按一下【恢复(Recover)】。会显示【执行对象级恢复: 删除的对象选择(Perform Object Level Recovery: Dropped Objects Selection)】页面。
  4. 指定Schema名称与表名。您可以按一下手电筒图示来搜寻Schema。按一下【开始(Go)】。就会重新刷新页面,而且被删除的表和它相互依赖的对象会显示在【结果(Results)】区域。
  5. 选取表,再按一下【下一步(Next)】。会显示【执行对象级恢复: 重新命名(Perform Object Level Recovery: Rename)】页面。
  6. 您可以为表重新命名,或者选择默认的表名。按一下【下一步(Next)】。会显示【执行对象级恢复: 复查(Perform Object Level Recovery: Review)】页面。
  7. 确认您的要求,再按一下【提交(Submit)】来执行闪回删除操作。就会显示【确认(Confirmation)】页面。
  8. 按一下【确定(OK)】。

 

9.24 总结

在节中,您应该已学会:

  • 设定数据库以进行备份与恢复操作
  • 执行整个数据库备份
  • 恢复和复原整合数据库
  • 执行闪回表与闪回删除操作

 

 

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号