更改管理单元概览2-2DBA执行更改时面临的挑战•通过更改硬件或软件配置维护服务级别协议•提供用于测试的生产级别的工作量环境•有效预测和分析对SQL性能的影响2-3计划永远追不上变化•变化是导致不稳定的最常见原因。•企业生产系统很复杂。•实际工作量难以模拟。•在生产之前进行与实际情况相符的测试是不可能的。•抵制变化。•无法采纳有竞争力的新技术。在变化中保持秩序。2-4更改管理的生命周期进行更改设置测试环境(快照备用)诊断问题和解决问题(指导)测试(数据库重放或SQL性能分析器)补丁程序和解决方法实际测试诊断问题生产预配2-5使用快照备用数据库设置测试环境物理备用数据库重做流执行测试快照备用数据库将数据库作为快照备用打开。回退测试更改。重做流2-6快照备用的优点快照备用数据库是通过实际备用数据库激活的•将连续接受重做流–供灾难恢复使用•用户可以继续查询或更新–快照备用以读/写形式打开–有益于报告应用程序•减少存储需求2-7什么是DataGurad(DG)?•OracleDataGuard为Oracle数据提供高可用性、数据保护、和灾难恢复的特性。•是OracleEE的一个特性。•DataGuard提供一套机制来建立、维护、监控一个主库和一个或多个备用数据库,并且保证备用数据库与生产数据库在事物级别上是一致的。•备用数据库与生产数据库可用互相切换。•备用数据库可用用来做备份、恢复、报表等工作.•要求主服务器和备用服务器上的Oracle数据库和操作系统的版本相同(11gLinux与Windows可跨平台)。2-8DataGuard中的主库和备库•PrimaryDatabase–生产数据库–有许多应用连接–单实例或OracleRealApplicationClusters(RAC)数据库•StandbyDatabase–Standby数据库是primary数据库的复制(事务上一致)。–同一个DataGuard中你可以最多创建9个standbydatabase。–单实例或OracleRealApplicationClusters(RAC)数据库–分为物理备库与逻辑备库2-9一个标准的DG配置示意图2-1011GDataGuard新特性与Oracle10g相比,11gDataGurad有突出的优点•应用日志更加快速•配置简单(通过RMAN的duplicate命令可以完成):•活动数据库11g中物理备库可以在只读打开的状态下接收并恢复日志。•快照数据库进行应用测试2-11SQL性能分析器2-12SQL性能分析器:概览•11g的新增功能•目标用户:DBA、QA、应用程序开发人员•帮助预测系统更改对SQL工作量响应时间的影响•建立不同版本的SQL工作量性能(即SQL执行计划和执行统计信息)•以串行方式执行SQL(不考虑并发性)•分析性能差异•提供对单个SQL的细粒度性能分析•与SQL优化指导集成在一起以优化回归2-13SQL性能分析器:使用情形在以下情形中使用SQL性能分析器很有益:•数据库升级•实施优化建议•更改方案•收集统计信息•更改数据库参数•更改操作系统和硬件2-14使用模型:捕获SQL工作量•SQL优化集(STS)用于存储SQL工作量。包括:–SQL文本–绑定变量–执行计划–执行统计信息•增量捕获用于填充某个时间段内来自游标高速缓存的STS。•STS的过滤和排名功能可过滤掉不需要的SQL。数据库实例生产数据库游标高速缓存增量捕获2-15使用模型:传输到测试系统•将SQL优化集复制到登台表(“打包”)。•将登台表传送到测试系统(数据泵、DB链接等)。•从登台表中复制SQL优化集(“解包”)。生产数据库测试数据库数据库实例游标高速缓存数据库实例2-16使用模型:在更改性能前建立•在更改之前,SQL性能版本是SQL工作量性能基线。•SQL性能=执行计划+执行统计信息•测试/执行STS中的SQL:–生成执行计划和统计信息。–以串行方式执行SQL(无并行操作)。–每个SQL只执行一次。–跳过DDL/DML结果。•解释STS中的计划SQL以便仅生成SQL计划。测试数据库数据库实例更改之前测试/执行2-17使用模型:在更改性能后建立•手动实施计划的更改:–数据库升级–实施优化建议–更改方案–收集统计信息–更改数据库参数–更改操作系统和硬件•在更改后重新执行SQL:–测试/执行STS中的SQL以生成SQL执行计划和执行统计信息。–解释STS中的计划SQL以便生成SQL计划。测试数据库数据库实例实施了更改之后更改之后2-18使用模型:比较和分析性能•依据用户指定的度量比较SQL性能:–elapsed_time,buffer_gets,disk_reads,...•计算更改对单个SQL和SQL工作量的影响:–对工作量的整体影响–对工作量的纯SQL影响•使用SQL执行频率定义重要性权重。•检测改进、回归和未发生更改的性能。•检测执行计划中的更改。•建议运行SQL优化指导来优化回归SQL。•分析结果可用于植入SQL计划管理基线。测试数据库数据库实例比较分析回归改进SQL优化指导2-19SQL性能分析器:概要1.捕获SQL生产工作量。2.将SQL工作量传送至测试系统。3.建立“更改前”性能数据。4.进行更改。5.建立“更改后”性能数据。6.比较步骤3和步骤5的结果。7.优化回归的SQL。2-21捕获SQL工作量1.在原始系统上创建SQL优化集(STS)。2.创建登台表,并在登台表中上载STS。3.将登台表导出到测试系统。4.将登台表解包到测试系统上的STS。2-22创建SQL性能分析器任务2-23优化程序升级模拟2-25SQL性能分析器:任务2-26SQL性能分析器任务页2-27比较报表2-29比较报表2-30优化回归语句2-31优化回归语句2-33防止回归2-34参数更改分析2-35指导式工作流分析2-36数据库重放2-37为什么使用数据库重放•系统更改(如硬件和软件升级)是不可避免的。•客户需要在实施更改前确定更改的全面影响。•大量的测试和验证可能会花费很多的时间和资金。•测试除了成本昂贵之外,成功率还很低:–许多问题未被检测到。–更改可能会对系统的可用性和性能产生负面影响。•成功率低的原因:–无法使用实际的生产工作量进行正确的测试,有许多问题未被检测到。•数据库重放功能使您可以执行与实际情况相符合的测试。2-38数据库重放•在测试环境中重新创建实际的生产数据库工作量。•在生产中实施更改之前,确定和分析潜在的不稳定性。•捕获生产中的工作量:–捕获带有实际负载和并发度的完整生产工作量–将捕获的工作量移到测试系统•在测试中重放工作量:–在测试系统中进行所需的更改–重放带有生产负载和并发度的工作量–采用提交顺序•分析和报告:–错误–数据差异–性能差异2-39系统体系结构:捕获生产数据库数据库备份捕获目录影子捕获文件影子捕获文件影子捕获文件影子捕获文件后台后台数据库堆栈记录基础结构影子影子影子影子2-40系统体系结构:处理工作量数据库堆栈影子捕获文件影子捕获文件影子捕获文件影子捕获文件处理捕获文件处理捕获生产数据库数据库备份捕获目录后台后台2-41系统体系结构:重放数据库堆栈影子捕获文件影子捕获文件影子捕获文件影子捕获文件处理捕获文件重放客户机影子…影子影子…影子有更改的测试系统重放系统重放客户机测试数据库数据库备份捕获目录后台后台2-42捕获注意事项计划:•为捕获的工作量(二进制文件)留出足够的磁盘空间•数据库重新启动:–确保重放与实际情况相符的唯一方式—启动限制—捕获将取消限制–可能不是必需的(取决于工作量)•还原数据库以进行重放的一种方式:–物理还原(提供顺序/时间)–逻辑还原应用程序数据–闪回/快照备用•可以指定过滤器来捕获部分工作量•SYSDBA或SYSOPER权限和相应的OS权限开销:•TPCC的性能开销为4.5%•内存开销:每个会话64KB•磁盘空间2-43重放注意事项•预处理捕获的工作量:–一次性的操作–在与重放时使用版本相同的DB版本上–如果版本匹配,可在任何位置(生产系统、测试系统或其它系统)执行•还原数据库,然后执行更改:–升级–方案更改–OS更改–硬件更改–添加实例2-44重放注意事项•管理外部交互–重新映射用于工作量的连接字符串:—一对一:用于简单的实例对实例重新映射—多对一:使用负载平衡器(如单节点对RAC)–修改指向生产系统的DB链接和目录对象•设置一个或多个重放客户机–都可以驱动多个工作量会话的多线程客户机2-45重放分析•数据差异–每个调用(查询、DML)比较的行数•错误差异:–新错误–变异的错误–已消失的错误•性能:–捕获和重放报表–ADDM报表–用于偏差分析的ASH报表–AWR报表2-46EnterpriseManager中的数据库重放工作流1.在数据库中捕获工作量。(任务1)2.(可选)导出AWR数据。(任务1)3.在测试系统中还原重放数据库。4.根据需要更改测试系统。5.将工作量复制到测试系统。6.预处理捕获的工作量。(任务2)7.配置测试系统以进行重放。8.在还原的数据库上重放工作量。(任务3)2-47使用EnterpriseManager捕获工作量2-48使用捕获向导2-49使用捕获向导2-50使用捕获向导2-51使用捕获向导2-52使用捕获向导2-53使用捕获向导2-54查看工作量捕获历史记录2-55处理捕获的工作量2-56使用预处理捕获的工作量向导2-57使用重放工作量向导2-58使用重放工作量向导2-59使用重放工作量向导2-60使用重放工作量向导2-61使用重放工作量向导2-62使用重放工作量向导$wrcREPLAYDIR=/home/oracle/solutions/dbreplayUSERID=systemPASSWORD=oracleWorkloadReplayClient:Release11.1.0.6.0-ProductiononTue…Copyright(c)1982,2007,Oracle.Allrightsreserved.Waitforthereplaytostart(21:47:01)$wrcREPLAYDIR=/home/oracle/solutions/dbreplayUSERID=systemPASSWORD=oracleWorkloadReplayClient:Release11.1.0.6.0-ProductiononTue…Copyright(c)1982,2007,Oracle.Allrightsreserved.Waitforthereplaytostart(21:47:01)2-64程序包和过程•DBMS_WORKLOAD_CAPTURE–START_CAPTURE–FINISH_CAPTURE–ADD_FILTER–DELETE_FILTER–DELETE_CAPTURE_INFO–GET_CAPTURE_INFO()–EXPORT_AWR–IMPORT_AWR()–REPORT()•DBMS_WORKLOAD_REPLAY–PROCESS_CAPTURE–INITIALIZE_REPLAY–PREPARE_REPLAY–START_REPLAY–CANCEL_REPLAY–DELETE_REPLAY_INFO–REMAP_CONNECTION–EXPORT_AWR–IMPORT_AWR–GET_REPLAY_INFO–REPORT2-65数据字典视图:数据库重放•DBA_WORKLOAD_CAPTURES:列出数据库中执行的所有工作量捕获•DBA_WORKLOAD_FILTERS:列出数据库中定义的所有工作量过滤器•DBA_WORKLOAD_REPLAYS:列出数据库中已执行的所有工作量重放•DBA_WORKLOAD_REPLAY_DIVERGENCE:用于监视工作量差异•DBA_WORKLOAD_CONNECTION_MAP:用于复查工作量重放使用的所有连接字符串•V$WORKLOAD_REPLAY_THREAD:监视外部重放客户机的状态2-66数据