如何查询oracle 数据库性能,sql资源占用

如何查询oracle 数据库性能,sql资源占用,第1张

作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的 *** 作归根到底都是SQL语句,所有 *** 作到最后都是 *** 作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作。下面简单介绍下一些查看oracle性能的一些实用方法:

1、查询每台机器的连接数

select tMACHINE,count() from v$session t group by tMACHINE

这里所说的每台机器是指每个连接oracle数据库的服务器,每个服务器都有配置连接数据库的连接数,以websphere为例,在数据源中,每个数据源都有配置其最大/最小连接数。

执行SQL后,可以看到每个服务器连接oracle数据库的连接数,若某个服务器的连接数非常大,或者已经达到其最大连接数,那么这台服务器上的应用可能有问题导致其连接不能正常释放。

2、查询每个连接数的sql_text

v$session表里存在的连接不是一直都在执行 *** 作,如果sql_hash_value为空或者0,则该连接是空闲的,可以查询哪些连接非空闲, web3 是机器名,就是WebSphere Application Server 的主机名。

select tsql_hash_value,t  from v$session t where tMACHINE='web3' and tsql_hash_value!=0

这个SQL查询出来的结果不能看到具体的SQL语句,需要看具体SQL语句的执行下面的方法。

3、查询每个活动的连接执行什么sql

select sid,username,sql_hash_value,bsql_text

from v$session a,v$sqltext b

where asql_hash_value = bHASH_VALUE and aMACHINE='web3'

order by sid,username,sql_hash_value,bpiece

order by这句话的作用在于,sql_text每条记录不是保存一个完整的sql,需要以sql_hash_value为关键id,以piece排序,如图

Username是执行SQL的数据库用户名,一个sql_hash_value下的SQL_TEXT组合成一个完整的SQL语句。这样就可以看到一个连接执行了哪些SQL。

4、从V$SQLAREA中查询最占用资源的查询

select busername username,adisk_reads reads, aexecutions exec,

adisk_reads/decode(aexecutions,0,1,aexecutions) rds_exec_ratio,

asql_text Statement

from  v$sqlarea a,dba_users b

where aparsing_user_id=buser_id

and adisk_reads > 100000

order by adisk_reads desc;

用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。

V$SQL是内存共享SQL区域中已经解析的SQL语句。

该表在SQL性能查看 *** 作中用的比较频繁的一张表,关于这个表的详细信息大家可以去>

1、列出使用频率最高的5个查询:

select sql_text,executions

from (select sql_text,executions,

rank() over

(order by executions desc) exec_rank

from v$sql)

where exec_rank <=5;

该查询结果列出的是执行最频繁的5个SQL语句。对于这种实用非常频繁的SQL语句,我们需要对其进行持续的优化以达到最佳执行性能。

2、找出需要大量缓冲读取(逻辑读) *** 作的查询:

select buffer_gets,sql_text

from (select sql_text,buffer_gets,

dense_rank() over

(order by buffer_gets desc) buffer_gets_rank

from v$sql)

where buffer_gets_rank<=5;

这种需要大量缓冲读取(逻辑读) *** 作的SQL基本是大数据量且逻辑复杂的查询中会遇到,对于这样的大数据量查询SQL语句更加需要持续的关注,并进行优化。

3、持续跟踪有性能影响的SQL。

SELECT  FROM (

SELECT PARSING_USER_ID,EXECUTIONS,SORTS,

COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea

ORDER BY disk_reads DESC

)

WHERE ROWNUM<10

这个语句在SQL性能查看中用的比较多,可以明显的看出哪些SQL会影响到数据库性能。

本文主要介绍了使用SQL查询方式查看oracle数据库SQL性能的部分常用方法。此外还有许多工具也能实现SQL性能监控,大家可以在网上搜索相关知识进行学习。

转载仅供参考,版权属于原作者

内容 A 认识企业管理器(EM)的体系结构B 企业管理器(EM)的框架的设置A 认识EM(企业管理器)的体系结构=====================================Oracle Enterprise Manager (EM) x 实现了一个 层结构 其组成如下: 第一层 First tier: 第一层是客户端工具 如 EM Console DBA Management Pack和其他集成的Oracle应用 这些工具是从Windows NT Windows Windows 或Sun Solaris机器的本地启动的 这些工具也可以是通过浏览器下载下来的JAVA applet 中间层 Middle tier:中间层(也就是第二层) 由安装在Windows NT或Sun Solaris server上的Oracle Management Server (OMS)构成 要使用EM Console(企业管理器的控制台)和Job&Event subsystem(任务与事件子系统) 必须有一个配置好的Oracle Management Server OMS提供了: 访问EM库(Repository)中的信息 分派控制台的请求 控制任务执行 监控事件 通过电子邮件或寻呼提示任务的完成或事件发生 多个OMS能够提供: 无需额外的管理 就可以实现负载的分布 工作量能够自动地被共享和均衡 容错 一个OMS可以重做另外一个OMS的工作量 第三层 Third tier: 第三层是智能代理(Intelligent Agent) 是在每个server上必须安装的 用来执行任务和监控发生在该服务器各被管理对象上的事件的软件 被管理对象包括网络节点(服务器) 数据库 侦听程序(listener)以及其他安装在这些结点上的Oracle服务 这三层可以是在同一台机器上 不同的机器上 或任意的组合 都可以 B 企业管理器(EM)框架的设置================================为了配置简便 每层配置后 应先验证是否配置正确 然后到下一层 方便的构造过程是从第三层到第一层 I 配置第三层:为了管理结点和结点上的oracle服务 必须在结点上配置并运行一个智能代理(Intelligent Agent) 智能代理是由Oracle Server CD上安装的 详细安装信息 参考Oracle Server安装指南和Intelligent Agent用户指南 如果被管理的结点是一个Windows NT系统:Checklist o 启动智能代理 o 设置一个有 Logon as Batch Job 权限的Windows NT 管理员用户 启动智能代理/Intelligent Agent:启动一个Windows NT上的Intelligent Agent *** 作如下 a 双点[控制面板/Control Panel]文件夹中的服务/Services图标 b 选择名为Oracle Agent的服务 c 点击[开始/Start]按钮 启动这个代理 停止一个Windows NT上的Intelligent Agent *** 作如下 a 双点[控制面板/Control Panel]文件夹中的服务/Services图标 b 选择名为Oracle Agent的服务 c 点击[停止/Stop ]按钮 停止这个代理 验证此代理是否在运行 进行下面 *** 作的任意组合 a 在控制面板的服务中检查Oracle Agent的状态b 验证NT任务管理器中是否有进程dbsnmp exe c 在命令行中执行net start命令 Oracle Agent应当出现在服务列表中 设置用于运行任务和事件监控的Windows NT用户的账户Checklist o 确定Windows NT系统的类型o 创建一个和管理员等同的账号(用户)o 给新用户授予 Logon as a Batch Job 的权限因为Windows NT是一个安全的 *** 作系统 NT上的智能代理必须通过一个拥有 Logon as a Batch Job 权限的NT用户来执行任务和事件 此特权 可以赋给一个一存在的本地用户或域用户 或者一个新的NT用户 下面是如何设置Windows NT用户的帐号 (Refer to the EM Configuration Guide for additional information ) 注意 要创建或修改NT上的账号 必须以有 Administrator (管理员)特权的用户登录 先判断ORACLE安装在一个什么类型的Windows NT系统上 主域控制器(PDC) 备份控制器 (BDC) 独立的(member) Server还是一个工作站 如果机器是PDC或BDC 按照一下步骤建立或修改一个域用户 如果NT系统不是PDC或BDC 从 设置一个本地用户 一节开始 设置一个域用户:运行域的用户管理器选择 Start => Programs =>Administrative Tools => User Manager for Domains窗口的标题条应该是 USER MANAGER 设置一个本地用户 运行用户管理器(for Domains)选择 Start => Programs => Administrative Tools => User Manager (For Domains)窗口的标题条应该是: USER MANAGER \\ 如果标题条中列出了域的名字 选User => Select Domain 输入 \\ (例如 \\bobpc)注意: 如果已有一个Windows NT账号account will be used by the Intelligent Agent skip to the section Grant Logon as a Batch Job Privilege (step (d) below) 创建一个用户:a 选中一个管理员账号 选菜单User => Copy 拷贝这个账号及其权限 b 为EM账号输入新的用户名和口令 (如EMUSER) c 验证确保仅有 口令永不过期 被打上钩 选择Add 注意 如果在域中存在相同的名字的域用户和本地用户 口令必须有区别 口令是区分大小写的 并且本地帐户优先 在第三层上为用户授予本地的 Logon as Batch Job 权限:d 选中在步骤(a)中创建的用户 选择菜单 Policies =>User Rights e Click on the box next to Show advanced user rights f 选择Rights权限下拉列表中的 Logon as a Batch Job 如果有账号曾被授予过这个权限 Grant to 列表中将包含这个账号的名字 g 选择Add 确保FROM中列出的是正确的名字 ( ) 域名 如果你想创建一个域用户的话 或( ) 本地机器名 如果你要创建一个本地用户如果名字不正确 选择下拉列表 选择正确的机器名或域名 h 点 Show Users 找到刚刚创建的用户 点Add 此账号将出现在Add Names的底部 如果名字正确 就点OK 此用户就被加到Grant To: 中 然后 点OK关闭对话框 关闭User Manager 注意:如果授予权限的用户已经登录了系统 需要重新注册 授权才会生效 如果被管理结点是个UNIX系统 Checklist o 确认已经运行了post installation脚本 (root sh) o 验证智能代理Intelligent Agent (dbsnmp) 执行文件的访问许可o 启动智能代理Intelligent Agent 运行 root sh:每一次oracle安装之后 都必须运行root sh脚本 该脚本设置了智能代理的执行文件(dbsnmp)的访问权限 此脚本还创建或更新智能代理所用来确定是否系统上的所有数据库都可以发现的oratab文件 对于每个创建的数据库 都有下列格式的一项 :<$ORACLE_HOME>:[Y/N] 验证oratab文件列出了系统中的每个数据库 并且遵循了正确的语法 root sh shell脚本文件应当已经写下了Oracle Home和SID的值 如果oratab中没有项目 按如下步骤 *** 作 > su root > $ORACLE_HOME/orainst > /root sh 回答提出的问题 对于每个创建的数据库 项目的格式为: :<$ORACLE_HOME>:[Y/N] 你将自动地退出root sh 正常情况下 此代理被root sh配置为一个setuid程序 如果root sh执行成功 此代理将被安装成 setuid root 这样agent就可以以 EM Console中为该结点设定的Preferred Credentials中给的用户名和口令执行任务 检查dbsnmp的文件访问权限:为了验证root sh已被成功的执行了 检查dbsnmp的文件访问权限 > cd $ORACLE_HOME/bin 列出关于dbsnmp的相关详细信息:> ls al dbsnmp 此命令的输出应当是如下格式的 rwsr xr x root dba Jun : dbsnmpIn this example root is the owner and the group is dba The first characters ( rwxr xr x) represent the level of permissions set on the executable The first character ( rws) represents the owners permissions For example the owner has (r)read (w)write and (s)setuid on execute The next characters (r x) represent the groups permissions For example (r)read (x)execute Group does not have write permissions The last characters (r x) represents the permissions of everyone else or world If root is the owner and rwsr xr x are the permissions then root sh has been ran successfully 如果dbsnmp的所有者是root 访问权限是 rwsr xr x 说明root sh被成功的执行 lishixinzhi/Article/program/Oracle/201311/16833

如果登录成功代表安装成功,其他情况则为安装失败
oracle客户端不是绝对的,只是一个可以连接到oracle服务器的工具,比如有专门的oracle客户端软件,没有服务器也是白装,利用sqlplus,isqlplus,toad,sqldeveloper等等工具经过一定的配置可以实现连到服务器进行查询。即使是两台oracleserver,通过sqlplus在一台可以是可以连接到另外一台上,那么虽然两台都是server,发起连接的一台就相对变成了client,使用的工具自然都是客户端工具。
1、oracle服务端是指装在数据库服务器上的oracle主服务,数据库的核心,用于数据库的管理,数据的与存储、查询、数据库资源的监控、监听等服务。oracle客户端只是指与服务端交互的工具,要登录使用oracle数据库服务就需要安装客户端(例如PLSQL),利用PLSQL连接到数据库,来执行oralce服务的一些增删改查等 *** 作。

请按如过程检查:
1 服务器,可否正常登录数据库并查询数据sqlplus
2 服务器上 用sqlplus user/pwd@orcl 的方式能否登录?
3 服务器的防火墙是否开着,是否没有为oracle调整过
4 客户端用oracle sql developer 连接时,地址,端口,数据库实例名,用户名,密码,是否都正确?
5 对于使用oci连接(pl/sql developer、toad等)的客户端,本地网络服务名 (tnsnamesora中的配置内容)配置的内容是否正确

一个好的安全运维平台需要将事件与IT流程相关联,一旦监控系统发现性能超标或出现宕机现象,就会触发相关事件以及事先定义好的流程,自动启动故障响应和恢复机制。还需要能够筛选出运维人员完成日常的重复性工作,提高运维效率。要实现这些功能都是常规监控软件Cacti、Zabbix所无法实现。

同时,还要求能够预测网络蠕虫威胁,在故障发生前能够报警,让运维人员把故障消除在萌芽状态,将所产生损失减到最低。总的来说运维人需要能够在一个平台中实现资产管理、分布式部署、漏洞扫描、风险评估、策略管理、实时流量监控、异常流量分析、攻击检测报警、关联分析、风险计算、安全事件告警、事件聚合、日志收集与分析、知识库、时间线分析、统一报表输出、多用户权限管理的功能,这种集成开源工具到底有没有?它去哪儿啦?

目前市面上有两种产品可满足这样的要求,目前市面上的SIEM产品主要有HPArcsight(后台挂Oracle库)、IBMSecurityQRadarSIEM和Alienvault的OSSIMUSM,现在的问题是并不缺少商业SIEM解决方案,在开源软件中OSSIM到是最佳选择。

很多人只是肤浅的认为OSSIM只是将一些开源工具集成到一个平台,在OSSIM中颠覆性创新主要在易用(容易安装、部署,容易使用,几乎不用自己写脚本)、分布式监控系统、响应威胁(OTX)、关联分析引擎、可视化攻击展示等。

Alienvault分为开源OSSIM和商业版USM两种,通过这一集成监控工具实现对用户 *** 作规范的约束和对计算机资源进行准实时监控,包括服务器、数据库、中间件、存储备份、网络、安全、机房、业务应用等内容,通过自动监控管理平台实现故障或问题综合处理和集中管理。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12726319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存