如何高效进行Oracle巡检?顺序方法缺一不可
mhr18 2024-09-20 20:56 28 浏览 0 评论
本文出自头条号老王谈运维,转载请说明出处。
前言
对于线上的业务,Oracle 的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行“体检”,数据库巡检是保障数据库稳定运行的必不可少的辅助手段。
本文将简要介绍一下从哪些方面对 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
如果有记录返回,则说明存在无效对象。若这些对象与应用相关,那么需要重新编译生成这个对象。
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
私信小编“联盟”,即可加入我们~
相关推荐
- Springboot数据访问(整合动态数据源)
-
Springboot整合动态数据源dynamic-datasource-spring-boot-starter基本概念这个依赖是MyBatis-Plus团队开发的动态数据源组件,它是一个基于Spri...
- 《有手就会写sql》-第1章 数据库(sql实时更新同表里某个字段的数据)
-
为啥要用数据库存放数据的方式,有很多种,常用的比如:excel,数据库等。有了excel,为啥还要用数据库呢?原因有很多。其中之一:excel存储的数据有限的,最多能存个几千万条。但一个银行的交易数据...
- DBdoctor:一款企业级数据库性能诊断工具
-
DBdoctor是一个全面覆盖开发、测试、运维等各个环节SQL审核以及数据库性能诊断与优化的监控平台。针对数据库性能诊断门槛高、耗时长的问题,DBdoctor提供了快速易用的解决方案,深入到数...
- 面试必问:MySQL死锁 是什么,如何解决?(史上最全)
-
MySQL死锁接触少,但面试又经常被问到怎么办?最近有小伙伴在面试的时候,被问了MySQL死锁,如何解决?虽然也回答出来了,但是不够全面体系化,所以,小北给大家做一下系统化、体系化的梳理,帮助大家在面...
- JAVA入门教程-第1章 概述(java入门篇)
-
大道至简-JAVA入门教程在本教程中,你将学习Java语言的基础知识。Java基础内容涵盖:Java基础概念、Java词法结构、Java数组、Java流程控制、Java字符串、Java...
- 突发消息!微软停止俄罗斯业务(微软停止服务怎么办)
-
越来越多的IT公司加入封杀俄罗斯的阵营中。数字化转型网先后关注的有(点击下方蓝字可打开文章):SAP停止俄罗斯所有业务乌克兰呼吁SAP、Oracle封杀俄罗斯,Oracle已停止在俄所有业务埃森哲停止...
- 分布式数据库设计——存储引擎原理(全)
-
摘要数据库的一个首要目标是可靠并高效地管理数据,以供人们使用。进而不同的应用可以使用相同的数据库来共享它们的数据。数据库的出现使人们放弃了为每个独立的应用开发数据存储的想法,同时,随着数据库广泛的使用...
- Java运行环境配置(java运行环境配置成功截图)
-
若要在计算机上运行Java程序,需要配置Java运行环境(JRE)或Java开发工具包(JDK)。以下是在Windows操作系统上配置Java运行环境的步骤:下载Java安装程序:前往Oracle官方...
- 分布式任务调度Celery(分布式任务调度平台)
-
本文介绍了分布式任务调度系统Celery,包括安装,开发使用,并且配合supervisor,flower等工具进行系统化部署和使用。(一)安装和代码开发使用示例一,简介Celery是一个分布式任务调度...
- Android SDK 安装与配置(android sdk安装在哪里)
-
AndroidSDK安装与配置全流程指南一、前期准备与环境要求1.系统兼容性验证o操作系统:支持Windows10/11(64位)、macOS10.14+、Ubuntu16.04+等主流...
- 高性能Linux服务器构建实战:运维监控、性能调优与集群应用
-
百万级字迹详解实战案例,篇幅因素故只展现pdf目录,完整解析获取方式在篇尾了!目录读者对象Web应用篇(1至第3章)数据备份恢复篇(4至第6章)网络存储应用篇(7和第8章)运维监控与性能优化篇(9和第...
- Vmware虚拟机迁移数据库时踩过的坑
-
从Vmware迁移数据库虚拟机到其他平台,起来后认不到asm盘,不禁傻眼了。很多时候为了保证虚拟机系统的完整可启动,在做任何变更前,领导都会要求克隆一份镜像保存,或者直接在镜像上操作。这是传统的备份理...
- Java 中 java.util.Date 与 java.sql.Date 有什么区别?
-
Java里的java.util.Date和java.sql.Date绝对是那种看起来不起眼但能搞得你Debug到半夜的“坑王”。我们先从表面上看,java.sql.Date是继承自j...
- 主流数据库的不同点在哪?MySQL和SQL Server的区别介绍
-
在本教程中,树懒君介绍了两种最普遍应用的RDBMS—MySQL和MicrosoftSQLServer。通过介绍MySQL和SQLServer的几个关键区别,希望大家能在这两者之间做出最适合自己的...
- Java安全-Java Vuls(Fastjson、Weblogic漏洞复现)
-
复现几个Java的漏洞,文章会分多篇这是第一篇,文章会分组件和中间件两个角度进行漏洞复现复现使用环境VulhubVulFocus组件Fastjson1.2.24反序列化RCEFastJson...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)