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

检查数据库的基本状况

1.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”表示数据库运行在非归档模式下。

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

1.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”

1.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

总共四个部分。

2.1 检查操作系统日志文件

# cat /var/log/messages |grep failed

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

2.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的运行中,会在警告日志文件中记录数据库的一些运行情况 ,定时查看此文件,可以及时了解数据库运行状态是否异常。

2.3 检查 Oracle 核心转储目录

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

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

2.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所有回滚段的状态

总共六个部分。

3.1 检查控制文件状态

SQL> select status,name from v$controlfile;

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

3.2 检查在线日志文件状态

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

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

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

3.3 检查表空间的状态

SQL> select tablespace_name,status from dba_tablespaces;

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

3.4 检查所有数据文件状态

SQL> select name,status from v$datafile;

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

3.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修改filesystem,(转):oracle、filesystem、backup日常巡检脚本

    1.总脚本xunjian.code export PS1="`hostname`$"'[$PWD] ' umask 022 cd /u02/xunjian ############ ...

最新文章

  1. 使用python调用zabbix接口截取监控图并生成Word文档
  2. 评分怎么读_英国留学本科中途被退学怎么申请硕士补救
  3. 听说玩这些游戏能提升编程能力?
  4. Python虚拟机函数机制之无参调用(一)
  5. zabbix小结(一)zabbix概述
  6. 2019 fall CS224w:01-intro
  7. Linux 的简单钩子
  8. java的IO操作之--RandomAccessFile
  9. 【WP7进阶】——XNA游戏精灵的动画
  10. ES6阮一峰读书笔记第二章变量的解构赋值
  11. Hadoop HA HDFS启动错误之org.apache.hadoop.ipc.Client: Retrying connect to server问题解决
  12. CAD快速打印(批量打印)PDF/DWF/JPG/PNG\EPS/PLT:任意尺寸、纯命令
  13. 华为手机自带语音转文字的功能,转换方法如下
  14. 【网络协议】TCP和HTTP中keep alive机制
  15. 启动TomCat的流程
  16. 用级数进行对数计算,基于ln(x)求loga(b)
  17. Android: 进程保活
  18. 苹果x充电慢是什么原因_苹果手机充不进去电?为什么?什么原因?怎么解决?...
  19. 深度学习论文阅读(四):GoogLeNet《Going Deeper with Convolutions》
  20. oracle视图有索引么,Oracle 的视图与索引

热门文章

  1. error LNK1112错误: 模块计算机类型“x64”与目标计算机类型“X86”冲突
  2. Eclipse设置条件断点
  3. VLC播放器web插件接口(Part1)
  4. BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)
  5. fps 每秒刷新的频率
  6. Excel导入sqlserver
  7. C#实现(递归和非递归)快速排序和简单排序
  8. FluorineFx + Flex视频聊天室案例开发----客户端
  9. 水晶报表10 注册码
  10. leetcode 53.最大子序和