欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle日常巡检

程序员文章站 2022-05-20 22:29:16
...

所有企业的业务数据库系统都是重中之重,如何来保证系统安全性与稳定性,需要DBA每日来通过相应的巡检指标进行相关记录,今天我们就来简单说一下OS健康检测将CPU

所有企业的业务数据库系统都是重中之重,如何来保证系统安全性与稳定性,需要DBA每日来通过相应的巡检指标进行相关记录,今天我们就来简单说一下

OS健康检测

将CPU、内存、磁盘I/O状况、网络状况等填到上午高峰期检查情况和下午高峰期检查情况栏里。对于CPU和内存、磁盘IO记录数值,对于网络状况,记录正常或不正常。

检测CPU情况

可以看到,1分钟,5分钟,15分钟的负载都为0,系统很健康的说

检测内存状况

可以看到,内存虽然占用了90%以上,但是SWAP交换分区并没有被占用,所以属于业务正常情况

检测硬盘状况

可以看到,文件系统只用到了不足10%,还有很大的磁盘空间,很健康

通过vmstat命令检测系统

Oracle日常巡检

Linux 内存监控vmstat命令输出分成六个部分:(参考资料:)

1、进程procs:

r:在运行队列中等待的进程数 。

b:在等待io的进程数 。

2、Linux 内存监控内存memoy:

swpd:现时可用的交换内存(单位KB)。

free:空闲的内存(单位KB)。

buff: 缓冲去中的内存数(单位:KB)。

cache:被用来做为高速缓存的内存数(单位:KB)。

3、Linux 内存监控swap交换页面

si: 从磁盘交换到内存的交换页数量,单位:KB/秒。

so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

4、Linux 内存监控 io块设备:

bi: 发送到块设备的块数,单位:块/秒。

bo: 从块设备接收到的块数,单位:块/秒。

5、Linux 内存监控system系统:

in: 每秒的中断数,包括时钟中断。

cs: 每秒的环境(上下文)转换次数。

6、Linux 内存监控cpu*处理器:

cs:用户进程使用的时间。以百分比表示。

sy:系统进程使用的时间。以百分比表示。

id:*处理器的空闲时间。以百分比表示。

假如r经常大于4,且id经常小于40,表示*处理器的负荷很重。 假如bi,bo 长期不等于0,表示物理内存容量太小。

通过iostat命令检测系统

Oracle日常巡检

比较重要的参数(参考资料: )

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的

svctm: 平均每次设备I/O操作的服务时间

await: 平均每次设备I/O操作的等待时间

avgqu-sz: 平均I/O队列长度

如果%util接近100%,表明i/o请求太多,i/o系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,i/o压力就比较大,读取速度有较多的wait.同时可以结合vmstat查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)。

await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢。

通过sar命令检测系统

Oracle日常巡检

sar命令较为复杂,牵扯参数较多,这里就不再详解了

检测Oralce进程

Oracle日常巡检

Oracle后台进程是oracle实例的重要组成部分,美国空间,后台进程是否正常工作直接决定了Oracle运行的正常与否。如果Oracle后台进程停止,将导致Oracle实例的崩溃。(最少应该有dbwr、lgwr、smon、pmon、ckpt等几个主要进程)

检测Oracle监听

Oracle日常巡检

Oracle监听进程侦听从客户端(如应用服务器)发来的对数据库的连接请求,然后为该请求建立一个连接。如果监听进程关闭,则无法建立起应用服务器与数据库服务器之间的连接。(SID最少应该有一个为READY状态)

检测Oracle死锁

死锁是由于2个session互相交叉阻塞对方而产生的,Oracle会自动探测到死锁并回滚其中的一个事务。死锁一般是由于应用逻辑造成的,发生死锁时,需要将导致死锁的SQL反馈给开发人员,以进一步解决。(也应该时常检测alert日志,看看有没有严重的或者频繁出现的ORA-错误并解决)

Oracle检测

检查Oracle实例状态

正常情况下,Oracle实例状态处于OPEN状态,通过检查此项,可以确定Oracle实例是否正常。

检查Oracle数据库状态

通过查看Oracle数据库状态,可以检查数据库名称、数据库归档模式、数据库打开模式,从而确定数据库是否处于正常的状态。(测试库未开启归档,属于正常)

检查Oracle会话状态