对于线上的业务,Oracle 的 数据库 运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行“体检”,数据库巡检是保障数据库稳定运行的必不可少的辅助手段。

本文将简要介绍一下从哪些方面对 Oracle 数据库进行巡检以及巡检的方法。

一、检查数据库的基本状况

1. 检查 Oracle 实例状态

SQL> select instance_name,host_name,startup_time,status,database_status from v$instance; 

其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。

SQL> select name,log_mode,open_mode from v$database;

其中

  • “LOG_MODE”表示Oracle当前的归档方式;
  • “ARCHIVELOG”表示数据库运行在归档模式下;
  • “NOARCHIVELOG”表示数据库运行在非归档模式下。

在我们的系统中数据库必须运行在归档方式下。

2.  检查 Oracle 服务进程

$ps -ef|grep ora_|grep -v grep&&ps -ef|grep ora_|grep -v grep|wc –l

在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:

  • Oracle写数据文件的进程,输出显示为:“oradbw0CKDB”
  • Oracle写日志文件的进程,输出显示为:“oralgwr CKDB”
  • Oracle监听实例状态的进程,输出显示为:“orasmon CKDB” .
  • Oracle监听客户端连接进程状态的进程,输出显示为:“orapmon CKDB”
  • Oracle进行归档的进程,输出显示为:“oraarc0 CKDB”
  • Oracle进行检查点的进程,输出显示为:“orackptCKDB” .
  • Oracle进行恢复的进程,输出显示为:“orareco CKDB”

3.  检查 Oracle 的监听状态

lsnrctl status

“Services Summary”项表示Oracle的监听进程正在监听哪些数据库实例。

检查监听进程是否存在:

ps -ef|grep lsn|grep -v grep
oracle 2954 1 0 May07 ? 00:01:17 /data/oracle/product/11.2.0/bin/tnslsnr LISTENER –inherit 

二、检查系统和 Oracle 日志文件

检查相关的日志文件主要包含:

  • 检查操作系统的日志文件
  • 检查Oracle日志文件
  • 检查Oracle核心转储目录
  • 检查Root用户和Oracle用户的email

总共四个部分。

1.  检查操作系统日志文件

# cat /var/log/messages |grep failed

查看是否有与Oracle用户相关的出错信息。

2.  检查 Oracle 日志文件

$ cat /data/oracle/admin/CKDB/bdump/alert_CKDB.log |grep ora-
$ cat /data/oracle/admin/CKDB/bdump/alert_CKDB.log |grep err
$ cat /data/oracle/admin/CKDB/bdump/alert_CKDB.log |grep fail  

在Oracle的运行中,会在警告日志文件中记录数据库的一些运行情况 ,定时查看此文件,可以及时了解数据库运行状态是否异常。

3.  检查 Oracle 核心转储目录

$ls $ORACLE_BASE/admin/CKDB/cdump/*.trc|wc -l
$ls $ORACLE_BASE/admin/CKDB/udump/*.trc|wc –l 

如果上面命令的结果每天都在增长,则说明Oracle进程经常发生核心转储。这说明某些用户进程或者数据库后台进程由于无法处理的原因而异常退出。频繁的核心转储特别是数据库后台进程的核心转储会导致数据库异常终止。

4.  检查Root用户和Oracle用户的email

#tail –n 200 /var/mail/root
#tail –n 200 /var/mail/oracle

查看有无与Oracle用户相关的出错信息。

三、检查oracle对象状态

主要检查相关Oracle对象的状态,包含:

  • 检查Oracle控制文件状态
  • 检查Oracle在线日志状态
  • 检查Oracle表空间的状态
  • 检查Oracle所有数据文件状态
  • 检查Oracle所有表、索引、存储过程、触发器、包等对象的状态
  • 检查Oracle所有回滚段的状态

总共六个部分。

1.  检查控制文件状态

SQL> select status,name from v$controlfile;

输出结果“STATUS”应该为空。状态为空表示控制文件状态正常。

2.  检查在线日志文件状态

SQL>select group#,status,type,member from v$logfile;

输出结果“STATUS”应该为非“INVALID”,非“DELETED”。

注:“STATUS”显示为空表示正常。

3. 检查表空间的状态

SQL> select tablespace_name,status from dba_tablespaces;

输出结果中STATUS应该都为ONLINE。

4.  检查所有数据文件状态

SQL> select name,status from v$datafile;

输出结果中“STATUS”应该都为“ONLINE”或者为“AVAILABLE”

5.  检查无效的对象

sql>select owner,object_name,object_type from dba_objects where status!='VALID' and owner!='SYS' and owner!='SYSTEM';
no rows selected  

如果有记录返回,则说明存在无效对象。若这些对象与应用相关,那么需要重新编译生成这个对象。

Oracle 日常巡检——数据库基本情况检查相关推荐

  1. 高效进行 Oracle 日常巡检——数据库基本情况检查

    对于线上的业务,Oracle 的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行"体检",数据库巡检是保障数据 ...

  2. 检查oracle当前性能,高效进行Oracle日常巡检:数据库性能与安全检查

    前言 ​对于线上的业务,oracle的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行"体检",是保障数据库稳 ...

  3. oracle巡检表,ORACLE日常巡检内容

    Oracle日常巡检 一.操作系统 1.查看IP地址: ifconfig –a 2.查看文件系统使用情况 df –k 参考:文件系统使用率大于85%需要注意,提醒客户是否需要扩文件系统或者删除不需要的 ...

  4. oracle rac应急_ORACLE紧急情况检查应急预案

    数据库紧急情况检查应急预案 第一章. 公共检查部分 . ........................................................................ ...

  5. Oracle日常巡检

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

  6. ORACLE 数据库日常巡检

    Oracle 数据库日常巡检 阅读目录 检查数据库基本状况 检查Oracle相关资源的使用情况 检查Oracle数据库备份结果 检查Oracle数据库性能 检查数据库cpu.I/O.内存性能 检查数据 ...

  7. oracle 数据库日常巡检:数据库基本状况、oracle资源使用、数据备份结果、性能、cpu等、数据安全、归档日志、会话、SGA/PGA使用情况

    巡检目录 1. 检查数据库基本状况 2. 检查Oracle相关资源的使用情况 3. 检查Oracle数据库备份结果 4. 检查Oracle数据库性能 5. 检查数据库cpu.I/O.内存性能 6. 检 ...

  8. oracle数据库日常巡检计划

    日常巡检 1.保证数据库正常的运行 2.数据库日常备份检查 3.定期查看alert_SID.log,发现现有的问题 4.定期rebuild索引 5.定期analyze tables和indexs 6. ...

  9. oracle schema_Oracle数据库坏块检查与修复

    摘要:简述数据库坏块,发现并处理Oracle的物理坏块.逻辑坏块 以下摘自网络并规整: 一.数据库坏块介绍 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction l ...

最新文章

  1. linux 硬链接 软链接 简介
  2. 团队项目第一阶段冲刺站立会议04
  3. java mqtt客户端_MQTT消息队列遥测传输
  4. [置顶]C#执行Excel宏模版的方法
  5. (转)结婚那天,妈问我:坐在角落里象两个要饭模样的人是谁?
  6. mysql密码高级_mysql高级操作
  7. select事件有哪些_Android 深入底层:Linux事件管理机制 epoll
  8. Wordpress空间和域名的备份
  9. BN(Batch Normalization)层原理与作用
  10. 用陆地卫星 TM6数据演算 地表温度的单窗算法
  11. 想自学一下程序员,该学些什么?
  12. 亚马逊Rating和Review的这些区别你知多少?
  13. 格律诗的基本知识【一小时学会写格律诗】
  14. 两步解决----中国大学mooc网页加载慢
  15. MicroPython-On-ESP8266——WIFI与网络
  16. 【教学类-22-01】20221207《八款字体的描字帖-2*4格横条-用订书机》(中班描字)
  17. Handler消息机制-Native层
  18. 从王庆根自杀到欧建新自杀之我见
  19. 微信蓝牙设备连接不上原因总结(5)
  20. 转-----交叉验证、留一交叉验证、自助法

热门文章

  1. 【译】Googler如何解决编程问题
  2. 嵌入式BootLoader技术内幕(二)
  3. 直面桌面云带来的现状优势
  4. CentOS忘记普通用户密码解决办法
  5. 李洪强iOS开发之FMDB线程安全的用法
  6. 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...
  7. outlook2010客户端无法预览及保存word,excel问题
  8. 解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)
  9. PLSQL_性能优化系列10_Oracle Array数据组优化
  10. C语言二维数组中的指针问题