Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
更高效地( 工作量减少 80% )交付更高质量的应用程序
以下内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。该内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。
操作和基础架构主要考虑因素
有效地管理更改是一种战略需要!
更改管理的生命周期
建立测试环境{ }
进行更改{ }测试{ }
发现补丁和解决方法{ }
诊断与解决问题{ }
供应给生产环境{ }
诊断与管理问题{ }
信心十足地管理更改
更改管理的生命周期
建立测试环境{ }
进行更改{ }测试{ }
发现补丁和解决方法{ }
诊断与解决问题{ }
供应给生产环境{ }
诊断与管理问题{ }
Oracle Real Application Testing
Oracle Real Application Testing
价值
• 技术的快速采用
• 更高的测试质量
业务受益
• 降低成本
• 降低风险
特性
• 数据库重放
• SQL Performance Analyzer (SPA)
SQL Performance
Analyzer (SPA)
为什么选用 SQL Performance Analyzer (SPA)?
• 企业希望其系统有较高性能且满足服务级别协议
• SQL 性能降低是导致系统性能降低的头号原因
• 没有用于主动监测因更改而引起的所有 SQL 性能降低的解决方案
• DBA 使用耗时且低效的手工脚本来识别问题
SPA 在任何 SQL 性能变化影响到用户之前就将其识别出来
• 测试更改对 SQL 查询性能的影响
• 在生产环境中捕获 SQL 负载(包括统计信息和绑定变量)
• 在测试环境中重新执行 SQL 查询
• 分析性能更改 — 提升和降低
……
客户端客户端
…客户端
捕获 SQL
中间层
存储
Oracle 数据库
重新执行 SQL 查询
生产环境* 测试环境
使用 SQL Tuning Advisor 对性能降低进行调优
SQL Performance Analyzer
* 注意,SPA 还可以在生产系统上运行以进行某些更改
…
SQL Performance Analyzer 工作流
存储
生产环境 (>= 9i)
测试环境(10.2 或 11g)
捕获 SQL 传输 SQL在更改前执行 SQL
在更改后执行 SQL
比较性能
存储
中间层
客户端
第 1 步:捕获 SQL 负载
• SQL 调优集 (STS) 用于存储 SQL
负载
• 对于 Oracle9i,可使用SQL*Trace
• STS 包括:
• SQL 文本
• 绑定变量
• 执行计划
• 执行统计信息
• 增量捕获用于从一个时段的游标缓存填充 STS
生产数据库
游标缓存
SQL 调优集
增量捕获
第 2 步:将 SQL 负载移至测试系统
生产数据库
游标缓存
SQL 调优集
测试数据库
SQL 调优集
• 对于 Oracle Database 10g 或更高版本,将 STS 导出到测试系统
• 将临时表传输到测试系统(datapump、数据库链接等)
• 从临时表复制 SQL 调优集(“解压缩”)
导出/导入
第 3 步:在做出更改前执行 SQL
• 设定 SQL 负载性能基线
• 捕获 SQL 执行计划和统计信息
• 顺序执行 SQL(非并行)
• 执行每一 SQL
• 默认情况下跳过 DDL/DML,可选择性地执行,然后回滚
• 选择执行远程测试或执行仅解释计划分析
SQL 调优集
获得下个 SQL
SQL Performance Analyzer
执行计划和
统计信息
测试执行
保存结果
第 4 步:做出更改后执行 SQL
• 更改后重新执行 SQL
• 收集新的 SQL 执行计划和统计信息
SQL 调优集
SQL Performance Analyzer
获得下个 SQL
执行计划和
统计信息
测试执行
保存结果
完成
• 手动实施计划的更改
• 数据库升级、打补丁
• 优化程序统计信息刷新
• 模式更改
• 数据库参数更改
• 调优操作,如创建 SQL 配置文件
• SPA 还可以无需供应硬件即可模拟出在数据库云服务器上的性能优势
第 5 步:性能对比和分析
完成 完成
比较
SQL 性能
SQL Performance Analyzer
分析报告
• 使用不同的量度进行性能对比,例如:
• 花费的时间
• CPU 时间
• 优化程序开销
• 缓冲获取内容
• SPA 报告显示每个 SQL 的更改所造成的影响• 性能提升的 SQL
• 性能降低的 SQL
• 无变化的 SQL
• 使用 SQL Tuning Advisor 或 SQL
计划基准修复性能降低的 SQL
SPA 报告
+参数
更改
1. 通过 SPM 修复性能降低
添加索引
在生产环境中使用 SPA 进行测试:示例
修复性能降低SQL 配置文件
生产数据库
+SQL
配置文件
+新的统计信息
更改
+分区
+验证
调优
在此案例中,参数更改失败
等等...
+索引
不可用
• 该箭头之后的气泡表示生产环境中的增量更改
• 使用 SPA 测试每个更改
SPA 增强功能
• Oracle Database 11g 第 2 版中的 SPA 增强功能
• GUI 支持数据库云服务器模拟以便预估对 DW/DSS 负载的性能优势
• 支持不永久保留相关更改而完全执行 DML 语句的测试
• 自定义 EM 工作流以便支持升级用例、远程测试执行、优化程序统计信息刷新的验证 (11.2.0.2)
• 多次测试执行支持更高的 SPA 试验准确度
• 为测试结果的共享和脱机查看提供活动报告
• 两个 SQL 调优集的性能比较。这一增强将 SPA 报告的强大功能扩展到其他测试工具
• 更好的数据库重放分析
• 不使用数据库重放也能重放负载(如通过 ATS、脚本或其他负载测试工具)
• 支持在只读物理备用数据库上执行 SPA 测试 (11.2.0.2)
数据库重放
今天的测试生产环境 — 数千个真实的联机用户
生产环境
今天的测试测试环境 — 1-2 名测试人员试图模拟数千个用户
生产环境 测试环境
数据库重放捕获的数千个联机用户的负载
生产环境
捕获
负载
数据库重放重放的数千个联机用户的负载
生产环境 测试环境
捕获 重放
负载
数据库重放测试生产级的系统更改
生产环境 测试环境
捕获 重放
负载
利用数据库重放进行真正应用测试
• 在测试环境中重放生产负载
• 在对生产环境进行更改前识别、分析和修复潜在的不稳定因素
• 在生产环境中捕获负载• 使用实际负载、时间性和并发性特征捕获完整的生产负载
• 将捕获的负载移动到测试系统
• 在测试环境中重放负载• 在测试系统中完成所需更改
• 使用完整的生产特征重放负载
• 执行提交排序
• 分析和报告• 错误
• 数据差异
• 性能差异 分析和报告
支持的更改
不支持的更改
支持的更改
•数据库升级、打补丁
•模式、参数
•RAC 节点、互连
•操作系统平台、操作系统升级
•CPU、内存
•存储
•等等
客户端客户端
…客户端
中间层
存储
记录外部客户端请求
…
…
数据库重放工作流
生产环境 (>= 9.2.0.8) 测试环境 (11g)
捕获 重放分析和
报告流程
存储存储
中间层
重放驱动程序
客户端
第 1 步:负载捕获
文件 1
文件 2
文件 n
…
生产系统
文件系统
客户端客户端
…客户端
中间层
存储
• 以二进制文件形式保存捕获的所有外部客户端请求
• 不包括系统后台和内部活动
• 最小开销• 尽可能避免函数调用
• 缓冲的 I/O
• 不依赖客户端协议
• 可以在 9.2.0.8 上捕获,然后在11g 上重放
• 捕获感兴趣时间段内的负载,如高峰负载时段、月末处理时段等
第 2 步:处理负载文件
文件 1
文件 2
文件 n
…
元数据
重放文件
测试系统• 设置测试系统
• 应用程序数据应自捕获开始时间起与生产系统相同
• 使用 RMAN、快照备用数据库、imp/exp、数据泵等创建测试系统
• 进行更改:升级数据库及/或操作系统、更改存储、迁移平台等
• 处理过程将捕获的数据转换为可重放格式
• 负载一经处理便可多次重放
• 对于 RAC,将所有捕获文件复制到一个位置以供处理
文件 1
文件 2
文件 n
…
捕获文件
第 3 步:重放负载
• 重放保留捕获系统的时间性、并发性和相关性的负载
• 重放客户端是一个运行处理过的负载并将请求发送给重放系统的特殊程序
• 客户端将捕获的调用转换为 OCI 调用序列并提交给数据库
• 对于高并发性负载,可能需要启动多个客户端
测试系统
重放客户端
文件 1
文件 2
文件 n
…
重放文件
元数据
OCIStmtPrepare()
OCIBindByName()
OCIAttrSet()
OCIStmtExecute()
select * from tab …
Binds: Bind 1: ‘b’
Cursor #: 1
# Rows Fetched: 10
分析和报告
• 错误差异:对每个调用,都会报告错误差异• 新增:捕获过程中未出现而重放过程中出现的错误
• 未找到:捕获过程中出现而在重放过程中未出现的错误
• 变异:重放过程中出现但与捕获过程中不同的错误
• 数据差异• 重放:对比每个调用返回的行数并报告差异
• 用户:应用程序级验证脚本
• 性能报告• 捕获和重放报告:提供高级别性能信息
• ADDM 报告:提供深入的性能分析
• AWR、ASH、重放阶段报告:帮助进行比较分析或偏差分析
0
20
40
60
80
花费
的时
间(
天)
安装和设置 了解使用情况 识别关键事务 产生负载 运行测试
数据库重放
传统测试工具2
205
4
80
24 20
数据库重放:½ 个月
传统测试工具:7 ½ 个月
总测试时间
500
传统测试与数据库重放对比测试 E-Business Suite
数据库重放增强功能:Oracle Database 11g 第 2 版
• Oracle Database 11g 第 2 版中的数据库增强功能• 支持共享服务器架构
• 支持捕获和重放流“应用”负载
• 支持重放过滤器(类似于捕获过滤器)
• 对重放比较时段报告进行了增强,实现了更好的重放分析
• 提供实验的整体视图 — 涵盖了测试的功能和性能方面
• 突出了配置和各种性能属性中的重要差异
• 捕获或另一个可能重放的重放对比
• EM 支持分析重放差异和下钻
• SPA 与数据库重放相集成 — SPA 报告有助于执行更好的重放分析 (11.2.0.2)
“光是数据库重放和 SQL 计划管理特性就值得您升级到 Oracle Database 11g” 11g "
Arup Nanda
高级总监Starwood Hotels & Resorts
Worldwide
“Oracle Real Application Testing 将测试更改所需的时间缩减至原来的 20%,测试成本降低到原来的 30%,通过减少意外事故规避了风险,并且改善了 IT 运营的服务质量。”
David Mitchell
OVUM 高级副总裁
信息来源:Oracle Real ApplicationTesting — 通过卓越的测试实现业务灵活性,2008 年 1 月
更改管理的生命周期
建立测试环境{ }
进行更改{ }测试{ }
发现补丁和解决方法{ }
诊断与解决问题{ }
供应给生产环境{ }
诊断与管理问题{ }
供应自动化
通过克隆实现供应自动化
• 优点
• 简单、准确、可靠的映像呈现
• 减少出错率,提升可靠性
• 通过自动化降低 TCO
• 提高服务质量
• 特性
• 基于黄金映像的软件位克隆
• 映像可预修补到任何级别
• 映像来自于主机本身或软件库
• 选择性地执行克隆后配置,如数据库创建
• 可并行克隆数个主目录
• 数据库克隆使用快速可靠的 RMAN 技术
根据需要提供简单、准确、可靠的容量
• 基于黄金映像的供应
• 自动化简化了 RAC 供应
• 一键式 RAC 伸缩
• 自动迁移到 Oracle 网格
• 供应完整的 RAC 和集群件系统
• ASM 支持
部署自动化
创建参考 RAC 系统
1
提取黄金映像
2
RAC 向外扩展
4
创建生产 RAC 系统
3
自动补丁管理
•新增强功能• 修补单实例和 RAC 数据库、AS 中间层(定制 BPEL 和 SOA 应用程序)的现成最佳实践
• 支持临时补丁、补丁集和 CPU
• 元数据驱动的修补先决条件• 对 RAC/ASM/集群件修补的滚动支持• 来自 Metalink 的最佳实践后续实时更新• 支持基于 sudo 和 PAM 的验证
优点
• Oracle 系统维护简单、准确、可靠
• 减少错误,提高可靠性
• 补丁过程执行速度更快
• 服务质量更高
自动测试供应减少数据库测试的时间和工作量
• 自动化生产以测试数据库重放的工
作流
• 捕获生产负载、性能数据
• 将负载、性能数据复制到临时存储
• 供应软件,创建测试数据库
• 部署重放客户端并编排重放
<在此处插入图片>
总结
使用 Oracle Real Application Testing 信心十足地管理更改并...
• 降低更改风险
• 减少测试时间,且不影响质量
• 减少预期外事故
• 提高应用程序可靠性
• 改善系统性能
• 提升最终用户体验
• 改善服务质量
• 加快新技术的采用
用于 11g 之前的数据库的真正应用测试
• 关于如何在早期版本中使用数据库重放和 SQL
Performance Analyzer 的更多信息,请参见 OTN
• 用于早期版本的真正应用测试
• Metalink 说明: 560977.1
• http://www.oracle.com/technology/products/manageability/database/pdf/
metalink_real_application_testing_for_earlier_releases.pdf
• 用 SQL Performance Analyzer 测试 Oracle 9i 升级到 Oracle
Database 10g 第 2 版后对性能的影响
• http://www.oracle.com/technology/products/manageability/database/pdf/o
wp_spa_9i.pdf
“Oracle Database 11g 将减少负责测试生产负载更改的DBA 的工作量。Data Guard 和 Real Application Testing
的配合如诗一般美妙,毋庸置疑,大多数车间将很快对该组合产生依赖”
Sean McCown
Infoworld 特约编辑
避免了高达 25% 的在线收入损失
配置管理工作量减少了90%
自动化取代了手动工具;节省了 50% 的时间
节省了 80% 的数据库管理时间和工作量
90% 的 IT 问题在影响用户前就得以解决
使资产利用率提高70%
数据库测试时间减少 90% 供应工作量减少了 75%
通过 Oracle Enterprise Manager 节省了 190 万美元
使用 Oracle Enterprise Manager 每年可节省 17 万美元
部署 SOA 基础架构的速度加快了 92%
利用 Oracle Enterprise Manager 提供 24/7 的服务
使应用程序测试时间从数周减至几小时
关键补丁安装时间减少了 80%
使应用程序测试时间缩短数周
Oracle 可帮助您最大化客户价值
© 2010 Oracle
Oracle Enterprise Manager 11g
资源中心访问视频、网播、白皮书等
Oracle.com/enterprisemanager11g