Oracle数据库10g备份和恢复


Oracle数据库10g备份和恢复: RMAN和闪回技术 Oracle 白皮书 2004 年 6 月 Oracle数据库10g备份和恢复:RMAN和闪回技术 发展和革命....................................................................................................... 3 恢复管理器 .................................................................................................. 3 快速恢复区 .................................................................................................. 4 自动存储管理.............................................................................................. 6 更改跟踪文件.............................................................................................. 6 增量更新备份.............................................................................................. 7 Oracle 建议的策略................................................................................... 7 备份管理....................................................................................................... 9 跨平台的传输............................................................................................10 革命还未结束............................................................................................11 RMAN 比对用户管理的恢复...............................................................11 网格集群.....................................................................................................13 人为错误的挑战............................................................................................13 人为错误纠正 — 闪回技术.................................................................13 人为错误的传统恢复 ..............................................................................14 恢复时间目标............................................................................................14 何时使用闪回与传统恢复的对比............................................................14 闪回数据库 ................................................................................................15 闪回表..........................................................................................................17 闪回删除.....................................................................................................18 什么是回收站?...................................................................................18 闪回查询.....................................................................................................18 闪回版本查询............................................................................................20 闪回事务查询............................................................................................20 实例..........................................................................................................21 结论...................................................................................................................22 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 2 Oracle数据库10g备份和恢复:RMAN和闪回技术 发展和革命 数据库备份可能是防止 Oracle 数据库发生介质故障的唯一方式。使用提供 给 DBA 的大量工具和方法来恢复关键数据的重要性是毋庸置疑的。保护 Oracle 数据的成本和复杂性包括,从简单的每周备份到磁带,到记录更加 繁复的文件快照或备用数据库。Oracle Data Guard1.的体系结构有助于企业恢 复对 Oracle 数据库造成不利影响的灾难、人为错误和损坏。每个工具和选 项都有其自己的持续可用性优势,并且可以快速备份和/或恢复 Oracle 数 据库。 为了保护和恢复数据所采纳的方法或工具应该具有: 可靠性。所有需要恢复的文件都进行了备份,且通过恢复操作能 够方便地恢复文件。 灵活性。Oracle 数据库可以在数据库、表空间、数据文件和块 级上备份或恢复。 可管理性组织和管理备份文件以便用于恢复操作。 可用性。备份操作不应该干扰数据库事务处理过程同时恢复操作 应该快速、有效。 Oracle 恢复管理器通过新的版本和 Oracle 数据库 10g 包含的革命性技 术进步继续得以完善,并提供您一直期待的简单、可靠和自动的恢复工具。 此白皮书列出了 Oracle 数据库 10g 用于备份和恢复文件管理的新功能, 增强的增量备份和异构平台上相同表空间数据的共享。让革命开始吧! 恢复管理器 恢复管理器 (RMAN) 是管理备份和更重要的数据库恢复的 Oracle 公用程 序。提供数据库高级的性能和可用性的同时消除了操作的复杂性。从 Oracle8 开始,恢复管理器为 DBA 提供了集成的备份和恢复解决方案。 1 有关 Data Guard 的详细信息,请访问 http://otn.oracle.com/deploy/availability/htdocs/odg_overview.html。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 3 恢复管理器确定了执行请求的备份、存储或恢复操作,然后与 Oracle 数据 库服务器合作执行这些操作最为有效的方式。恢复管理器和服务器会自动识 别出数据库结构的改动,并且动态地调整所需的操作以便适应更改。 Oracle 数据库 10g 恢复管理器功能集灵活变革了关键 Oracle 数据的恢 复。不用花费成本或附加安装,RMAN 即可管理 Oracle 数据库文件的备份 和恢复。因为 RMAN 与 Oracle 内核紧密集成,它提供了有效恢复 Oracle 数据库的能力。 快速恢复区 和 5 年以前甚至 1 年以前相比,今天花费相同数量的钱,却能够买到更多 的磁盘空间。可能只需要几 G 的磁盘空间就能满足当前的存储需要,磁盘 容量的直线上升只是带来了闲置存储空间的浪费。您是否经常彻夜不眠,尽 力设想该怎样使用这些闲置的磁盘空间吗?使数据库备份在磁盘上如何? 在磁盘上制作备份要更快,因为消除了磁带写入的瓶颈。但更重要的是,如 果需要数据库介质恢复,则立刻就可以使用数据文件备份。因为不需要查找 磁带和空闲磁带设备来存储所需的数据文件和存档日志,所以减少了存储和 恢复操作时间。 但是等一下。备份至磁盘并不是一个新概念。多年来 DBA 一直在执行此类 型的备份和恢复策略。RMAN 始终都能够从磁盘位置备份和恢复数据库。什 么是快速恢复区,是什么让它成为 DBA 的无价之宝? 快速恢复区是一个统一的磁盘存储位置,用于 Oracle 数据库内的所有恢复 相关的文件和活动。通过定义一个 init.ora 参数,所有 RMAN 备份、存档 日志、控制文件自动备份和数据文件副本会自动写入指定的文件系统或 ASM 磁盘组。 DB_RECOVERY_FILE_DEST = /oracle/flash_recovery_area 给快速恢复区分配足够的空间可确保 Oracle 数据库更快速、更方便地自动 恢复。现在,恢复时间目标取决于能够分配的空闲空间大小,此空间用来恢 复相关文件。有关研究表示 95% 的恢复操作只需要 3 天的备份量。所以, 如果拥有维持 3 天数据库备份和存档日志的磁盘空间,就可以在本地进行 所需的备份。系统管理员将不需要检索磁带或清空磁带设备,即可还原需要 的备份文件。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 4 好,现在 Oracle 数据库 10g 提供了一个参数可以将与恢复相关的文件组 织到磁盘上的一个位置现在您可能会说,这又如何呢?它怎么能帮助我呢? 我已经可以自己的磁盘上执行备份并且配置所有我需要的存档日志目标。我 很高兴您问及这个问题。 快速恢复区管理磁盘上的文件通过配置 RMAN 保留策略,快速恢复区将自 动删除该配置不再需要的陈旧备份和存档日志。如果您将某一恢复窗口的保 持策略设置为 7 天,RMAN 将所有恢复数据库需要的备份文件保存 7 天。 如果为所有的恢复文件设置了足够的磁盘空间偏离,那么只需要备份到磁 带,以便满足离线灾难恢复和长期的存档要求。 从介质故障中完全恢复数据库所需的所有文件是快速恢复区的一部分。这些 与恢复相关的文件包括: 控制文件:数据库创建过程中,在快速恢复区位置创建的副本。 存档日志文件:配置快速恢复区时,存档程序后台进程随后在快 速恢复区以及其他 LOG_ARCHIVE_DEST_n 配置位置中创建存档 文件。 闪回日志:快速恢复区会自动管理闪回数据库日志。 控制文件自动备份:控制文件的默认位置。 数据文件副本:RMAN 创建的数据文件副本的默认位置是存储在 快速恢复区。 RMAN 备份:在备份、复制操作过程中,RMAN 创建文件的默认 位置。如果恢复任务过程中需要磁带的话,这也是从磁带上恢复 存档日志的默认位置 企业管理器提供界面来定义快速恢复区。 快速恢复区提供: 相关恢复文件的统一存储位置 为恢复文件分配的磁盘空间管理 简化的数据库管理任务 更快的备份 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 5 更快的恢复 因磁盘的内在可靠性而更加可靠 自动存储管理 谈到备份和恢复时,不能不同时谈到文件存储。它们是息息相关的。Oracle10g 为存储资源提供了 DBA 简化的管理界面。自动存储管理 (ASM) 免除了手 动性能调节的需要。它将物理存储集中到一组虚拟磁盘,它提供启用高级保 护的冗余选项。ASM 推动了非侵入存储分配并提供自动平衡。它将数据库 文件扩展到所有可用的存储上,这样优化了性能和资源利用。通过自动化手 工任务,它节省了 DBA 时间并提高了管理较大数据库的能力,从而提高了 数据库的效率。 可以使用 ASM 配置快速恢复区。备份会自动得到保护,因为 ASM 设计上具 有容错功能,而且它在磁盘或磁盘阵列出现故障时会自动重新镜像。此外, ASM 可以防止非 Oracle 进程覆盖或损坏用于恢复的文件。有关 ASM 的详 细信息,请参见 OracleWorld 技术白皮书 40140 – Oracle 数据库 10g: 利用自动存储管理简化您的工作。 更改跟踪文件 在 Oracle8.0 中首次发布的增量备份一直是 RMAN 的一部分,它能够只备 份自上一次备份以后改变的程序块。Oracle 数据库 10g 通过实施变化跟踪 文件特性加快了增量备份速度。 启用程序程序块变化跟踪时,Oracle 就会跟踪所有数据库变化的物理位置。 RMAN 自动使用变化跟踪文件来确定在增量备份期间需要读取的程序块, 然后直接访问该程序块以对其进行备份。不启用程序块变化跟踪时,在每个 增量备份过程中会读取整个数据文件以查找并备份更改了的程序块,即使自 上次备份以来只有非常少量的文件发生了更改。使用以下命令来启用程序块 变化跟踪。 ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; 通过进行增量备份并且使变化跟踪文件成为您备份策略的一部分,您将能 够: 减少日常备份所需的时间。 跨网络备份时可以节省网络带宽 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 6 恢复 UNLOGGED 更改到数据库。例如,利用直接加载使用 “NOLOGGING”选项时,插入并不会创建重做日志条目而且它们 的更改无法通过介质恢复进行应用。增量备份会捕获更改的程序 块图像,而且它可以用于恢复。 减少备份文件存储。根据更新的程序块数量和备份的频率,增量 备份将小于整个数据库备份而且占用更少的存储空间。 启用已更改程序块的快速备份。 增量更新备份 Oracle’s 数据库 10g 增量更新备份功能可以使数据文件的图像副本与 RMAN 增量备份合并。产生的图像副本将使用增量备份捕捉的程序块更改 进行更新。使用 RMAN RECOVER 命令可以启动图像副本和增量备份的合并。 这在后台运行而且不需要数据库实例。 收缩备份窗口不再是问题。可以利用最新的增量备份连续更新数据文件图像 副本,Oracle 已不再要求通过此方法制作整个数据库备份。基于增量更新 备份的备份策略有助于将数据库介质恢复所需时间减到最少。RMAN 恢复数 据库的增量更新图像副本,且只需要应用上次备份以来生成的存档日志。介 质恢复所需的时间是创建增量备份并应用到图像副本的频率的函数。 将增量备份应用到数据文件图像副本 取消了执行整个数据库备份的需要。 由于使用最新的程序块更改更新图像副本,减少了介质恢复所需 的时间。 Oracle 建议的策略 备份解决方案利用快速恢复区、增量备份和增量更新备份,为 Oracle 数据 库提供了简单而快速的恢复。企业管理器备份向导提供了配置和计划数据库 备份的机制。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 7 备份向导提示您 配置快速恢复区,这样所有的 RMAN 备份和存档日志将写入指定 的目录。 确定备份应该在主机上运行的最佳时间。通常在用户操作最少的 时候会运行预定的备份。 复查并确认备份时间。企业管理器将提交备份作业以便每晚的同 一时间运行。 对于每个数据文件,Oracle 建议策略调用的备份操作如下: 1. 策略中第 1 天的开始(第一次计划任务实际运行的时间),备 份增量级为 0 的数据文件副本。在第 1 天的开始它包含数据文 件目录。在存储和恢复方案中,第 1 天中的重做日志可以用来 恢复到第 1 天中的任何一点。 2. 在第 2 天的开始,将创建增量级为 1 的备份,它包含第 1 天 中更改的程序块。在存储和恢复方案中,此增量级 1 可快速恢 复前滚级 0 备份到第 2 天的开始,使用重做日志可以恢复到第 2 天的任何一点。 3. 第 3 天及其后的第 n 天开始,从第 n-1 天开始的级 1 备份应 用于级 0 的备份。在第 n-1 天的开始,这将恢复数据文件副本 到第 n-1 天开始的状态。随后创建新级 1,它包含第 n-1 天中 更改的程序块。在存储和恢复方案中,此增量级 1 可快速恢复 存储的备份到第 n 天的开始,使用重做日志可以把数据库恢复 到第 n 天的任何一点。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 8 创建不同的 增量备份 EM 计划备 份的运行 使用前一晚的 增量备份前滚 镜像副本。 开始执行 Oracle 建 议的策略 此策略可能听起来很复杂,却完全是企业管理器自动完成的。您还可以自己 执行建议的策略,只要在各个备份窗口中运行以下两个 RMAN 命令即可: RECOVER COPY OF DATABASE WITH TAG oracle_strategy; BACKUP INCREMENTAL LEVEL 0 DATABASE FOR RECOVER OF COPY WITH TAG oracle_strategy; 备份管理 企业管理器 10g 提供列出和修改 RMAN 备份的能力。您可以查看 RMAN 备 份、存档日志、控制文件备份和图像副本。如果选择 RMAN 备份上的链接, 将显示位于此备份中的所有文件。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 9 跨平台的传输 Oracle 可传输的表空间功能允许用户跨越 Oracle 数据库快速移动表空间。 它是在数据库间转移批量数据最为有效的方式。 使用可传输的表空间转移数据,要比导出/导入或是卸载/加载同样的数据快 得多。这是因为传输表空间仅要求复制数据文件、集成表空间的结构信息。 您也可以使用可传输的表空间来转移索引数据,因此,在导入或加载表格数 据时就避免了通常需要执行的索引重建。 Oracle 数据库 10g 还提供了跨平台传输表空间的能力。此功能可用于: 向内容供应商提供一种更方便、有效的方式来发布已经结构化的 数据,并发布给在不同平台上运行 Oracle 的客户。 简化数据从仓库环境到数据市场的分销,这些数据市场常常运行 较为小型的平台之上。 实现表空间跨异种集群的只读共享。 允许数据库从一个平台向另一个平台移植。 有许多的平台,但不是所有的平台都支持跨平台表空间传输。您可以查询 V$TRANSPORTABLE_PLATFORM 以便查看支持的平台,并确定它们的平 台 ID 和它们的终结格式(字节顺序)。 源平台和目标平台有着不同的终结,所以要在源平台或目标平台执行额外的 转换步骤,以便转换正在传输至目标格式的表空间。如果它们有相同的终结 类型,则没有必要进行转换,同时可以传输表空间就像它们处于同一平台上 一样。 表空间传输至不同的平台之前,兼容性设置为 10.0.0 或更高的情况下,表 空间至少要在 Oracle 10g 数据库中读/写一次。这是因为操作使表空间平 台内部的数据文件知道识别平台的每个文件归属。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 10 革命还未结束 前面几页中我强调了几项 Oracle 数据库 10g 恢复功能,还有更多的功能 将要发布。 RMAN 备份压缩。如果有额外的磁盘空间,则通过压缩磁盘上的 RMAN 备份您还可以继续减少恢复数据库的时间。不需要未压缩 的备份文件,因为恢复操作可以使用压缩的备份文件。 恢复允许使用缺损的备份。RMAN 的目标是使用所有已知的备份 恢复数据库。最好使用最后一次备份完全恢复数据库。如果没有 最后一次备份,RMAN 将自动确定可以用于恢复的下一个有效备 份。 通过时间恢复中先前的点自动恢复。有时必须及时地将数据库恢 复到先前的点,然后再使用 RESETLOGS 选项打开它。Oracle 10g 以前的版本中,如果在重置日志后以及进行另外的完全备份之前 数据库损坏,则需要使用重置日志之前保存的最后一次备份进行 恢复,恢复过程会很复杂而且容易出错。在 10g 中,如果有些数 据文件是从打开 RESETLOGS 之前执行的备份中恢复的,Oracle 恢复会直接处理此类情况。 完全自动表空间时间点恢复。RMAN 只提供了一条命令,用于将 表空间恢复到过去的某个时间点。此操作是完全自动的,而且在 恢复结束时就可以使用表空间。 在备份或恢复期间进行自动通道切换。有多少次几乎要完成备份 或恢复操作时,因为发生错误导致通道中断而无法完成最后的文 件恢复?RMAN 将结束其他已分配通道的工作,然后自动继续完 成操作。 表空间重命名。某些情况中,表空间分享同一个表空间名称,特 别是如果它们被克隆后。具备跨平台可传输的表空间能力的情况 下,可以很方便地在表空间级别移动数据。重新命名表空间的能 力使表空间变得更加轻便。 删除数据库。如果定期创建的数据库是用于测试和授权的,应该 在此临时数据库完成使命后将属于数据库的文件删除。否则,磁 盘将装满孤儿数据文件。新的 RMAN DROP DATABASE 命令提供了 从操作系统中删除所有数据库文件的进程。 RMAN 比对用户管理的恢复 恢复管理器提供了 Oracle 数据库有效的恢复方法。但是有许多 DBA 继续 使用其自编的脚本完成备份和恢复操作。下表对 RMAN 和用户管理的通用恢 复操作进行了比较。 操作 恢复管理器步骤 用户管理步骤 丢失数据文件 1. 脱机数据文件和/或表 空间。 1. 查找备份,特别是最新的 备份。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 11 2. RMAN 恢复数据文件备 份。 3. RMAN 自动恢复任何所 需的存档日志时会恢复 数据文件。 4. 联机数据文件和/或 表空间。 2. 如果备份在磁带上,要求 有要恢复的文件。 3. 脱机数据文件和/或表空 间 4. 发出恢复数据文件命令。 5. 如果需要存档日志,则恢 复它们。 6. 使用恢复命令所需的存档 日志 7. 联机数据文件和/或表空 间 修补损坏的程 序块 1. 程序块恢复 block_number 1. 导出数据 2. 损坏程序块中的数据丢 失,除非可以从备用数据 库或先前备份中抽取它。 同时即使只有一个程序块 损坏也很难抽取损环程序 块以外的表数据。 3. 导入表数据 表空间时间点 恢复 1. 恢复表空间用户、工具, 直到 2003 年 7 月 7 日; 1. 为临时数据库创建 init.ora 文件 2. 为系统恢复备份、撤销、 用户、工具。 3. 恢复要求有恢复所需的存 档日志 4. 安装临时数据库并恢复到 2003 年 7 月 7 日。 5. 使用数据泵设备,提取数 据也就是字典数据,这样 用户和工具表空间可以插 入到数据库中。 6. 将用户和工具表空间插入 到生产数据库。 7. 删除临时数据库文件,它 们是用于恢复 TSPITR 操 作的。 所有联机控制 文件丢失 1. 恢复控制文件 1. 创建控制文件脚本,它包 含所有数据库文件和联机 日志。 2. 运行脚本以创建控制文 件。 注意:所有的 RMAN 备份和存 档日志信息都丢失了。 验证备份 1. 恢复数据库验证; 因为没有可用的工具,无 法执行。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 12 网格集群 这是场可看作是演化的革命。网格计算很可能掀起一场计算方式的革命。同 时也将是快速发展的一种方式。一次可以方便地移动至网格一步。每一步都 受益颇大 企业可以购买满足企业所有需求的资源,并按照需要或策略提供给他们个别 的应用程序。这导致更加有效地使用企业资源,同时极大地降低了开发、部 署和管理成本。它可以让您决定部署组织计算资源的方式,而且在组织需求 改变时可快速更改部署 无论数据在何处,RMAN 知道什么数据需要备份,并且提供利用跨平台的可 传输表空间功能从任何平台插入数据的能力。有关 GRID 的详细信息,请参 见 OracleWorld 技术白皮书 40123 – Oracle 和网格。 人为错误的挑战 多项研究表明,40% 的应用程序损耗都是由操作员或用户的错误造成的。 人非圣贤,孰能无过?这些错误很难避免,而且在没有事先规划和使用正确 技术的前提下尤其难以恢复。这样的错误会导致“逻辑”数据损坏,或者导 致 IT 基础架构的一个或多个组件停止运行。纠正个别组件的错误相对来说 简单,而检测并纠正逻辑数据的损坏,例如意外删除了有价值的数据时,它 耗费的操作将导致业务产出的巨大损失。典型的用户错误可能包括意外删除 了有价值的数据,删除了错误数据和删除了错误表格。 人为错误纠正 — 闪回技术 Oracle 数据库 10g 体系结构使用了独一无二的技术革新,此技术用于人为 失误造成的数据库恢复领域。闪回技术提供了一组新功能,可及时查看数据 并前后倒数据。使用闪回功能,可以查询模式对象的以前版本、查询历史数 据、执行变化分析,或执行自助修复,以便在数据库联机时恢复逻辑损坏。 利用 Oracle 数据库 10g 闪回技术,您完全可以取消过去的操作! Oracle9i 引入了闪回查询从而提供简单、强大和完整的非破坏机制,并从人 为错误中恢复。它允许用户查看过去某点的数据状态,而不需要更改任何的 数据库结构。Oracle 数据库 10g 扩展了闪回技术,以便提供数据库、表格、 行和事务处理级别快速、方便的恢复。 闪回技术使恢复过程实现了革命性变化,您只需对更改的数据进行操作。现 在,错误恢复所需的时间就相当于错误发生的时间。闪回 10g 技术包括闪 回数据库、闪回表、闪回删除、闪回版本查询以及闪回事务查询。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 13 人为错误的传统恢复 传统备份和恢复方式可靠而且容易执行备份了数据库后如果出现错误,则恢 复文件并使用存档日志。瞧!几个小时后,您已经修复了故障。从人为错误 恢复基本上有四种方式可供使用。 手工重新输入丢失的数据。成本高,耗时并暴露出额外的人为错 误。 从最后一次冷备份恢复。自最后一次备份以来事务处理的丢失。 数据库时间点恢复。发生错误后事务处理的丢失。 表空间时间点恢复。丢失的事务只独立于表空间集。 四种方式中的任何一种都是有效的恢复策略。只有一次落下 —— 从磁带恢 复备份并执行恢复操作所花费的时间。 恢复时间目标 如果发生无法预料的事件例如自然灾害、技术故障或人为错误时,您的公司 可以承受的可接受停机时间是多少?一个小时?两个小时?四个小时?一 整天?公司不同数值也会有所不同。为这些无法预料的事件作规划将减轻损 失。恢复时间目标,或者 RTO 是恢复数据所需的小时数或天数。RTO 应该 成为恢复计划的一部分,而且根据各个公司对于数据可用性需求的不同而有 所不同。据 Gartner 统计,当前组织要求的主要系统停机平均恢复时间为 2 至 24 小时。 为什么要花费数小时来纠正数分钟造成的故障呢?为什么要执行冗长的备 份恢复来恢复您的数据库呢?很好,只要有了 Oracle 数据库 10g 就免去了 一切麻烦,这要感谢“闪回技术”。此白皮书的剩余部分将讨论如何使用闪 回功能来达到并超越恢复时间目标。Oracle 数据库 10g 是自动管理、自动 纠错实体,它让您来控制数据时间(纠错)旅行的能量。时间旅行是存在的。 何时使用闪回与传统恢复的对比 Oracle 数据库中发生逻辑故障(人为错误)时,应该使用闪回技术,而且 需要快速而方便的恢复。如果发生人为错误,则很难确定错误事务影响的对 象和行。闪回有助于分析诊断错误是如何被引入到数据库中的,这样您就可 以修补损失并且防止此类错误再次发生。Oracle 数据库 10g 允许 DBA 快 速审核数据库事务并顺利地进入它们提交的第二项。下表显示了闪回技术的 典型应用。 目标级别 方案 闪回技术 传统恢复 数据库 删除用户 闪回数据库 时间点恢复 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 14 截断表 闪回数据库 时间点恢复 出现批量任务错 误,导致大量表格 只部分更新。 闪回数据库 数 据库 时间点 恢复。 表格 删除表格 闪回删除 时间点恢复 不带专门的 ‘where’ 从句的更 新 闪回表 时间点恢复 恢复删除的数据 或撤销错误的更 改,甚至是在更改 提交以后 闪回查询或者 闪回表 表空间时间点 恢复 对照过去某个时 间的数据比较当 前数据 闪回查询 空 间故 意保持 空白.. 事务 批处理任务运行 两次,但无法真正 肯定受到影响的 对象 闪回版本查询 & 闪回事务查询 数据库时间点 恢复 闪回技术使恢复过程实现了革命性变化,您只需对更改的数据进行操作。现 在,错误恢复所需的时间就相当于错误发生的时间。 闪回数据库 闪回数据库可快速地将某个 Oracle 数据库倒回至以前的时间,以便纠正由 逻辑数据损坏或用户错误造成的任何问题。闪回数据库就像数据库的“倒退 按钮”。 它提供数据库的时间恢复点,而无需首先恢复数据库备份。当您不再浪费时 间从磁带恢复数据库备份时,数据库时间点恢复是快速的 通过使用闪回 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 15 数据库命令可以从 RMAN 和 SQL*Plus 访问闪回数据库的性能,其效果类 似于常规的时间恢复点。它允许您将数据库返回到其近期的状态。 若要启用闪回数据库功能,用 DBA 配置闪回恢复区。快速恢复区在 Oracle 数据库 10g 中是一项新功能,它为 Oracle 数据库中所有与恢复相关的文 件和操作提供了统一的存储位置。除了闪回数据库日志以外,恢复区还包含 重做存档日志和 RMAN 备份。有关闪回恢复区的详细信息,请参考 Oracle 备份和恢复文档。 Oracle 在闪回恢复区内部自动创建和管理闪回日志。因为闪回恢复区配置 了空间定额,闪回日志从属于这些磁盘空间限制。闪回日志的大小区别很大, 这取决于在给定的闪回日志间隔期间数据库更改的读/写速度。程序块更改 的副本被写入到闪回日志中。如果在一天之内,更新了 10% 的数据库程序 块,则 24 小时闪回日志的大小为您的数据库大小的 1/10th。如果将数据库 恢复到过去较早时期可能要求更多的磁盘空间,则 DBA 可能会动态地更改 此磁盘定额。 Data Guard 提供了几种易于使用的方式来避免用户错误。闪回数据库即可 用在主数据库上又可用在备份数据库上,以便快速地将数据库恢复到较早的 时间点,这样就避免了用户错误。同时,如果管理员决定切换到备用数据库, 但那些用户错误已被应用于备用数据库(也就是说,由于启用了实时应用特 性),管理员将只需简单地将备用数据库闪回到某一安全的时间点。最后, 管理员还有额外的选择,可以不在一个或多个备用数据库上使用实时应用特 性,相反使重做数据在那些备用数据库上的应用延迟一段可配置的时间,这 提供了一个防止这种用户错误或损坏的保护窗口。 启用闪回数据库的性能费用少于 2%。您可能不希望牺牲任何产品数据库的 性能费用,而是实现一种平衡。如果能在数分钟而不是数小时内恢复数据库, 则可以避免公司上百万美元的收益损失,您愿意将 2% 的资源用在闪回数据 库上吗? Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 16 启用闪回数据库功能有以下几方面获益: 免去了恢复备份的时间。因为遇到了灾难性故障数据库无法运行 时,导致业务受阻从而造成上百万美元的收益流失。 消除了备用数据库重做应用延迟闪回数据库无缝地与 Data Guard 集成。备用数据库现在能够快速而方便地闪回到过去的任 意时间点,这样在应用重做过程中就不需要延迟。 意外错误纠正。闪回数据库提供了 Oracle 数据库的连续快照。 数据库可以回退到 SCN 或时间戳。 闪回表 当发生人为错误或应用程序错误时,可能想将一个或更多个表格状态恢复至 故障发生以前的时间点。闪回表使 DBA 能够将一个或一组表快速轻松并 联机恢复到指定时间点。闪回表可在恢复表的同时自动保留其相关属性,如 当前索引、触发器和限制,而无需 DBA 查找和恢复应用程序特有的属性。 闪回表缓解执行更为复杂的时间点恢复操作的需求。以下命令将 ORDERS 和 ORDER_ITEMS 表闪回到 7 月 7 日下午 2:33。 FLASHBACK TABLE orders, order_items TO TIMESTAMP (JUL-07-2003, 02:33:00); 就像闪回查询,闪回表也依靠撤销数据恢复表。因此撤销数据必须可用,这 样闪回表才能成功。自动撤销管理功能允许您指定利用 UNDO_RETENTION 初始化参数保留撤销数据的时间。通过使用此参数并 适当地规定撤销表空间大小,DBA 能够控制使用闪回表的情况下可修复表的 回退时间长短。 DBA 可以使用闪回表功能快速地从人为错误中恢复,它还可以用作自助服务 的修复工具以便从意外修改或删除中恢复。应用程序开发人员可以将闪回表 功能合并到他们定制的应用程序中。根据基于时间点对象的恢复可用性、快 速恢复和使用方便,介质恢复时使用此工具将获益颇多。 闪回表 联机执行恢复操作。 将指定表中的所有数据恢复到时间戳或 SCN 说明的先前时间 点。 自动恢复所有的表属性,例如索引、触发器以及应用程序所必需 的内容,这些程序利用闪回的表才能发挥作用。 在分布式环境中维持远程状态。例如,所有应用程序要求的表修 改都被闪回。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 17 按照约束规定维持数据的完整性。Oracle 保留了所有从属对象 和参考的完整性。 即使在闪回操作以后,仍然提供将其恢复到最初状态的能力。 闪回删除 对于用户和 DBA 来说意外删除对象始终都是一个问题。用户很快认识到了 他们所犯的错误,但恢复这些删除的表、索引、约束和触发器等已经为时已 晚,而且从以往来看也并非易事。在 Oracle 数据库 10g 中删除对象时闪回 删除提供了一个安全网。用户删除表时,Oracle 会自动将其放入“回收站”。 什么是回收站? 回收站是一个虚拟容器,所有被删除的对象都驻留在这里。在封面的下面, 这些对象占据与当创建它们时所占据相同的空间。如果在 USERS 表空间中 创建表 EMP,那么删除的表 EMP 保留在 USERS 表空间中。并不移动删 除的表和任一相关对象(如索引、约束、嵌套表和其他相关对象),仅对它 们进行重命名,使其前缀为 BIN$$。可以继续访问删除表中的数据,甚至 可以依据删除表使用闪回查询。 在删除回收站对象前,每个用户对回收站对象都拥有相同的权利和权限。可 以通过查询新回收站视图来查看删除表。回收站中的对象将保留在数据库 中,直到删除对象的所有者决定使用新清除命令永久性删除这些对象。按用 户的定额计数回收站对象。但闪回删除是一种非破坏性功能。将通过空间恢 复过程自动清除回收站中的对象,如果 用户创建新表或添加导致其超出定额的数据。 表空间需要扩展其文件大小,以适应创建/插入操作。 是否删除错误表?当然。使用闪回删除将其快速取回。 闪回查询 随 Oracle9i 一起引入的 Flashback Query 提供了查看存在以前状态数据的 能力。默认情况下,数据库上的操作使用最近提交的可用数据。如果希望查 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 18 询过去某时状态中的数据库,那么,可以使用闪回查询功能进行此项操作。 此功能可以指定时间或系统更改编号 (SCN) ,并使用提交的数据从相关时 间中进行查询。 当使用自动撤消管理时,闪回查询机制最有效。Oracle 数据库将撤消操作 当作第一等级的数据库对象。撤消操作具有持续性,可以使数据库系统继续 有效,也可以崩溃或关闭数据库系统。为获取更佳性能,它还与其他数据库 对象分享数据库缓冲存储器。Oracle 数据库使用超出事务处理提交范围的 撤消操作,提供长期运行查询的读取一致性,并从逻辑损坏中恢复。 Oracle 数据库提供了直接指定为保留而进行的撤消数量的方法。此系统自 动回收过期的撤消操作,以为新事务处理生成撤消提供空间。撤消保持值的 选择依赖于长期运行查询的长度以及逻辑损坏的恢复需求。然而,用户可以 不选择指定的撤消保持,以及允许系统为指定的撤消空间提供最佳保持。此 最佳保持考虑到长期运行查询以及从逻辑损坏中恢复的最佳可能范围。并不 保证默认的撤消保持。如果用尽用于现行事务处理的过期撤消,那么,系统 可以使用最早的未过期撤消操作。 如果将 UNDO_RETENTION 设置为大于 5 天,那么,Oracle Database10g 中一项新功能是可以查询过去 5 天以前的数据。只要为作废的表空间数据 文件分配足够的磁盘空间,那么,Oracle 将维护一段时间内的撤消操作。 以下描述了确保数据库可以使用依赖于撤消操作的闪回查询和其他闪回功 能所需要的步骤。这包括 1. 确保数据库使用作废的表空间。将 UNDO_MANAGEMENT 初始 化参数设置为自动指定。 2. 为 UNDO_RETENTION 初始化参数设置数值,此数值可使撤消操 作保持一段时间,以允许最长的查询及时返回,或从人为错误中恢 复。 3. 为保证不覆盖未到期的撤消操作,请为作废的表空间设置 RETENTION GUARANTEE 子句。 闪回查询的唯一功能是可以查看处于过去状态的数据,然后正确选择如何处 理此信息,可能要进行一项分析,撤消此更改或捕获更改的数据,以备以后 处理。闪回查询机制非常灵活,可以用于很多场合。可以 查询存在于过去状态中的数据。 将当前数据比作过去的数据。可以比较单独行或进行更复杂 的比较,如查找交集或合并。 恢复已删除或更改的数据。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 19 使用日期或时间标记值及时指定某点,或记录系统更改编 号。 闪回版本查询 闪回版本查询提供了审核表行并检索有关更改行事务处理信息的方法。它检 索所有提交的行版本,这些行位于或曾经位于发布查询的时间和过去某一时 间点之间。它通过利用自动撤消管理完成此项操作。 闪回版本查询是 SQL 的扩展,可用于在指定表中检索不同行的版本,此表 存在于特定时间段内。对于任一指定的表,每次执行 COMMIT 语句时,都 会创建一个新行版本。闪回版本查询返回存在于指定时间段内的每个行版本 的行。 使用框中上述实例表示的 SELECT 语句的 VERSIONS BETWEEN 从句调 用闪回版本查询功能。它看上去像除新附加列以外的任一其他 SQL 查询。 有四种新的伪列,它们提供了关于行数据事务处理的详细信息,此行数据允 许 DBA 查明 Oracle 数据库中数据更改的时间和方式。 VERSIONS_XID – 此行版本创建的事务处理标识 VERSIONS_OPERATION – 创建此行版本的操作,如删除、插入和 更新。 VERSIONS_STARTSCN – The SCN 此行版本首先在基中发生。 VERSIONS_STARTSCN – The SCN 此行版本首先在基中更改。 闪回版本查询是 DBA 运行分析和回答问题(如何发生这些情况是?)的强 大工具。DBA 不仅可以运行手动分析,而且闪回版本查询还是应用程序开 发人员的强大工具。可以创建用于审核目的的自定义应用程序。并不是每个 人都能够真正解释他/她的操作。 闪回事务查询 您可能会发现表中的数据不知何故被不正确地更改了。为了研究该更改,可 使用多个闪回查询来及时查看指定点的行数据。更为有效的方式是使用闪回 版本查询功能来查看一定时期内对行进行的所有更改。该功能允许将 VERSIONS BETWEEM 子句附加至 SELECT 语句,后者指定 SCN 或希望 查看的行值更改之间的时间戳范围。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 20 一旦确定错误事务,就可使用闪回事务查询功能来识别其他由该事务进行的 更改,并请求撤消 SQL 来冲销这些更改。DBA_TRANSACTION_QUERY 查看意为通过其可获得事务历史和撤消SQL。 事务处理标识从之前的闪回版本查询获得。结果行会显示该事件内所做的所 有更改。在此特定情况下,ORDER 2453 和属于 ORDER 2453 的 ORDER ITEMS 已被删除。如果需要维修错误的活动,则系统会提供 SQL 语句以 进行手动操作。 闪回事务查询提供了一种查看事务级数据库更改的方法。与闪回版本查询结 合使用时,其可便捷地从用户或应用程序错误恢复。它提高了对数据库中问 题的联机诊断能力,并执行事务分析和审核。 – 实例 让我们来仔细研究一下使用回闪技术工具来执行自助服务维修的一个实例 2,即无需管理员参与就可从人为错误恢复 Lisa 是软件开发组的经理,他们的产品销售良好。Lisa 决定对所有 具有超过 2 年的经验和等级为 3 的员工,薪酬提高 10% 并将其 等级提升为 4 级。Lisa 让她的 HR 代表 Bob 来进行这些更改。 Bob 使用他们的 HR Web 应用程序来更新公司数据库,以将 Lisa 组中等级为 3 的员工的薪酬提高 10% 并将其等级提升为 4 级。 就在 Bob 按下“提交”按钮时,才意识到他遗漏了 2 年经验这个 要求。现在 Bob 该怎么做? Bob 可以通过执行以下命令来回退表至其进行错误更改之前: FLASHBACK TABLE employee TO TIMESTAMP (systimestamp - interval '5' minute); 之后,在下午 5 点.,Lisa 决定给 Joe 额外提高 5%,作为组中明 星员工的奖励,并让 Bob 执行此更新。Bob 向 Lisa 汇报说 Joe 的 记录丢失了。然后 Lisa 和 Bob 执行闪回版本查询来查明 Joe 的记 录发生了什么事。 SELECT versions_starttime, versions_operation, sal from employee VERSIONS BETWEEN MINVALUE AND MAXVALUE where name = ‘JOE’; 结果显示 Joe 的记录在下午 4 点后被删除了。使用闪回查询,Bob 发现了丢失的 Joe 的员工数据。 2 感谢 Oracle 的 Bipul Sinha 和 Vasudha Krishnaswamy 提供的实例。 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 21 INSERT INTO employee SELECT * FROM employee AS OF TIMESTAMP TO_TIMESTAMP(’2003-07-18 15:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) WHERE name = ‘JOE’; 按照以下命令,Lisa 可找出有关登录用户的信息和通过使用闪回版 本查询和闪回事务查询删除 “JOE” 的所有其他用户事件更改 SELECT commit_timestamp , logon_user FROM dba_transaction_query WHERE xid IN (SELECT versions_xid FROM employee VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP(’2003-07-18 15:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) and TO_TIMESTAMP(’2003-07-18 17:00:00’, ‘YYYY-MM-DD HH24:MI:SS’) WHERE name = ‘JOE’); 如果仅此行受到事务的不利影响,则可通过上述的闪回查询恢复该 行。另一方面,如果他们发现 EMPLOYEE 表中有许多其他错误, 则可通过使用如下所示的闪回表将整个表恢复至 16:00 时的状态: FLASHBACK TABLE employee TO TIMESTAMP TO_TIMESTAMP (’2003-07-18 16:00:00’, ‘YYYY-MM-DD HH24:MI:SS’); 按照所示,Bob 重新执行 Lisa 所需的两套更新。 本例说明了终端用户如何从先前在数据库中提交的错误事务中恢复。 结论 数据库备份是恢复关键数据的保险措施。Oracle 数据库 10g 提供的机制可 以组织和管理快速恢复区中的恢复相关文件。它消除了对手动记录备份位置 的需要,并在恢复不再需要时将其删除。如果备份窗口收缩,由于先前的备 份利用了新的变化跟踪文件功能,因而 RMAN 可直接读取变化块。现在使 用 Oracle 数据库 10g 的技术优势和企业管理器,可实现恢复战略以达到恢 复时间目标。 用于保护和恢复数据的方法和工具应提供: 可靠性。RMAN. 灵活性。RMAN. 管理性。RMAN. 可用性。RMAN. 如果您以前从未测试过 RMAN,那么试试吧。然而我们并没有丢失良好的 备份! Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 22 人为错误是导致系统故障的主要原因之一。这些错误很难避免,而且在没有 事先规划和使用正确技术的前提下尤其难以恢复。此处“正确”的技术就是 Oracle 数据库 10g。为什么犯错误只需几秒,恢复却要花费数小时或数天? 不应如此并且现在也不会如此。闪回通过只在更改数据上运行引发了恢复变 革。单一的外部命令就可维修人为错误导致的损坏。闪回技术去除了恢复复 杂性的同时,降低了从难以预测的人为错误恢复的时间。 所有这一切就从 Oracle 数据库 10g 开始! Oracle 数据库 10g 备份和恢复:RMAN 和闪回技术 2004 年 6 月 作者:Tammy Bednar 协作者: Oracle Corporation 全球总部 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 全球咨询热线: 电话: +1.650.506.7000 传真: +1.650.506.7200 www.oracle.com 版权所有 © 2004,Oracle。保留所有权利。 本文档只用于提供信息,其中的内容如有更改恕不通知。 不保证本文档中没有错误,也不提供任何其它保证或条 Oracle 数据库 Database 10g 备份和恢复:RMAN 和闪回技术 页 23 件(无论是口头表达还是法律暗示),包括商用的陷含 保证和条件或者对特殊目的的适用性。我们明确拒绝与 本文档有关的任何责任,并且本文档不构成任何直接或 间接的契约义务。未经我们事先的书面许可,不得以任 何形式或方法(电子或机械方法)为任何目的复制或传播 本文档。 Oracle 是 Oracle Corporation 和/或其会员的注册商标。 其他名称可能是其各自所有者的商标。
还剩23页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

xiaoyongli4

贡献于2011-10-25

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf