1、大型业务系统数据库 升级到11gR2实践分享大纲升级到11gR2的必要性升级到11gR2的技术路径大型业务系统升级到11gR2的综合因素 升级后的系统稳定性保障方案ORACLE数据库版本生命周期策略,推动升级步伐t2008200320042005200620072002200920102011201220132014持续支持持续支持标准支持标准支持R22007年7月扩展支持扩展支持2010年7月2009年1月2012年1月R22013年年7月月201520162012年8月2015年8月2008年7月2010年7月 2011年7月R2201720182018年1月2015年1月2016年1月O
2、racle不再开不再开发新补发新补丁丁,不,不再承再承诺诺24x7的的第一级严重故第一级严重故 障处理障处理上海新炬已升级完多个客户多个核心系统并稳定 运行目前上海新炬截止目前,总共运维ORACLE数据库近 2000套,目前新增系统均首选11G,已有核心系统大 部份已经完成或计划进行升级12目前上海新炬运维的核心生产系统11G版本稳定性及 可维护性方面均优于10G.在10G版本影响较大的一些 BUG或缺陷在新版中基本得到修复3运维的核心生产系统多次遇到全球首发的BUG,由于 ORACLE停止SUPPORT,后通过ORACLE协调美国研发部门 特事特办解决,费尽周折4当前许多核心系统数据库已安装
3、了多达几十甚至几 百的Patch,这些用以规避bug的临时补丁已严重威胁 系统的稳定性某用户核心业务系统在10G版本因为BUG打的补丁已达到118个个,11G环境运行近2年修复BUG的补丁只有10个个充分利用ORACLE DB 11g新特性提升系统运行性能与稳定性计划管理自动诊断知识库事件打包基本特性补丁访问建议器资源管理器ADDM更多的表分区类型更多的表分区类型在线应用升级在线应用升级完整的云管理完整的云管理ORACLE SECUREFILESOLTP 表压缩内存并行执行更多的分区选项支持结果集缓存只读表增强压缩技术自动SQL优化自动内存优化数据库重演数据库重演SQL重演重演ACTIVE D
4、ATAGUARD数据库服务器池FLASHBACK DATA ARCHIVE(全面回忆数据 变化)数据库防火墙和Database vaultAudit vault备份恢复增强相对于10G,11G版本有非常多的新特性及在性能方面有很大的提升,可以更好的满足用户日益增长的业务需求分享大纲升级到11gR2的必要性升级到11gR2的技术路径大型业务系统升级到11gR2的综合因素 升级后的系统稳定性保障方案用户需求:多个业务系统/多版本/多平台的升级O r a c l e 1 0 g 7 4%O r a c l e 9 i 5%O r a c l e 1 1 g 1 9%O r a c l e 8 i 2
5、%O r a c l e 数 据 版 本 分 布O r a c l e1 0 gO r a c l e1 1 gO r a c l e 9 i 用户大多有数十甚至上百套ORACLE数 据库产品 可能涉及8i/9i/10g/11gr1等多个需要 升级的版本 如何规划升级路径及选择合适的升级方 式非常关键 各系统如何排定升级顺序,如何组织硬 件、开发、测试资源我们需要考虑的问题远不止这些您将升级多少个数据库?您将更换操作系统吗?您将迁移到新硬件吗?您可以承受多长时间的停机?您的回退要求是什么?您如何测试应用程序?您将更改字符集吗?您将启用新特性吗?导入导出直接升级可传输表空间CTASSTREAM/
6、GOLDENGATE.场景示例1:变更为新的操作系统和硬件 从HP平台迁移到IBM平台 从IBM平台迁移到LINUX平台 从WINDOWS平台迁移到LINUX平台场景案例1:变更为新的操作系统和硬件场景示例2:保留操作系统,升级和更改硬件 从HP平台迁移到HP平台 从IBM平台迁移到IBM平台 从LINUX平台迁移到LINUX平台场景案例2:存储方式变更为ASM升级条件说升级条件说明明1、升级到Oracle 11.2 并将数据库迁移到ASM2、硬件迁移到新集群3、数据库大小:5TB4、可容许的最长停机时间:4小时源目标目标1s.进行完整联机备份1d.安装GI 11.2.0.32s.将备份复制到
7、目标服务器2d.安装Oracle Database 11.2.0.33d.安装Oracle10.2+10.2.0.54d.配置并启动ASM实例5s.为备用数据库准备init.ora/tnsnames.ora5d.为备用数据库准备init.ora/tnsnames.ora6d.使用RMAN将数据库恢复到ASM7s.启动日志传输7d.与源同步8s.停止应用程序8d.激活备用数据库,升级数据库场景示例3:保留硬件,仅升级数据库 本地直接升级分享大纲升级到11gR2的必要性升级到11gR2的技术路径大型业务系统升级到11gR2的综合因素 升级后的系统稳定性保障方案升级前明确需要做的工作及组建团队 调研
8、分析调研分析 接口 应用连接方式 硬件环境 应用代码改造 应急方式 运维 方案制定方案制定 升级路径 升级方法 回退方案 应急方案 接口应用调整方案升级测试升级测试硬件环境测试软件升级测试数据升级测试应用功能测试应用性能测试联调测试正式升级正式升级升级前环境准备软件升级参数调整应用验证备份容灾项目管理项目管理整体负责升级工作协调相关开发、软硬件资源组织相关人员协同工作环境小组环境小组软硬件环境准备网络环境准备应用测试小组应用测试小组功能测试性能测试接口测试升级小组升级小组调研分析升级方案制定升级测试正式升级监控小组监控小组业务监控数据库层面需要考虑的问题oORACLE11g R2数据库特性变化
9、o数据库补丁评估o禁用的10g/9i参数 o过期/废除的参数 o特殊的数据库参数o升级测试、功能测试、性能测试o11g新特性启用评估o自动任务o自适应游标共享oOLTP表压缩oSCAN IPoruncate段清除 o闪回数据归档 o新分区技术oADG使用客户端服务端兼容性列表11g GI集群软件OCR、VOTING DISK存放 位置选择数据库升级方式的考虑统计信息的收集历史执行计划的保存11gR2 GI/RDBMS安装准备硬件要求网络要求软件要求数据库版本要求介质要求用户和组ORACLE软件安装目录往次升级遇到的问题总结版本兼容性考虑开始升级前的准备工作:数据库对象状态确认 检查/处理无效对
10、象 SQL select unique OBJECT_NAME,OBJECT_TYPE,OWNER fromDBA_OBJECTS where STATUS=INVALID;utlrp.sql 确认并移除无用对象 检查/处理无效组件 SQL select*from DBA_REGISTRY where STATUSVALID;移除过期参数Event参数#_always_semi_join=off#_unnest_subquery=false 清空垃圾回收站和aud$表 SQL purge recyclebin;SQL truncate table sys.aud$;建议了解的初始化参数1.OP
11、TIMIZER_USE_INVISIBLE_INDEXES11gR1版本中引入,启用或禁用不可见索引的使用,默认值为FALSE.2.OPTIMIZER_USE_PENDING_STATISTICS11gR1版本中引入,决定编译sql语句时优化器是否使用pending的统计信息,默认值为FALSE.3.OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES11gR1版本中引入,在生成sql执行计划基线是,启用或禁用自动识别重复的sql语句,默认为FALSE.4.OPTIMIZER_USE_SQL_PLAN_BASELINES11gR1版本中引入,启用或禁用使用SMB(sql M
12、anagement Base)中sql执行计划基线,当启用时,优化器将会为正在编译的sql语句查找基线,如果从SMB中找到一条记录,那么优化器将会计算每条基线执行计划的成本,并会挑出 其中成本最低的一个,默认值为TRUE.5.deferred_segment_creation11gR2版本中引入版本中引入,在使用exp/expdp导出时可能遇到错误.6.optimizer_secure_view_merging10gR2引入,防止复杂视图结构钟出现优化器问题,生成过多执行计划。建议设置为引入,防止复杂视图结构钟出现优化器问题,生成过多执行计划。建议设置为FALSE.7.memory_targe
13、t11gR1版本中引入版本中引入,内存自动管理内存自动管理.8._gc_policy_time11g引入,引入,DRM特性特性.建议关闭,设置为建议关闭,设置为0.9.session_cached_cursors自自10.2.0.4后,定义该参数确保后,定义该参数确保pl/sql游标缓存,基础建议为游标缓存,基础建议为300。查询。查询v$sysstat检验游标命中率设置检验游标命中率设置分享大纲升级到11gR2的必要性升级到11gR2的技术路径大型业务系统升级到11gR2的综合因素 升级后的系统稳定性保障方案数据库升级,DBA最担心的问题升级后系统性能不会变差吧?我们的性能测试准确吗?能不
14、能反映真实负载?性能变差了怎么办吧?我们的应对之策Andrew Holdsworth90 percent of the time the default sample works 9 percent of the time a larger sampleworks1 p e rSceenni otr Doifr e ctt ohre,Rte ailmWe otr l dh eP esr faomr mpalnec es,i zO rea c l eis irrelevant传统方法11g新方法传统方法优化器-阻止执行计划发生变化:使用基于规则的优化器模式(RBO,expdp性能有影响)设置老的
15、optimizer_features_enabled参数使用存储大纲(Stored Outlines)使用提示(Hint)重写SQL 语句设置特定的优化器参数搜集保存统计信息,导入并固定统计信息结合11g新方法确保99%的性能问题SQL计划管理数据库重放SQLT 手手动动profileSQL性能分性能分析析器器用SQL计划管理(SPM)来帮助稳定系统性能SQL计划管理通过3个步骤来实现可演进的SQL计划稳定功能:捕获 设置设置OPTIMIZER_CAPTURE_SQL_PLAN_BASELINE=TRUE 创建一个代表了可信任的执行计划的基准线 基准信息保存在SYSAUX表空间选择 只使用已接
16、受的SQL执行计划 新的执行计划记录在执行计划历史中演化 评估所有未经验证的执行计划 根据评估结果接受或者拒绝未经验证的执行计划 用户可手动接受或者拒绝执行计划数据库升级中使用SQL计划管理通过SQL 优化集中转10g中创建SQL优化集11g中从SQL优化集创建SQL计划基准通过存储大纲中转10g中创建存储大纲11g中从存储大纲迁移到SQL计划基准通过10g的优化器中转升级后11g中设置优化器为10g模式启用自动获取模式试运行一段时间后,再改优化器为11g模式通过11g测试环境中转测试环境优化并抓取好的SQL通过中间表导入/导出到生产环境数据库重放(DB Replay)帮助稳定系统性能在测试环
17、境中重放实际生产数据库在测试环境中重放实际生产数据库的的负载负载在实际对生产环境作改动之前识别在实际对生产环境作改动之前识别,分析分析和和解决解决潜潜在的在的不不稳定稳定因因素素在生产库中记录记录完整的生产库的负载,包括实际负荷,时间和并发情况将生成的负载记录文件转移到测试环境在测试环境中重放首先在测试环境中作出计划要做的改动完全按照生产库的负载情况进行重放严格的事务提交顺序分析和报告错误数据差异性能差异SQL性能分析性能分析器器(SPA)帮助稳帮助稳定定系统性能系统性能SQL 负载负载更改前执行统计更改后执行统计比较SQL 性能 提供了快速假设分析以显示系统在不同设置时的表现提供对个别 SQ
18、L 的细粒度性能 分析能够在性能问题影响最终用户前将其识别并解决SQLT:用用SQLT来解决部分来解决部分“遗漏的遗漏的”SQL问题问题作者:Carlos SierraConsulting Technical AdvisorCenter ofExpertise(CoE)下载:MOS 215187.1用途:1.收集单条SQL语句的信息,包括:SQL文本/执行计划(explain)/真实执行计划(row source operation)运行时的信息(时间,记录数等等)/10046/10053 trace2.收集影响optimizer的统计信息和可能会影响optimizer计算的参数;3.自动调用
19、SQL Tuning Advisor来生成优化报告;4.自动导出相关数据以方便客户/Oracle Support创建test case来重现客户的问题,加速 问题的处理;5.自动生成SQL Profile的脚本,来固定SQL的执行计划。SQLcoe.sql5bhps37ha4k562525682227SQL-generates script that creates sql profile in target system:SQLSET ECHO OFF;coe_xfr_sql_profile_5bhps37ha4k56_2525682227.sql.force_match=FALSE/*TRUE:FORCE(match even when different literals inSQL)*/);剩下的剩下的1%性能问题怎么办?扩展统计信息性能问题怎么办?扩展统计信息来来帮忙帮忙