转至:https://blog.51cto.com/sf1314/2123068

select inst_id,status,count(*) from gv$session group by inst_id,status order by status;

$ORACLE_HOME\rdbms\admin\spreport.sql

Oracle数据库巡检

一、操作系统检查

1.操作系统资源使用情况top/topas/iostat/vmstat 重点关注CPU/内存/交换的使用情况

2.操作系统空间使用情况df -h/-g      重点关注数据库目录空间(du -sh *)(du -sm *)

3.操作系统告警日志

HP: cat /var/adm/syslog/syslog.log

AIX:errpt | more

LINUX: cat /var/log/messages

SUN:cat /var/log/messages

Windows:事件查看器,查看事件内容

4.uptime查看操作系统是否有重启过特别是rac如有重启重点检查grid的alert日志查明原因

二、集群检查

1.检查集群状态crs_stat -t

2.检查集群中数据库的状态crsctl status res -t

3.检查service状态(grid:lsnrctl status),如都飘在一个检点上需要reload到对应节点(srvctl -h)

srvctl relocate service -d <db_unique_name> -s <service_name> {-i <old_inst_name> -t <new_inst_name> | -c <current_node> -n <target_node>} [-f]

4.检查集群alert日志  10g:$CRS_HOME/log/{hostname}/alert{hostname}.log11g:$ORACLE_HOME/log/{hostname}/alert{hostname}.log

5.ASM磁盘空间是否正常

select name,total_mb,free_mb from v$asm_diskgroup;

6.检查磁盘状态

select name,path,STATE,MODE_STATUS from v$asm_disk;

三、数据库检查

1.重点表空间使用情况确保使用率在85%以内

2.资源使用情况select * from v$resource_limit;(set linesize 300;set pagesize 300;)

3.闪回使用情况

select flashback_on from v$database;

查询视图v$recovery_file_dest视图来了解其位置和最大的大小

select * from v$recovery_file_dest;

使用v$flash_recovery_area_usage确定闪回恢复区中的文件使用明细

select * from v$flash_recovery_area_usage;

4.11g的新客户检查新特性是否关闭

是否开启审计show parameter audit_trail   (db 开   none 关)

如开启询问是否有特许需求可以关闭

alter system set audit_trail=none scope=spfile sid='*';

truncate table sys.aud$;

select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 MB from dba_segments where SEGMENT_TYPE='TABLE' and SEGMENT_NAME='AUD$';

5.清理监听日志             (win: > listener.log    server 2008 R2 : echo " " > log.xml)

10g及10g以前:$ORACLE_HOME/network/log

11g以后:$ORACLE_BASE/diag/tnslsnr/{hostname}/listener/trace

lsnrctl status查看监听日志目录

10g: $ORACLE_HOME/network/admin/log/    11g:/oracle/gridbase/diag/tnslsnr/s1-11g/listener/alert/log.xml

LSNRCTL> set

LSNRCTL> set current_listener LISTENER

Current Listener is LISTENER

LSNRCTL> set log_status off

LSNRCTL> set log_status on

LSNRCTL> exit

11g LISTENER_SCAN1

LSNRCTL> set current_listener LISTENER_SCAN1

6.检查数据库告警日志

10g以前:$ORACLE_BASE/admin/{SID}/bdump

D:\ORACLE\PRODUCT\10.2.0\ADMIN\{SID}\BDUMP

11g:$ORACLE_BASE/diag/rdbms/{DB_NAME}/{SID}/trace

7.查看数据库等待事件

--查看整体数据库的等待事件情况

select event,count(*) from gv$session_wait where wait_class<>'Idle' group by event;

8.收集awr报告

(1)获取AWR报告

SQL>@ /rdbms/admin/awrrpt.sql     (退出sqlplus即可看到AWR报告)

询问客户高峰期时间点,截取1-2小时的报告

四、备份检查

1.确定是否存在逻辑或物理备份并查看备份情况(需检查备份日志)

2.如存在dbra或dg需检查同步情况

切日志,查看备库是否应用正常

select THREAD#,max(sequence#) from v$archived_log group by thread#;  主机

select THREAD#,max(sequence#) from v$archived_log where applied='YES' group by thread#;  备库

select THREAD#,max(sequence#) from v$archived_log group by thread#;  备库

备机空间检查

3.ogg同步情况检查

[oracle@localhost odc12]$ ps -ef | grep mgr

oracle    8492     1  0 Mar17          00:02:29 ./mgr PARAMFILE /odc12/dirprm/mgr.prm REPORTFILE /odc12/dirrpt/MGR.rpt PROCESSID MGR USESUBDIRS

oracle   26085     1  0 Mar22          00:00:15 ./mgr PARAMFILE /odc/dirprm/mgr.prm REPORTFILE /odc/dirrpt/MGR.rpt PROCESSID MGR PORT 7809

cd /odc12

./ggsci

info all

ggserr.log

五、跑巡检脚本

六、信息收集打包

1.操作系统日志

2.集群alert日志      grid用户(/oracle/grid/crs_1($ORACLE_HOME)/log/zjrac1)

3.数据库alert日志

4.巡检脚本输出内容

mkdir

表空间检查

set feed off

set linesize 100

set pagesize 200

column "USED (MB)" format a10

column "FREE (MB)" format a10

column "TOTAL (MB)" format a10

column PER_FREE format a10

--spool tablespace.alert

SELECT F.TABLESPACE_NAME,

TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB)",

TO_CHAR (F.FREE_SPACE, '999,999') "FREE (MB)",

TO_CHAR (T.TOTAL_SPACE, '999,999') "TOTAL (MB)",

TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),'999')||' %' PER_FREE,

TO_CHAR (T.MAX_SPACE,'999,999') "MAXEXTEND (MB)"

FROM (

SELECT TABLESPACE_NAME,

ROUND (SUM (BLOCKS*(SELECT VALUE/1024

FROM V$PARAMETER

WHERE NAME = 'db_block_size')/1024)

) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME

) F,

(

SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES/1048576)) TOTAL_SPACE,

ROUND (SUM (MAXBYTES/1048576)) MAX_SPACE

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME

) T

WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME

order by PER_FREE asc;

表空间:

select tpsname,status,mgr,maxsize,c_userd,max_used from (

SELECT  d.tablespace_name  tpsname,d.status status,

d.segment_space_management mgr, d.contents type,

TO_CHAR(NVL(trunc(A.maxbytes / 1024 / 1024), 0),'99G999G990') maxsize,

TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0),'990D00') c_userd,

TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.maxbytes * 100, 0),'990D00') max_used

FROM sys.dba_tablespaces d,

(SELECT tablespace_name,sum(bytes) bytes,SUM(case autoextensible when  'NO'  then BYTES when  'YES' then MAXBYTES else null end ) maxbytes   FROM dba_data_files  GROUP BY tablespace_name) a,

(SELECT tablespace_name,SUM(bytes) bytes, MAX(bytes) largest_free   FROM dba_free_space   GROUP BY tablespace_name) f

WHERE d.tablespace_name = a.tablespace_name   AND d.tablespace_name = f.tablespace_name(+)

)

where max_used>80

order by max_used desc;

其它:

SQL> select file_name,bytes/1024/1024,maxbytes/1024/1024,AUTOEXTENSIBLE from dba_data_files;

Oracle数据库巡检的更多相关文章

  1. Oracle - 数据库巡检脚本

    分享一个oracle数据库巡检脚本,欢迎大家使用,希望大家在用的过程中发现脚本中的错误并提出改进意见. -- 数据库巡检脚本 -- 版本号2.1 -- 该脚本仅对数据库的做一个初步的巡检,具体的优化方 ...

  2. 【风哥干货】快速解决Oracle数据库故障必备的20个脚本与命令

    1.操作系统性能(通常故障出现时最先检查的内容)top.topas.vmstat.iostat.free.nmon 2.万能重启方法 如应急情况,需要重启数据库:tail -100f <对应路径 ...

  3. Oracle 数据库日常巡检

    1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...

  4. 小麦苗数据库巡检脚本,支持Oracle、MySQL、SQL Server和PG等数据库

    目录 一.巡检脚本简介 二.巡检脚本特点 三.巡检结果展示 1.Oracle数据库 2.MySQL数据库 3.SQL Server数据库 4.PG数据库 5.OS信息 四.脚本运行方式 1.Oracl ...

  5. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  6. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  7. oracle 日常巡检

    1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...

  8. Oracle数据库入门到高薪培训教程(从Oracle 11g 到 Oracle 19c)

    一.Oracle数据库入门到高薪培训视频教程(从 Oracle11g 到 Oracle19c) 本套Oracle视频教程学习地址: https://edu.51cto.com/course/18034 ...

  9. 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?

    从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...

随机推荐

  1. condition_variable中的和wait_once和notify_one及notify_all实例代码

    // ConsoleApplication6.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include<thread> #in ...

  2. golang中的25个关键字

    Go 语言中会使用到的 25 个关键字或保留字: 1. 程序声明 import 导入 package 包 2. 程序实体声明和定义 chan 通道 var 变量声明 const 常量声明 func 用 ...

  3. kubernetes之kubeadm 安装kubernetes 高可用集群

    1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G ...

  4. 009 Linux 文件大小统计与排序( du于df和sort)

    @ 目录 01 du 与 df 作用与区别? du(disk usage) df(disk free) 02 du 常用命令示例 03 sort 常用参数 04 常用组合 du + sort + he ...

  5. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  6. 如何在 pyqt 中解决国际化 tr() 函数不起作用的问题

    前言 有些时候我们在父类中使用了 self.tr('XXX'),使用 Qt Linguist 完成翻译并导出 qm 文件后,发现子类中仍然是英文原文.比如下面这段代码: class AlbumCard ...

  7. String Reversal

    Educational Codeforces Round 96 (Rated for Div. 2) - E. String Reversal 跳转链接 题目描述 定义一个操作为交换字符串中相邻的两个 ...

  8. Openfeign与Ribbon

    Ribbon和OpenFeign我个人为其实算是两个东西,Ribbon侧重于做服务调用时的负载均衡,而OpenFeign侧重于面向接口进行服务调用. 在只引入Ribbon依赖的时候,可以使用restT ...

  9. socket在php作用

    PHP 使用Berkley的socket库来创建它的连接.你可以知道socket只不过是一个数据结构.你使用这个socket数据结构去开始一个客户端和服务器之间的会话.这个服务器是一直在监听准备产生一 ...

  10. 赠送4本《 PHP 程序员面试笔试宝典》

    < PHP 程序员面试笔试宝典>历时一年,由机械工业出版社出版,在 2018 年 11 月问世.全书共八个章节,涉及 面试笔试经验技巧.PHP 基础知识.PHP 进阶知识,PHP 面向对象 ...