性能诊断手册

简介: 在很多情况下,当数据库发生性能问题的时候,我们不可能长时间的在生产系统上进行问题分析,毕竟第一时间恢复业务才是最重要的。而system state dump和hang analyze给我们提供了事后分析问题所需的所有信息。

说明
在很多情况下,当数据库发生性能问题的时候,我们不可能长时间的在生产系统上进行问题分析,毕竟第一时间恢复业务才是最重要的。而system state dump和hang analyze给我们提供了事后分析问题所需的所有信息。也可以通过dba_hist_active_sess_history的数据来分析数据库历史性能问题。

收集信息
一:systemstate hang analyze
当数据库出现严重的性能问题或者hang住的时候,及时收集systemstate dump非常有助于问题原因的分析。通过systemstate dump可以知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人等详细信息。

1:非RAC:
1:登陆数据库
image

2:收集systemstate
image

3:收集hang analyze
image

2:RAC:
1:登陆数据库
image

2:收集systemstate
image

3:收集hang analyze
image

上面的命令执行后会在每个实例都生成systemstate dump。
说明
image

level 11和 267会 dump global cache, 会生成较大的trace 文件,一般情况下不推荐,一般情况下,如果进程不是太多,推荐用266。
二:dba_hist_active_sess_history
在Oracle 10G中,我们引入了AWR和ASH采样机制,有一个视图gv$active_session_history会每秒钟将数据库所有节点的Active Session采样一次,而dba_hist_active_sess_history则会将gv$active_session_history里的数据每10秒采样一次并持久化保存。基于这个特征,我们可以通过分析dba_hist_active_sess_history的Session采样情况,来定位问题发生的准确时间范围,并且可以观察每个采样点的top event和top holder。
1:Dump出问题期间的ASH数据:
为了不影响生产系统,我们可以将出现问题期间的ASH数据导出来在测试机上分析。基于dba_hist_active_sess_history创建一个新表problem_ash。代码如下:
image

导出数据
image

导入数据
image

2:验证导出的ASH时间范围
image

3:确认问题发生的精确时间范围
image

4:常用语句:
image

附录:
利用操作系统调试工具收集信息

当数据库无法连接的时候,我们可以通过操作系统的调试工具进行systemstate等信息的收集。说明如下:
1:找到oracle程序的操作系统进程号

image

2:运行gdb调试工具

image

3:打印信息

image

说明:其中10代表运行级别,级别详细说明见上文。

4:找到trace文件

在user_dump_dest参数指向的目录下.
格式为_ora_ .trc
例如:orcl_ora_3846.trc
其他操作系统操作步骤类似。

目录
相关文章
|
6天前
|
缓存 监控 关系型数据库
《Linux 简易速速上手小册》第10章: 性能监控与优化(2024 最新版)
《Linux 简易速速上手小册》第10章: 性能监控与优化(2024 最新版)
18 0
|
10月前
|
Linux 数据库 Python
linux性能诊断神器pstat
知道系统运行了哪些服务也许并不能告诉你是谁拖慢了系统。top命令可以报告CPU占用情况以及I/O等待时间,但这可能也不足以找出导致系统过载的任务。
139 0
|
12月前
|
监控
《阿里云产品手册2022-2023 版》——日志服务
《阿里云产品手册2022-2023 版》——日志服务
298 0
《阿里云产品手册2022-2023 版》——日志服务
|
SQL 存储 缓存
Mysql优化高级篇(全)
目录前言1. 简介1.1 安装1.2 MySQL逻辑架构存储引擎2. 索引优化分析2.1 原因2.2 常见通用的join查询2.3 索引2.3.1 索引分类2.3.2 索引结构2.3.3 索引情况2.4 性能分析2.4.1 id 前言 本篇文章主要涉及mysql的高级篇,主要是mysql的架构介绍、索引优化分析、查询截取分析、mysql锁机制以及主从复制等 在这之前的学习可参考我之前的文章进行学习 数据库知识 链接 数据库查询常用语句语法 博客链接 数据库中增删改常用语法语句(全) 博客
78487 19
Mysql优化高级篇(全)
|
监控 关系型数据库 MySQL
|
SQL 存储 运维
【笔记】最佳实践—如何优化数据导入导出
数据库实际应用场景中经常需要进行数据导入导出,本文将介绍如何使用数据导入导出工具。
152 0
|
监控 前端开发 druid
作业收缴系统设计手册(自写开源小系统)
系统旨在优化作业上交流程,解决收缴作业的繁琐过程,传统收缴作业基于qq文件,或者邮箱收发。需要大量的人工操作和精力取维护。而本系统将作业系统部署到服务器,大大方便了教师/收作业者对作业的管理。系统精美简单易用。能够满足大部分需求。项目已开源,可以自己使用或者二次开发等等。欢迎star?!!
245 0
作业收缴系统设计手册(自写开源小系统)
|
SQL 关系型数据库 MySQL
|
存储 SQL 安全
MySQL基础学习手册
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。由于CentOS7里软件库已经把mysql删除,使用MariaDB代替,所以我们在项目部署的时候也就直接使用了MariaDB。
144 0
MySQL基础学习手册
|
缓存 Java
性能诊断利器 JProfiler 快速入门和最佳实践
性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成 Java 应用出现性能问题的因素非常多,例如线程控制、磁盘读写、数据库访问、网络I/O、垃圾收集等。
4949 0