OracleDatabase11g:面向管理员的新增功能3-2OracleDatabase11g中的更改管理本课一开始时将简单介绍OracleDatabase11g中的更改管理功能及其优点,并使用三节课来介绍这个主题。第3课(“SQL性能分析器”)从第9张幻灯片开始。OracleDatabase11g:面向管理员的新增功能3-3DBA执行更改时面临的挑战大型业务关键应用程序不但复杂,而且负载模式和使用模式也相当多。与此同时,这些业务系统要在响应时间、吞吐量、运行时间和可用性方面提供特定服务级别的保证。对系统的任何更改(如升级数据库或修改配置)通常都需要进行全面的测试和验证,然后才能在生产系统中实施这些更改。在移到生产系统之前为了保证安全,数据库管理员(DBA)必须让测试系统承受与生产环境中的工作量很近似的工作量。DBA使用一种有效的方式分析系统级更改对整体SQL性能的影响也很有益处,因为这样便可以在生产之前对更改执行任何必要的优化。OracleDatabase11g:面向管理员的新增功能3-4计划永远追不上变化OracleDatabase11g是为快速发展和变化以满足业务需求的数据中心环境设计的,允许DBA有效且高效地管理更改。基于OracleDatabase10g的自助管理功能建立的OracleDatabase11g,在自动诊断、可支持性以及更改管理方面有了很大的改进。当前,由OracleDBA和信息技术管理员主导数据中心的主要活动。有些数据中心活动将移到低成本的计算平台(如OracleEnterpriseLinux)上,并使用ASM简化存储管理。DBA需要在新操作系统或存储平台上使用“实际工作量”来测试数据库,以确保迁移成功。如今的企业必须在硬件和软件上进行大量投资来执行基础结构更改。例如,如果DBA需要测试某个数据库的数据文件存储管理(既包括基于文件系统的管理,也包括典型J2EE应用程序的ASM管理),则企业将需要为整个应用程序堆栈进行重复的硬件(包括Web服务器、应用程序服务器和数据库)投资。组织可能还需要对昂贵的测试软件进行投资才能获得最终用户的工作量。这些投资使任何组织要评估和实施对其数据中心基础结构的更改都要付出极高的代价。OracleDatabase11g使用以“更改管理”功能为基础的一组解决方案解决了这个问题。OracleDatabase11g:面向管理员的新增功能3-5更改管理的生命周期OracleDatabase11g使用快照备用来设置和测试实际环境,进而支持实际的测试。可以临时打开(即激活)一个实际的备用数据库来进行读取和写入操作(如报告和测试)。测试完成后,只要对实际备用模式进行还原,即可允许替补至主站点。此功能可以防止数据丢失,类似于存储快照,但允许进行灾难恢复,并在测试时提供单个存储副本。企业要对数据库环境进行准确的测试,能够准确地复制生产场景至关重要。在OracleDatabase11g中,数据库重放为实际测试提供了进一步的支持。数据库重放的设计目的是捕获指定数据库上的客户机请求,而这些请求要复制到生产数据库的其它副本中。OracleEnterpriseManager提供了一系列易于使用的步骤,用于设置对工作量的捕获。DBA处理的一些更改包括数据库升级、新增优化建议、方案更改、统计信息收集以及操作系统和硬件方面的更改。DBA可以使用SQL性能分析器来跟踪和预测由这些更改引起的SQL性能的变化。如果SQL性能在有些情况下出现回归,则DBA可以运行SQL优化指导来优化SQL语句。OracleDatabase11g:面向管理员的新增功能3-6更改管理的生命周期(续)从OracleDatabase11g版本1进行升级时,可以使用滚动升级功能,以确保各种版本的软件仍然可以相互通信。这样一来,可以对ASM集群的独立节点进行迁移或修补,而不会影响数据库的可用性,因此可以增加运行时间,实现到新版本的无故障迁移。ASM进一步增强了系统功能计划和工作量更改功能(快速磁盘再同步、首选镜像读取)。对联机功能(联机索引重组和联机表重新定义)的许多增强进一步支持了应用程序更改。自动诊断资料档案库(ADR)是一种系统管理的新资料档案库,用于存储和组织跟踪文件和其它错误诊断数据。您可以全面查看数据库遇到的所有严重错误,以及诊断问题和最终解决问题所需的相关数据。也可以使用EM支持工作台(该工作台有一个简单的工作流界面)查看和诊断意外事件数据,并将这些数据打包供Oracle技术支持使用。数据恢复指导工具可用于自动诊断数据故障,并报告相应的修复选项。OracleDatabase11g的EnterpriseManager支持对单个实例数据库主目录应用端到端自动修补,并支持对集群件应用滚动修补。您不必再在修补过程中执行手动步骤来关闭系统、调用OPatch、应用SQL以及其它此类最佳方法步骤。OracleDatabase11g:面向管理员的新增功能3-7使用快照备用数据库设置测试环境在OracleDatabase11g中,可以临时打开(即激活)一个实际的备用数据库来进行读取或写入操作(如报告和测试)。处于快照备用状态的实际备用数据库仍会接收来自主数据库的重做数据,因此,在处于报告或测试数据库角色时,可为主数据库提供数据保护。将实际的备用数据库转换为快照备用数据库,打开该快照备用数据库以供应用程序在测试时写入。完成了测试后,可以放弃测试写入内容,通过应用重做日志追补主数据库。可以使用以前的版本创建快照备用数据库。但是,OracleDatabase11g极大地简化了设置快照备用数据库的方式。有关快照备用数据库的详细信息,请参阅《OracleDataGuardConceptsandAdministrationGuide》。注:OracleDatabase11g中的另一个重要功能是实际备用数据库的实时查询功能。使用此功能可以在“重做应用”活动期间查询实际备用数据库。OracleDatabase11g:面向管理员的新增功能3-8快照备用的优点快照备用数据库是一种通过实际备用数据库激活的数据库,用于报告和测试。快照备用数据库接收来自主数据库的重做数据,继续为主数据库提供数据保护。快照备用数据库:•与主数据库一样,用户可在其中执行查询或更新•与实际备用数据库一样,可在其中继续接收来自主数据库的重做数据快照备用数据库既支持灾难恢复,也支持使用实际备用数据库进行报告和测试。虽然与存储快照类似,但快照备用数据库在维护灾难恢复的同时提供单个存储副本。OracleDatabase11g:面向管理员的新增功能3-9OracleDatabase11g:面向管理员的新增功能3-10OracleDatabase11g:面向管理员的新增功能3-11SQL性能分析器:概览OracleDatabase11g引入了SQL性能分析器;使用该工具可以准确地评估更改对组成工作量的SQL语句的影响。SQL性能分析器可帮助预测潜在的更改对SQL查询工作量的性能影响。这种功能可向DBA提供有关SQL语句性能的详细信息,例如,执行前后的统计信息,提高或降低性能的语句。这样一来,您就可以执行诸如以下操作的操作:在测试环境中进行更改,以确定数据库升级是否会改进工作量性能。OracleDatabase11g:面向管理员的新增功能3-12SQL性能分析器:使用情形SQL性能分析器可用于预测和防止会影响SQL执行计划结构的任何数据库环境更改所带来的潜在性能问题。这些更改可以包括(但不限于)以下任何一种更改:•数据库升级•实施优化建议•更改方案•收集统计信息•更改数据库参数•更改操作系统和硬件DBA甚至可以使用SQL性能分析器为最复杂的环境预测先期更改导致的SQL性能更改。例如,随着应用程序在开发周期中的变化,数据库应用程序开发人员可以测试对方案、数据库对象和重写应用程序的更改,以减轻任何潜在的性能影响。使用SQL性能分析器还可以比较SQL性能统计信息。OracleDatabase11g:面向管理员的新增功能3-13使用模型:捕获SQL工作量使用SQL性能分析器的第一步是捕获呈现工作量的SQL语句。这是使用SQL优化集技术完成的。OracleDatabase11g:面向管理员的新增功能3-14使用模型:传输到测试系统第二步是将这些SQL语句传送到要测试的类似系统。在此步骤中,可将STS从生产系统中导出,然后将其导入到测试系统。OracleDatabase11g:面向管理员的新增功能3-15使用模型:在更改性能前建立第三步是捕获由执行计划和执行统计信息组成的测试系统性能的基线。OracleDatabase11g:面向管理员的新增功能3-16使用模型:在更改性能后建立第四步是更改测试系统,然后重新运行SQL语句来评估更改对SQL性能的影响。OracleDatabase11g:面向管理员的新增功能3-17使用模型:比较和分析性能EnterpriseManager提供了一些工具,可用于对性能数据进行完全比较,其中包括所用时间、CPU时间和缓冲区获取次数之类的执行统计信息。如果SQL性能在有些情况下出现回归,则DBA必须立即或按预定时间运行SQL优化指导来优化SQL语句。对于任何优化策略,建议一次仅实施一项更改,并在进一步更改之前重新进行测试。OracleDatabase11g:面向管理员的新增功能3-18SQL性能分析器:概要1.收集SQL:在这个阶段中,将收集用于表示生产系统中的SQL工作量的SQL语句集。可以使用SQL优化集或自动工作量资料档案库(AWR)来捕获要传送的信息。因为AWR本质上是捕获高负载的SQL,所以应考虑修改默认的AWR快照设置和捕获的顶级SQL,以确保AWR捕获最大数量的SQL语句。这可以确保捕获更加完整的SQL工作量。2.传送:在这个阶段中,应将得到的工作量结果传送到测试系统。从生产系统导出STS,然后将STS导入到测试系统。3.计算“之前版本”性能:在进行任何更改之前,执行SQL语句,收集评估将来的更改对工作量性能的可能影响所需的基线信息。在此阶段收集的信息给出了系统工作量当前状态的一个快照。性能数据包括:-执行计划(如由解释计划生成的计划)-执行统计信息(如由占用时间、缓冲获取次数、磁盘读取次数和已处理的行数组成的信息)4.进行更改:获得了之前版本数据后,可以实施计划的更改,然后开始查看对性能的影响。OracleDatabase11g:面向管理员的新增功能3-19SQL性能分析器:概要(续)5.计算“之后版本”性能:在数据库环境中进行了更改之后才执行此步骤。SQL工作量的每个语句都在虚拟执行(仅收集统计信息)模式下运行,收集与步骤3所捕获的信息相同的信息。6.比较和分析SQL性能:在获得了两个版本的SQL工作量性能数据后,可以通过比较之后版本与之前版本的数据来进行性能分析。比较的根据是执行统计信息,如所用时间、CPU时间和缓冲区获取次数等。7.优化回归的SQL:在此阶段中,已经准确地确认了哪些SQL语句在进行数据库更改时可能导致性能问题。在此阶段中可以使用任何一种数据库工具来优化系统。例如,可以对确认的语句使用SQL优化指导或访问指导,然后实施相应的建议。也可以使用在步骤3中捕获的计划植入SQL计划管理(SPM)以确保计划保持不变。在实施了任何优化操作后,应重复该过程来创建新的之后版本,然后分析性能差异以确保新的性能是可接受的。OracleDatabase11g:面向管理员的新增功能3-20捕获SQL工作量捕获SQL工作量是使用SQL优化集(STS)完成的。这个概念并不是OracleDatabase11g中新引进的,它与以前版本的数据库遵循完全相同的工作流。幻灯片中对此概念进行了简短的说明。可以使用EnterpriseManager向导或DBMS_SQLTUNEPL/SQL程序包。使用OracleDatabase11g时,可以通过DatabaseControl中的“Performance(性能)”选项卡访问“SQLTuningSets(SQL优化集)”页。捕获的工