编辑: 丶蓶一 | 2019-07-11 |
2007 年8月Oracle 数据库 11g:真正应用测试概述 第2页(共9页) Oracle 数据库 11g: 真正应用测试概述 引言.
3 真正应用测试.3 数据库重放
3 SQL Performance Analyzer
6 结论.8 Oracle 数据库 11g:真正应用测试概述 第3页(共9页) Oracle 数据库 11g: 真正应用测试概述 引言 Oracle 数据库占据着市场主导地位,受到全球众多企业以及应用程序开发 人员和数据库管理员的青睐.这些年来,企业已经开始依赖 Oracle 数据 库来提供无可比拟的性能和可靠性.Oracle 准备再在 Oracle 数据库 11g 版本中更上一层楼.Oracle 数据库 11g 是针对数据中心环境设计的,而 数据中心发展和变化快速,这样才能跟上企业需求的步伐,利用 Oracle 数据库 11g,企业可以快速采用新技术,而将风险降至最低. 真正应用测试 现在,企业需要在硬件和软件上进行相当大的投资才能展开基础架构更 改.例如,某个数据中心可能计划将数据库转移到一个诸如 Oracle Enterprise Linux 的低成本计算平台.过去,这需要企业投入一套重复的硬 件用于整个应用程序系列,包括 Web 服务器、应用服务器和数据库,以 测试其生产应用程序.因此,企业发现发展其数据中心基础架构并实施对 它的更改很昂贵.即使执行了昂贵的测试,最后在生产系统中进行更改时 还是会经常出现意想不到的问题.这是因为测试负载通常是模拟的,并不 能完全准确地代表真实的生产负载.因此,数据中心管理人员并不愿意采 用新技术来使其企业适应不断变化的竞争压力. Oracle 数据库 11g 的真正应用测试推出了两个新的解决方案,即数据库 重放和 SQL Performance Analyzer,从而直接解决了这些问题. 数据库重放 利用数据库重放,DBA 和系统管理员可以在测试环境中忠实、准确、真实地 重新运行实际的生产负载,包括在线用户和批量负载.利用数据库重放可以 捕获来自生产系统的全部数据库负载(包括所有并发性、相关性和时限), Oracle 数据库 11g:真正应用测试概述 第4页(共9页) 因此只需在测试系统上重新创建生产负载即可真实地测试系统更改,而通 过一组脚本则永远也不能复制这些负载.利用数据库重放,DBA 和系统管 理员可以测试 z 数据库升级、补丁、参数、模式更改等 z 配置更改,如从单一实例转换为 RAC、ASM 等z存储、网络、互连更改 z 操作系统、硬件迁移、补丁、升级、参数更改 降低测试基础架构成本 DBA 现在可以根据测试更改的需要来构建自己的测试基础架构,无需复制 整个应用程序基础架构,也就没有相应的复制开销.有了数据库重放,无 需重新创建中间层或 Web 服务器层,也就没有了这两个层的设置开销. 因此,DBA 和系统管理员可以充满信心地快速测试和升级数据中心基础架 构组件,因为他们知道更改已经在生产情形下得到了真实的测试和验证. 加快部署 数据库重放的另一个主要优势是它不需要 DBA 花几个月的时间来了解应 用程序功能和开发测试脚本.只需几下点击,DBA 即可轻松获得全部的生 产负载来测试和展开任何更改.这使得测试周期从好几个月缩减到几天或 几周,从而使企业显著降低了成本. 数据库重放由四个主要步骤组成: 1. 负载捕获 启用负载捕获之后,系统将跟踪转到 Oracle 数据库的所有外部客户 端请求,并以二进制文件(称为捕获文件)形式将其存储到文件系统 上.Oracle 建议在捕获负载之前备份整个数据库.用户指定捕获文件 的位置以及负载捕获的起始和结束时间.在该流程中,所有与外部数 据库调用相关的信息都会写入捕获文件. 2. 负载处理 捕获到负载之后,需要对捕获文件中的信息进行处理.该处理过程将 捕获的数据转换为重放文件,并创建重放负载所需的所有必要元数 据.通常会将捕获文件复制到另一个系统进行处理.每个捕获的负载 都必须执行一次该过程,然后才能重放.捕获的负载经过处理之后, 可以在重放系统上反复重放.由于负载处理耗费时间并占用资源, 因此通常建议在重放负载的测试系统上执行该步骤. 3. 负载重放 捕获的负载经过处理之后现在就可以重放了.然后一个名为重放客户 端的客户端程序处理重放文件并提交对数据库的调用,时限和并发性 与在捕获系统中完全相同.根据捕获的负载的不同,您可能需要一个 或多个重放客户端来恰当地重放负载.可以使用一个校准工具来帮助 确定一个负载所需的重放客户端的数量.应注意的是,由于包括 DML 和SQL 查询在内的整个负载都会得到重放,因此要做出可靠的分析 报告,重放系统中的数据与生产系统(在该系统中捕获负载)中的数 据完全相同是很重要的. 4. 分析和报告 提供了大量报告,对捕获和重放进行详细分析.重放期间遇到的所有 错误都会进行报告.由DML 或查询返回的行中的任何差异都会显 示.提供捕获和重放之间的基本性能比较.对于高级分析,可使用 AWR 报告对捕获和重放之间的性能统计信息进行详细的比较. 图1:数据库重放工作流 Oracle 数据库 11g:真正应用测试概述 第5页(共9页) Oracle 数据库 11g:真正应用测试概述 第6页(共9页) SQL Performance Analyzer . 影响 SQL 执行计划的更改会严重影响应用程序性能和可用性.因此,DBA 需要花费大量时间来识别和修正由于系统更改而导致回退的 SQL 语句. SQL Performance Analyzer (SPA) 可以预测和防止由环境更改导致的 SQL 执行性能问题. SQL Performance Analyzer 通过在更改前后按序运行 SQL 语句来提供环 境更改对SQL 执行计划和统计信息的影响的粒度视图.SQL Performance Analyzer 生成的报告列出了由于系统更改对负载带来的实际 收益以及回退的 SQL 语句集.针对回退的 SQL 语句,会提供相应的执 行计划详细信息以及调整建议. SQL Performance Analyzer 已与现有的 SQL 调整工具集 (STS)、SQL Tuning Advisor 和SQL 计划管理功能紧密集成.SQL Performance Analyzer 使得评估更改对超大 SQL 负载(几千个 SQL 语句)的影响这 一耗时的手动过程完全自动化并得到了简化.DBA 可以使用 SQL Tuning Advisor 来修正在测试环境中回退的 SQL 语句,并生成新的计划.然后, 这些计划会植入 SQL 计划管理基准线中,并重新导出到生产环境中.因此,使用 SQL Performance Analyzer,企业能够以非常低的成本和高度的 自信来验证对生产环境进行的系统更改实际上带来的最终正面改进. 可以使用 SQL Performance Analyzer 进行的常见系统更改有: z 数据库升级、补丁、初始化参数更改 z 对操作系统、硬件或数据库的配置更改 z 模式更改,如添加新索引、分区或物化视图 z 收集优化程序统计信息 SQL 调整操作,例如,创建 SQL 概要文件 使用 SQL Performance Analyzer 涉及以下