Oracle数据库巡检
转至: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数据库巡检的更多相关文章
- Oracle - 数据库巡检脚本
分享一个oracle数据库巡检脚本,欢迎大家使用,希望大家在用的过程中发现脚本中的错误并提出改进意见. -- 数据库巡检脚本 -- 版本号2.1 -- 该脚本仅对数据库的做一个初步的巡检,具体的优化方 ...
- 【风哥干货】快速解决Oracle数据库故障必备的20个脚本与命令
1.操作系统性能(通常故障出现时最先检查的内容)top.topas.vmstat.iostat.free.nmon 2.万能重启方法 如应急情况,需要重启数据库:tail -100f <对应路径 ...
- Oracle 数据库日常巡检
1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...
- 小麦苗数据库巡检脚本,支持Oracle、MySQL、SQL Server和PG等数据库
目录 一.巡检脚本简介 二.巡检脚本特点 三.巡检结果展示 1.Oracle数据库 2.MySQL数据库 3.SQL Server数据库 4.PG数据库 5.OS信息 四.脚本运行方式 1.Oracl ...
- 使用Oracle官方巡检工具ORAchk巡检数据库
ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- oracle 日常巡检
1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...
- Oracle数据库入门到高薪培训教程(从Oracle 11g 到 Oracle 19c)
一.Oracle数据库入门到高薪培训视频教程(从 Oracle11g 到 Oracle19c) 本套Oracle视频教程学习地址: https://edu.51cto.com/course/18034 ...
- 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?
从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...
随机推荐
- 深入了解promise
1. Promise基础 什么是回调地狱? 当使用回调函数来进行事件处理的时候,如果嵌套多层回调函数的时候,就会出现回调地狱,例如: method1(function(err, result) { i ...
- 30分钟使用Docsify+Github Pages搭建个人博客
前言 现如今网上有许多完善的博客平台,如博客园.掘金.思否.知乎等.有人会说为什么现在网上有这么多成熟的博客平台,你还要浪费时间搭建一个自己的博客平台呢?首先我相信每一个程序员都会想要拥有一个属于自己 ...
- 推荐召回--基于内容的召回:Content Based
目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...
- Git配置用户信息和SSH免密
一.配置用户信息 1.查看配置信息 # 查看所有配置 $ git config -l/--list # 查看系统配置 $ git config --system -l/--list # 查看用户配置 ...
- 013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单(chmod、chgrp、chown)
目录 01 一图详解「ls -l」 02 两种符号区分表示文件和目录 03 三种访问权限及表示 04 四种符号表示文件所属者用户 05 三个变更文件所属者及修改所属者权限的命令 06 工作实践命令举例 ...
- 从服务端生成Excel电子表格(GcExcel + SpreadJS)
在服务端生成Excel电子表格,除了使用 Node.js + SpreadJS 外,葡萄城官方推荐使用 SpreadJS + GcExcel.该方案不仅能够解决批量绑定数据源并导出Excel.批量修改 ...
- SqlServer基础语法
历史 有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server. 1989年 Ashton-Tate/Microsoft SQL Serv ...
- rabbitmq-direct(直接交换模式)
生产者和消费者,具有相同的交换机名称(Exchange).交换机类型和相同的密匙(routingKey),那么消费者即可成功获取到消息.(PS:相对比只要交换机名称即可接收到消息的广播模式(fanou ...
- 【Github资源大汇总】 - 王朋
1.Github-iOS备忘 (国人总结的上百个Github上的开发框架和完整App) http://github.ibireme.com/github/list/ios/ 2.不少优秀的 iOS, ...
- 通过Python自带模块SimpleHTTPServer快速共享服务的配置文件
简介 SimpleHTTPServer是Python 2自带的一个模块,是Python的Web服务器,简单小巧,快速启动. 它在Python 3已经合并到http.server模块中. SimpleH ...