文章图片标题

oracle 11g真正应用测试

分类:oracle 作者:阳光倾城 评论:0 点击: 595 次 日期:2015-07-24

所有企业都必须应对 IT 基础架构更改。即使这些更改旨在为基础架构带来正面影响,但在许多情况下,它们会导致意外的和不良的 行为。因此,企业需要花费大量时间和精力在测试环境中评估系统更改,以便在将其应用于生产系统之前评估全部影响。然而,尽管

进行了广泛且通常很昂贵的测试,许多问题只能在生产部署期间检测到,从而导致企业无法满足 SLA 以及意外停机和收益损失。

Oracle 真正应用测试提供了非常经济且易于使用的解决方案,使您能够在测试环境中充分评估更改的结果,并在必要时采取任何纠正措施,然后将更改安全地应用到生产系统,从而将对生产系统的 不良影响降至最低。这使企业能够继续从更改中受益,而不会造成任何相关的负面影响,如性能降低、停机故障等。真正应用测试提

供了两个关键的独特特性(Database Replay SQL Performance Analyzer),它们共同提供了一个全面、灵活的解决方案,用于评估对生产系统的更改的影响。

真正应用测试

系统更改(如硬件/软件升级、补丁应用程序等)对于企业保持竞争优势或合规性/安全性来说是必要的。因此,企业会进行广泛的测试和验证,以便在应用前评估更改的影响。尽管此类测试会使用各种 模拟工具,但通常许多问题直到生产部署时才会检测到,并会对系统性能和可用性造成负面影响。测试成功率较低的主要原因是,现有工具无法使用实际生产负载进行测试。同样,查询执行环境中的更改通常会影响系统性能和可用性,因此,进行细粒度 SQL 响应时间评估和修正更改导致的回退的能力对于企业的平稳运营很重要。

Oracle 真正应用测试包括两个解决方案(Database Replay 和 SQL Performance Analyzer),可以测试系统更改在实际应用程序上的效果。Database Replay 通过在测试系统上重放整个生产负载,以帮助确定更改的整体影响,从而使您能够在测试环境中

有效地测试系统更改。SQL Performance Analyzer 通过识别 SQL 执行计划中的变化以及针对更改得出的性能统计信息,使您能够评估系统更改对 SQL 性能的影响。

Database Replay

Database Replay 通过在测试系统上重新创建实际生产环境,来进 行系统更改的实际测试。这是通过以可忽略的性能开销捕获生产系统上的负载、然后按照原始负载的实际计时、并发和事务特性在测试系统上重放来完成的。这可以全面评估更改的影响,包括不良后果、新的争用点或性能回退。还可以提供详尽的分析和报告,以帮助识别任何潜在问题(如遇到的新错误和性能分歧)。 准确捕获生产负载的能力可以大大节省成本和时间,因为它完全消除了开发模拟负载或脚本的需求。其结果是,以前使用负载模拟工具/脚本实际测试复杂应用程序需要数月才能完成,而现在利用 Database Replay 最多只需几天即可完成,并且花费的精力最少。因此,使用 Database Replay,企业可以大大降低成本,并且对系统更改的整体成功更具信心,同时显著减少生产部署。

Database Replay 在数据库服务器级别执行外部客户端的负载捕获。因此,Database Replay 可用于评估任何低于数据库层级别的系统更改的影响,例如:

1数据库升级、补丁、参数、模式更改等 z  配置更改,如从单一实例转换到 RAC、ASM 等

2存储、网络、互连更改

3操作系统、硬件移植、补丁、升级、参数更改

Database Replay 不支持数据库服务器级别以上的系统更改,例如对中间层、客户端和应用程序层的更改。 图 1 展示了 Database Replay 的概观。如图所示,驱动重放客户端的重放驱动程序是客户端不可知的,因此无需设置广泛的中间层/客户端环境以重放负载。这使得企业可以大大节省时间和精力。

Database Replay 的执行过程可分为 4 个主要步骤:

i. 负载捕获

启用负载捕获之后,系统将跟踪转到 Oracle 数据库的所有外部客户端请求,并以二进制文件的形式(称为捕获文件)将其存储到文件系统上。这些文件包含重放所需调用的所有相关信息,例如

SQL 文本、绑定值、时钟时间、SCN 等。

clip_image002

1Database Replay 概观

负载捕获的开始和结束时间由用户指定,在此期间内,与外部数据库调用相关的所有信息都将写入捕获文件。负载捕获过程已经过高度优化,以确保即使在繁忙的系统上也可实现可忽略的开销。在

Oracle 数据库 10.2.0.4 版和更高版本上捕获的负载也可以在

Oracle 数据库 11g 版上重放。

clip_image004

ii.负载处理

捕获负载之后,最好在测试系统上处理捕获文件中的信息。该处理过程将转换捕获的数据,并创建重放负载所需的所有必要元数据。

 

iii.负载重放

处理完捕获的负载之后,就可以在测试系统上重放了。测试系统将使用 Oracle 数据库 11g Snapshot Standby 或其他等效机制应用系统更改,并将数据库恢复到捕获开始之前的某个时间点。可以适当地配置重放,将连接字符串、数据库链接和目录对象重新映射到测试系统的相应内容。启动重放之后,一个称为“重放客户端”的特殊客户端程序将根据经过处理的文件重放负载。 它使用与捕获系统完全相同的计时和并发提交对数据库的调用,并在系统上设置与生产环境完全相同的负载。 这可识别出更改所导致的任何不稳定性,并在将更改应用到生产环境之前在测试环境中进行后续修复。

除了客户端不可知以外,重放驱动程序还使用可伸缩的多线程体系结构,包括使用多个主机(如果需要)驱动大型负载捕获。可以使用多个选项来控制重放的行为,例如,延长或缩短思考和登录时间,以及保持提交同步。这些选项可用于测试系统的负载/压力。重放驱动程序还可以自动重新映射物理定位器,并在重放期间保留序

clip_image009

iv.分析和报告

clip_image011

 

可以报告所遇到的任何错误或返回的数据分歧。可以提供捕获和重放之间的基本性能比较,对于高级分析,还可以使用 AWR、ASH

和 Compare Period 报表。

SQL Performance Analyzer

影响 SQL 执行计划的更改会严重影响系统性能和可用性。因此, DBA 需要花费大量时间来识别和修正由于系统更改而导致回退的

SQL 语句。SQL Performance Analyzer 特性提供了与 Database

Replay 类似的功能,但主要关注预测和防止由影响 SQL 执行性能的环境更改所带来的性能问题。SQL Performance Analyzer 通过在更改前和更改后环境中连续运行 SQL 语句,来根据 SQL 执行计划和统计信息提供细粒度的环境更改评估。例如,提供的报表可以包含由于系统更改和回退的 SQL 语句而导致的负载最终增加量。对于回退的 SQL 语句,将提供适当的执行计划细节和调整建

议。SQL Performance Analyze 功能与现有的 SQL 调整集 (STS) 和 SQL Tuning Advisor 功能很好地集成在一起。因此,SQL Performance Analyzer 可以完全自动化并简化评估对极大的 SQL 负载(数千条 SQL 语句)的更改影响的耗时的手动过程。因此,使用 SQL Performance Analyzer,企业能够以非常低的成本和高度自信心来验证对生产环境进行的系统更改实际上带来的最终正面

改进。

可以使用 SQL Performance Analyzer 的常见系统更改示例包括:

z 数据库升级、补丁、初始化参数更改

z 对操作系统、硬件或数据库的配置更改

z 模式更改,如添加新索引、分区或物化视图 z  收集优化器统计信息

z SQL 调整行为,例如创建 SQL 配置文件

SQL Performance Analyzer 的使用模型包含 5 个主要步骤:

z 捕获 SQL 负载。Oracle 数据库可让您以可忽略的性能开销将多个源的 SQL 负载捕获到 SQL 调整集 (STS),如游标缓存或自动负载信息库 (AWR)。通常,您将捕获生产数据库上的 SQL 负载,然后将 STS 传送到将使用 SQL

Performance Analyzer 进行更改影响分析的测试数据库。

通过执行 SQL 调整集来度量更改前的负载性能。

进行更改,例如,升级数据库或刷新优化器统计信息。

再次执行 SQL 调整集来度量更改后的负载性能。

比较 SQL 调整集的两次执行性能,以识别出哪些 SQL 语句回退、改进或没有变化。

还可以在一段时间内将 SQL 负载增量捕获到 STS。此外,还可以使用 STS 丰富的筛选和评估条件来筛选掉不合要求的 SQL。已经使用 Oracle 数据库 10.2.0.1 版和更高版本捕获到 STS 中的 SQL 负载可以用于 Oracle 数据库 11g 中的 SQL

Performance Analyzer。SQL 调整集可存储在独立环境中重新执

行语句所必需的所有负载相关信息(例如,SQL 文本、分析模式、执行计划、统计信息等)。

SQL Performance Analyzer 功能与 STS 的无缝集成可以消除需要进行应用程序环境设置以评估系统更改影响的耗时过程。

clip_image016

SQL Performance Analyzer 报表概述了对整个负载的更改影响,以及对单个 SQL 语句的最终影响。在评估最终影响时,将使用 SQL 的执行频率衡量负载。此外,报表中还会列出改进、回退以及性能没有变化的 SQL。如果在系统更改后出现任何回退的 SQL

语句,还会通过 Oracle 数据库 11g 的 SQL Tuning Advisor 和 SQL Plan Baselines 特性提供如何修正回退的建议。此外,测试系统上生成的执行计划(已实现系统更改)可用于生成 SQL Plan Baseline 信息库,以确保优化器仅获取先前经过验证的执行计划。通过 SQL Plan Baseline 特性生成之后,优化器生成的任何新计划可以由数据库通过测试-执行自动验证,也可以由 DBA 手动验证。

图 6 显示了系统更改后的回退 SQL 示例,以及之前和之后的执行计划、统计信息和建议的相关信息。

clip_image018 6SQL Performance Analyzer 报表:SQL 下钻功能衰退

SQL Performance Analyzer 可以帮助识别整个系统中的 SQL 语句性能变化,从而分析出例行管理活动,如优化器统计信息刷新和数据库升级。

结论

真正应用集群提供了一个引人注目且易于使用的解决方案,用以评估对生产系统进行的系统更改。真正应用集群的 Database

Replay 和 SQL Performance Analyzer 特性提供了一个全面且灵活的解决方案,用以降低生产部署风险和企业成本,该解决方案是市场中的任何其他产品所无可比拟的。真正应用集群通过帮助 DBA 充满信心地评估更改,并在更改对企业用户造成负面影响之前采取纠正措施,从而大大增加了企业价值。




声明: 除非注明,本文属( 阳光倾城 )原创,转载请保留链接: http://www.tomrrow.com/archives-2927.html