以最短的宕机时间升级到Oracle 10g

网络整理 - 07-26

  简介

  升级硬件通常都很容易,但是升级数据库……毫无疑问,每个人都有着痛苦的经历。一个经验丰富的 Oracle DBA 主要关注的是升级的成功完成和可能导致的宕机时间。成功不仅仅是指升级过程本身正常完成,更重要的是,生产应用程序能在升级后的数据库中无故障地运行。本文中,我们将提供一些建议,通过采用成熟的流程和技术将宕机时间和失败风险降到最低。

  为什么要升级?

  Oracle Database 10g 给了我们很多升级的理由。例如,您可以从它的通用可管理性架构中受益。Oracle 10g 在 Advisory Framework 和 Automatic Workload Repository 中包含许多改进和新的选项。Automatic Workload Repository 是为 Oracle 10g 组件提供服务的架构,以便为问题检测和自动优化收集、维护和利用统计信息。

  同样地,如果您遇到由于错误输入的 SQL 语句导致数据破坏,并需要几个小时来诊断和修复的情况,Oracle 10g 将为您提供强大的人为错误校正功能。例如,Flashback Transaction Query可以帮助您诊断问题并执行事务分析和审核。它能让您轻松地恢复用户或应用程序中的错误。您可以在回收站中使用对象名称查询已删除的表。

  Oracle 10g 中的其它主要增强功能包括自动化任务。例如,Scheduler 现在可以计划日常管理任务(如收集优化器的统计信息)。

  Oracle 10g 还支持新的操作系统,并允许您使用更强大的新处理器,从而增强服务器的处理能力。

  Oracle 10g 还包括改进后的 Real Application Cluster (RAC) 选项。RAC 允许 Oracle 数据库在一组群集服务器上运行任何应用程序。这提供了高水平的可用性和扩展性。如果一个群集服务器出现故障,Oracle 将在其它服务器上运行。

  因此,如果您有着性能、可用性或常规 OLTP 方面的问题,Oracle 10g 的功能可以帮助您。

  升级面临的挑战

  在 24x7 全天候运行的时代之前,升级都安排在周末。用户在星期五下午注销,MIS 会进行完全备份,然后开始升级过程。主要目标是确保系统在星期一早上可以运行,无论是由于升级成功还是不得已,在星期一用户抵达前的几小时内,恢复星期五下午的备份。

  现在,整个周末宕机是完全无法接受的,因为宕机将意味着大量的收入损失。在电子商务等环境中,周末的收入占据了很大一部分。为了尽可能减少中断的时间,标准升级过程的每一步骤,都需要检查和优化。有没有必要进行冷备份?是否拥有最快速的技术?恢复技术是否同样高效?还有,是否已将升级本身所需的时间降到最低?

  升级比日常操作需要更多的磁盘空间和内存。如果在升级过程中系统没有这些额外的资源,升级很可能会失败。有些风险是可以预见的。并且,您预见得越多,准备也就越充分。例如,有些失败是因为时间、内存或磁盘空间不足。其它风险可能是由于不可预料的原因,例如介质损坏、备份损坏或电源故障。检查备份的有效性需要花费几分钟,但是这个投入非常值得。设想一下:需要恢复备份的时候,却发现您的备份方案有问题,其结果是灾难性的!

  虽然人工失误不可能完全排除,但是采用一些重要步骤可将其影响降到最低。首先,确保你的升级小组有足够的精力;其次,保证他们做好了一切准备。

  最后,也是最重要的,在用户进入系统前,测试升级结果。由于很多用户更重视如何尽快将新系统投入使用,这一步经常都被省略了。有时,这种决定可能是一个严重的错误。

  简化升级过程

  利用现有技术,能最大限度地提高成功的机率;预留充足的升级时间,按照最坏的可能,充分测试升级选项以确保成功,将生产系统的中断降到最低。 

以最短的宕机时间升级到Oracle 10g

  从 A 复制到 B

  方法概述

  1. 创建目标实例 B

  2. 建立从 A 到 B 的复制链路

  3. 升级 B

  4. 恢复从 A 到 B 的复制过程

  5. 充分测试 B

  6. 建立从 B 到 A 的复制链路

  7. 将用户迁移到 B (v10g)(将 A 作为必要情况下的回切服务器)

  8. 在极短的时间内升级 A

  创建测试实例

  第一步是生成生产数据库的副本,以练习和测试升级。这可以通过多种方法完成。最简单的方法是使用磁盘镜像。在镜像环境中,可利用不同的镜像,建立复制进程。将生成的副本加载到另一个系统相同的安装点上,打开新实例,待新的测试实例完全恢复后,可启动该系统上的复制进程。这样,在建立副本过程中堆积在队列中的数据变化,就可以被复制到目标实例中。

  复制生产系统数据

  一些在升级后进行的测试,需要复制生产系统的数据变化。这样,您可以在测试实例中获得和生产系统一样的事务类型和数据量。因此,下一步是启动复制过程(如果您还没有这样做的话)。确保您在测试过程中复制了所有的生产表和序列,这样您的测试将是完整的。如果您使用了基于日志的复制产品,例如 Quest Software 的 SharePlex®for Oracle,要确保在测试实例中禁用触发器。触发器不应该修改目标数据,因为触发器在生产系统中产生的数据变化,同样被记录在在线日志中,并且已经被复制。