Oracle数据库技术运维培训_第1页
Oracle数据库技术运维培训_第2页
Oracle数据库技术运维培训_第3页
Oracle数据库技术运维培训_第4页
Oracle数据库技术运维培训_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle 数据库技术运维培训技术创新,变革未来智慧IT010203目 录ContentsORACLE诊断工具常见ORACLE故障分析体系结构简介04oracle运维及容灾软件501系统全局区(System Global Area,SGA)。 SGA是由所有用户进程 共享的一块内存区域。日志缓冲区Java池大型池数据字典 存储区共享SQL区程序全局 区数据库缓 冲存储区ORACLE体系结构Oracle数据库是安装在磁盘上的Oracle 数据库文件和相关的数 据库管理系统(DBMS)的集合。数据文件(Data files)控制文件(Control files)重做日志文件(Redo log f

2、iles)初始化参数文件(Parameter file)口令文件(Password file)归档重做日志文件(Archived log files)等014ORACLE体系结构Oracle例程后台进程数据库写入进程(DBWn)日志写入进程(LGWR)日志归档进程(ARCn)检查点进程(CKPT)系统监控进程(SMON)进程监控进程(PMON)等。015ORACLE体系结构ORACLE体系结构Oracle数据库有两种内存结构系统全局区(System Global Area,SGA)程序全局区(Program Global Area,PGA)系统全局区是一组共享内存结构,存放一个Oracle数据

3、库例程的控制 信息和各共享用户的数据。程序全局区是用户进程连接到数据库并创建一个会话时,由Oracle服 务器进程分配的专门用于当前用户会话的内存区,该区域是私有的。016Oracle例程内存结构组织称为系统全局区(System Global Area, SGA)。SGA是由所有用户进程共享的一块内存区域。数据库缓冲存储区(Database Buffer Cache)重做日志缓冲区(Redo Log Buffer)共享池(Shared Pool)Java池(Java Pool)大型池(Large Pool)等017ORACLE体系结构Oracle例程内存结构组织称为系统全局区(System G

4、lobal Area, SGA)。SGA是由所有用户进程共享的一块内存区域。数据库缓冲存储区(Database Buffer Cache)重做日志缓冲区(Redo Log Buffer)共享池(Shared Pool)Java池(Java Pool)大型池(Large Pool)等018ORACLE体系结构用户进程发布并执行SQL语句的用户环境用户进程(User process)服务器进程(Server process)程序全局区(Program Global Area,PGA)当用户连接到Oracle服务器时,Oracle便创建一个服务器进程与之交 互,并代表该用户进程完成与Oracle数据

5、库间的交互。程序全局区PGA是用户专用的内存结构,存储该用户连接期间与SQL 语句执行相关的信息019ORACLE体系结构01一个Oracle数据库可以拥有多个表空间,每个表空间可包含多个段,每个段 由若干个区间组成,每个区间包含多个数据块,每个Oracle数据块由多个OS 物理磁盘块组成。表空间由多个物理文件支持,具体存储表空间中的各对象ORACLE体系结构010203目 录ContentsORACLE诊断工具常见ORACLE故障分析体系结构简介04oracle运维及容灾软件1102详解ORACLE性能优化工具自动化性能优化工具自动化性能优化是一个趋势。但是Oracle的建议只能当做一个工具

6、。在越来越自动化的今天,对DBA要求其实更高了。120213详解ORACLE性能优化工具性能优化的三大利器AWR(Automatic Workload Repository)AWR是Oracle 10g中的一个新特性,类似于10g以前的statspack。不过在使用上要比 statspack简单,提供的性能指标要比statspack多很多,能更好的帮助DBA来发现数据库的性能瓶颈$ORACLE_HOME/rdbms/admin/rdbms/awrrpt.sqlASH (Active Session History)ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的

7、会话 不会采样,采样工作由新引入的后台进程MMNL来完成$ORACLE_HOME/rdbms/admin/rdbms/ashrpt.sqlADDM (Automatic Database Diagnostic Monitor AWR)是Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建议,给出SQL的优化, 索引的创建,统计量的收集等建议$ORACLE_HOME/rdbms/admin/rdbms/addmrpt.sql0214详解ORACLE性能优化工具什么是AWRAWR (Automatic Workload Repository)一堆历史性能数据,放在 SYSAUX 表

8、空间上, AWR 和 SYSAUX 都是 10g 出现的,是Oracle 调优的关键特性;大约 1999 年左右开始开发,已经有 15 年历史默认快照间隔 1 小时, 10g 保存 7 天、 11g 保存 8 天; 可以通过DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 修改AWR 程序核心是 dbms_workload_repository 包 运行脚本:?/rdbms/admin/awrrpt 本实例?/rdbms/admin/awrrpti RAC 中选择实例号手动执行一个快照:exec dbms_workload_repository

9、.create_snapshot;02详解ORACLE性能优化工具生成报告命令:SQL?/rdbms/admin/awrrpt.sql-普通AWR报告 SQL?/rdbms/admin/awrgrpt.sql-采集RAC集群报告 SQL?/rdbms/admin/awrrpti.sql-采集RAC二节点报告报告汇总信息,涵盖最基本也是最直观的AWR新能信息, 包括内存配置,参数指标,数据库命中率,等待事件等高负载SQL,按CPU 处理时间,逻辑读,物理读,执行 次数,解析次数,高版本等多个方面展现数据库高负载 SQL数据库指标统计,包括IO,内存advisory,等待事件,undo统计,lat

10、ch 统计参数文件内容,包括各种系统参数,隐含参数,event等 的设置1502详解ORACLE性能优化工具详解AWR使用方法160217详解ORACLE性能优化工具Load Profile部分指标定义redo size单位 bytes, redo size 可以用来估量 update/insert/delete 的频率,大的 redo size 往 往对 lgwr 写日志,和 arch 归档造成 I/O 压力, Per Transaction 可以用来分辨是 大量小事务, 还是少量大事务。如上例每秒 redo 约 1MB ,每个事务 800 字节, 符合 OLTP 特征Logical Rea

11、d单位 次数*块数,逻辑读耗CPU,主频和 CPU 核数都很重要,逻辑读高则 DB CPU 往往高,也往往可以看到 latch: cache buffer chains 等待。 大量 OLTP 系统 (例如 siebel)可以高达几十乃至上百 GbytesBlock changes单位 次数*块数,描绘数据变化频率Physical Read单位次数*块数,物理读消耗 IO 读,体现在 IOPS 和吞吐量等不同纬度上;但减 少物理读可能意味着消耗更多CPU。好的存储每秒物理读能力达到几GB,例如Exadata。 这个physical read 包含了 physical reads cache 和

12、 physical reads direct0218详解ORACLE性能优化工具Load Profile部分指标定义Physical writes单位 次数*块数,主要是 DBWR 写 datafile,也有 direct path write。 dbwr 长 期写出慢会导致定期 log file switch(checkpoint no complete) 检查点无法完成的前台等待。 这 个 physical write包含了 physical writes direct +physical writes from cacheUser Calls单位次数,用户调用数, more detail

13、s from internalParses解析次数,包括软解析+硬解析,软解析优化得不好,则夸张地说几乎等于 每秒 SQL 执行次数。 即执行解析比 1:1,而我们希望的是 解析一次 到处运行哦!Logons登陆次数, logon storm 登陆风暴,结合 AUDIT 审计数据一起看。短连接的 附带效应是游标缓存无用Executes执行次数,反应执行频率0219详解ORACLE性能优化工具Load Profile部分指标定义Rollback回滚次数, 反应回滚频率, 但是这个指标不太精确,参考而已,别太当真Transactions每秒事务数,是数据库层的 TPS,可以看做压力测试或比对性能时

14、的一个指 标,孤立看无意义% Blocks changed per Read每次逻辑读导致数据块变化的比率;如果redo size, =block changes =pct of blocks changed perread三个指标都很高,则说明系统正执行大量 insert/update/delete; pct of blocks changed per read = (block changes ) /( logical reads)Load Profile,负载指标 在本环节提供了2个维度per second 和per transactionper Second:主要是把快照内的delta

15、值除以快照时间的秒数,是我们审视数据的主要维度, 任何性能数据脱离了时间模型则毫无意义。per transaction : 基于事务的维度, 与 per second 相比 是把除数从时间的秒数改为了该 段时间内的事务数02详解ORACLE性能优化工具命中率部分:上述所有指标的目标均为 100%,即越大越好,在少数 bug 情况下可能超过 100%或者为负值Buffer Nowait % 会话申请一个 buffer(兼容模式)不等待的次数比例。 需要访问 buffer 时立即 可以访问的比率,不兼容的情况在9i 中是buffer busy waits,从 10g 以后 buffer busy

16、waits 分 离为 buffer busy wait 和 readby other session2 个等待事件buffer HIT%: 经典的经典,高速缓存命中率,反应物理读和缓存命中间的纠结,但这个指标 即便 99% 也不能说明物理读等待少了200221详解ORACLE性能优化工具Redo nowait%: 会话在生成redo entry时不用等待的比例,redo 相关的资源争用例如redo space request 争用可能造成生成redo 时需求等待。此项数据来源于v$sysstat 中的(redo log space requests/redo entries),一般来说10g

17、以后不太用关注log_buffer 参数的大小,需要关注是否有十分频 繁的 log switch ,过小的 redo logfilesize 如果配合较大的 SGA 和频繁的 commit 提交都可能造成该 问题。 考虑增到 redo logfile 的尺寸 : 14G 每个,710 组都是合适的。同时考虑优化 redo logfile 和 datafile 的 I/OIn-memory Sort%:这个指标因为它不计算 workarea 中所有的操作类型,所以现在越来越鸡肋了, 纯粹在内存中完成的排序比例。Library Hit%: library cache 命中率,申请一个library

18、 cache object 例如一个 SQL cursor 时,其已 经在 library cache 中的比例Soft Parse: 软解析比例,无需多说的经典指标Execute to Parse% 指标反映了执行解析比 其公式为 1-(parse/execute) , 目标为 100% 及接近于 只 执行而不解析0222详解ORACLE性能优化工具命中率部分:Latch Hit%: willing-to-wait latch 闩申请不要等待的比例。Parse CPU To Parse Elapsd:该指标反映了 快照内解析 CPU 时间和总的解析时间的比值 (Parse CPU Time/

19、 Parse Elapsed Time); 若该指标水平很低,那么说明在整个解析过程 中 实际在 CPU 上运算的时间是很短的,而主要的解析时间都耗费在各种其他非空闲的等 待事件上了%Non-Parse CPU 非解析 cpu 比例,公式为 (DB CPU Parse CPU)/DB CPU, 若大多 数 CPU 都用在解析上了,则资源存在没有合理利用现象02详解ORACLE性能优化工具TOP等待部分:23010203目 录ContentsORACLE诊断工具常见ORACLE故障分析体系结构简介04oracle运维及容灾软件240325常见ORACLE故障分析在业务运行期间,业务应用,中间件厂

20、家和工程师在进行数据库连接和维护时候,经常出现的连接报错, 报错的错误是各种各样的,下面主要列出几项在运维期间经常出现的故障及分析。案例一:TNS-12541:TNS:无监听程序TNS-12560:TNS:协议适配器错误 TNS-00511:无监听程序Linux Error:111:connect refused导致12560的报错主要的三个原因:1.监听服务listener没有启动,使用lsnrctl status xxx(xxx监听名,一般默认listener)。 2.数据库实例没有启动。3.环境变量ORACLE_SID设置不对,导致连接不是该实例。03常见ORACLE故障分析案例二:OR

21、A-00257 :Archiver error.Connect AS SYSDBA only until resolved出现ora-00257的报错是由于归档空间满了,无法进行归档,导致数据库Hang住,业务无法进行解决方法一:rman target /delete archivelog until time sysdate-7;删除7天前的归档文件 解决方法二:cd 进入归档目录通过find命令找出几天之前不需要的归档文件进行删除2903常见ORACLE故障分析案例三:ora-00081:超出数据库的最大会话数处理解决方法:1.sqlplus / as sysdba进入数据库(在严重情况下

22、,此时不一定能够进入数据库,需要手工kill掉一个LOCAL=NO会 2.select count(1) from v$process; 和show parameter process进行对比,查出会话数的差异相差无几,因为此时 些会话会关闭释放掉。show parameter spfile查看使用那种参数文件启动数据库如果是init(sid).ora需要关机修改该文件的process的参数,增大两倍至三倍左右如果是spfile(sid).ora,使用later system set process=xxx(会话数,增大两倍至三倍左右) scope=spfile; 6.该参数无法立即生效,需要

23、重启数据库实例270328常见ORACLE故障分析案例四:ORA-01658: unable to create INITIAL extent for segment in tablespace string。 或者ORA-01659: unable to allocate MINEXTENTS beyond 3 in tablespace system。解决方法:排查存放的数据文件目录或者asm磁盘是否满了查询报错的表空间文件是否超过单个文件大小和数据文件是否自动扩展根据情况进行添加数据文件或者打开数据文件的自动扩展0329常见ORACLE故障分析案例五:ORA-12520:TNS: 监听程序无法找到需要的服务器类型的可用句柄ORA-12520:TNS:监听程序无法为请求的服务器类型找到可用的处理程序故障原因一:tnsnames.ora文件配置的连接串使用的是共享模式,用共享模式连接串连接专有服务器的数据库 解决方法:更改客户端的tnsnames.ora文件配置连接串的(server=shared)为(server=dedicated)故障原因二:是由于业务繁忙连接,新增业务或者job任务在业务时间运行导致process不够,引发数据库出现故障 解决方法:进入数据库修改process参数:alter system set process=xxx sco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论