设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

高效进行Oracle日常巡检:数据库性能与安全检查

发布时间:2019-07-03 12:51 所属栏目:20 来源:老王谈运维
导读:相关文章《高效进行 Oracle 日常巡检之数据库基本情况检查》 前言 对于线上的业务,oracle的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行体检,是保障数据库稳定运行的必不

相关文章《高效进行 Oracle 日常巡检之数据库基本情况检查》

前言

​对于线上的业务,oracle的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行“体检”,是保障数据库稳定运行的必不可的辅助手段。本文简要介绍在系列一的基础上需要巡检的内容,主要包括资源使用、性能、安全性等。

高效进行 Oracle 日常巡检——数据库性能与安全检查

一、检查oracle相关资源的使用情况

主要检查Oracle相关资源的使用情况,包含:

  • 检查Oracle初始化文件中相关的参数值
  • 检查数据库连接情况
  • 检查系统磁盘空间
  • 检查Oracle各个表空间使用情况
  • 检查一些扩展异常的对象
  • 检查system表空间内的内容
  • 检查对象的下一扩展与表空间的最大扩展值

总共七个部分。

1. 检查oracle初始化文件中相关参数

高效进行 Oracle 日常巡检——数据库性能与安全检查

若LIMITVALU-MAXUTILIZATION<=5,则表明与RESOURCENAME相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件$ORACLEBASE/admin/ORCL/pfile/initORCL.ora来修改。

2. 检查数据库连接情况

查看当前会话连接数,是否属于正常范围。

高效进行 Oracle 日常巡检——数据库性能与安全检查

高效进行 Oracle 日常巡检——数据库性能与安全检查

其中:

  • SID 会话(session)的ID号;
  • SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;
  • USERNAME 建立该会话的用户名;
  • PROGRAM 这个会话是用什么工具连接到数据库的;
  • STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;

3. 检查系统磁盘空间

如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。

高效进行 Oracle 日常巡检——数据库性能与安全检查

4. 检查表空间的使用情况

高效进行 Oracle 日常巡检——数据库性能与安全检查

如果空闲率%Free小于10%以上(包含10%),则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能。

5. 检查一些扩展异常的对象

高效进行 Oracle 日常巡检——数据库性能与安全检查

如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数。

6. 检查system表空间内的内容

高效进行 Oracle 日常巡检——数据库性能与安全检查

如果记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。

7. 检查对象的下一扩展与表空间的最大扩展值

高效进行 Oracle 日常巡检——数据库性能与安全检查

如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数。

二、检查数据库的性能

检查Oracle数据库性能情况,包含:

  • 检查数据库的等待事件
  • 检查死锁及处理
  • 检查cpu、I/O、内存性能
  • 查看是否有僵死进程
  • 检查行链接/迁移
  • 定期做统计分析
  • 检查缓冲区命中率
  • 检查共享池命中率
  • 检查排序区
  • 检查日志缓冲区

总共十个部分。

1. 检查数据库的等待事件

  1. set pages 80 
  2. set lines 120 
  3. col event for a40 
  4. select sid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%'; 

如果数据库长时间持续出现大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read等等待事件时,需要对其进行分析,可能存在问题的语句。

2. Disk Read最高的SQL语句的获取

  1. SQL>SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) 
  2. WHERE ROWNUM<=5 desc; 

3. 查找前十条性能差的SQL

  1. SELECT * FROM (SELECT PARSING_USER_ID 
  2. EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS, 
  3. SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC)  
  4. WHERE ROWNUM<10 ; 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读