Redian新闻
>
Oracle 数据库日常巡检指令

Oracle 数据库日常巡检指令

公众号新闻

链接:https://cloud.tencent.com/developer/article/2346699

数据库的日常巡检可以说是保障系统稳定运行的基础,虽然不同的运维团队、不同的数据库,都会有适合自己的巡检体系,但是其中很多内容还是可以互相借鉴的。这篇文章《Oracle数据库日常巡检指令》给我们提供了Oracle数据库日常巡检指令,虽然只针对Oracle,但是一些巡检的方向还是值得借鉴和学习的。

Oracle数据库的日常巡检内容包括:

(1)Oracle数据库基本状况检查;

(2)Oracle相关资源的使用情况检查;

(3)Oracle数据库性能检查;

(4)数据库服务器cpu、mem和I/O性能检查;

(5)数据库服务器安全性及其他事项检查。

需要指出的是这些巡检指令不仅在巡检过程中用得上,某些故障的诊断场景中同样可以利用,还是比较通用的。


1、数据库基本状况检查

(1)数据库实例状况检查

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

(2)数据库表空间状态检查


说明:输出结果中STATUS应该都为“ONLINE”。

(3)数据库数据文件检查

select tablespace_name,status from dba_tablespaces;


说明:输出结果中“STATUS”应该都为“AVAILABLE”。

(4)数据库在线日志检查

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


说明:输出结果应该有3条或3条以上记录,“STATUS”应该为非“INVALID”,非“DELETED”。“STATUS”的值为空表示正常。

(5)数据库回滚段检查

select segment_name,status from dba_rollback_segs;


说明:输出结果中所有回滚段的“STATUS”应该为“ONLINE”。


2、数据库相关资源使用情况检查

(1)检查Oracle初始化文件中相关参数值

select resource_name,max_utilization,initial_allocation, limit_value from v$resource_limit;



说明:若字段值【LIMIT_VALU】-【MAX_UTILIZATION】<=5,则表明与RESOURCE_NAME相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件$ORACLE_BASE/admin/orcl/pfile/initORCL.ora来修改。

(2)检查数据库连接情况

select sid,serial#,username,program,machine,status from v$session;


说明:STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能需要手工进行清理。

(3)检查表空间使用情况

select f.tablespace_name,a.total,f.free,round((f.free / a.total) 100) "% Free" from (select tablespace_name, sum(bytes / (1024 1024)) total from dba_data_files group by tablespace_name) a, (select tablespace_name, round(sum(bytes / (1024 * 1024))) free from dba_free_space group by tablespace_name) f WHERE a.tablespace_name =f.tablespace_name(+) order by "% Free";


说明:如果空闲率【%Free】小于10%以上,则注意要增加数据文件来扩展表空间而不是用数据文件的自动扩展功能。

(4)检查system表空间内的内容

select distinct (owner) from dba_tables where tablespace_name = 'SYSTEM' and owner != 'SYS' and owner != 'SYSTEM' union select distinct (owner) from dba_indexes where tablespace_name = 'SYSTEM' and owner != 'SYS' and owner != 'SYSTEM';



说明:如果记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。

(5)检查一些扩展异常的对象

select Segment_Name,Segment_Type,TableSpace_Name, (Extents / Max_extents) 100 Percent From sys.DBA_Segments Where Max_Extents != 0 and (Extents / Max_extents) 100 >= 95 order By Percent;


说明:如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数。

(6)检查对象的下一扩展值与表空间的最大扩展值

select a.table_name, a.next_extent, a.tablespace_name from all_tables a, (select tablespace_name, max(bytes) as big_chunk from dba_free_space group by tablespace_name) f where f.tablespace_name = a.tablespace_name and a.next_extent > f.big_chunk union select a.index_name, a.next_extent, a.tablespace_name from all_indexes a,(select tablespace_name, max(bytes) as big_chunk from dba_free_space group by tablespace_name) f where f.tablespace_name = a.tablespace_name and a.next_extent > f.big_chunk;


说明:如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数。


3、检查Oracle数据库性能

(SQLPLUS的界面设置参数set pages 80 set lines 120 col event for a40)

(1)检查数据库的等待事件

select sid, event, p1, p2, p3, WAIT_TIME, SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';


说明:如果数据库长时间持续出现大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read等等待事件时,需要对其进行分析,可能存在问题的语句。

(2)等待时间最多的5个系统等待事件

SELECT FROM (SELECT FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%' ORDER BY TOTAL_WAITS DESC) WHERE ROWNUM <= 5;


(3)查找前十条性能差的sql

SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS, SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC) WHERE ROWNUM < 10;


(4)Disk Read最高的SQL语句的获取

SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) WHERE ROWNUM <= 5;


(5)检查死锁及处理

select sid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,o.object_id from dba_objects o, vlockedobjectl,vsession s where o.object_id = l.object_id and s.sid = l.session_id;



4、数据库服务器CPU、MEM、I/O性能

(1)CPU查询指令 top

(2)内存查询指令 free -m

(3)I/O查询指令 iostat -k 1 3

(4)系统负载情况查询指令 uptime

(5)僵尸进程查询指令

select spid from vprocesswhereaddrnotin(selectpaddrfromvsession);


(6)日志缓冲区查询指令

select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');


说明:如果【redo buffer allocation retries】/【redo entries】的值超过1%,则需要增大log_buffer。


5、数据库服务器安全检查

(1)系统安全日志检查

检查登录成功日志的查询指令为 # grep -i accepted /var/log/secure

检查登录失败日志的查询指令为 # grep -i inval /var/log/secure &&grep -i failed /var/log/secure

(2)crontab任务检查

Oracle Job是否有失败任务的查询

select job,what,last_date,next_date,failures,broken from dba_jobs Where schema_user='system';


(3)检查失效的索引

select index_name, table_name, tablespace_name, status From dba_indexes Where owner = 'system' And status <> 'VALID';


说明:分区表上的索引status为空是正常的,如有失效索引则对该索引做rebuild。其指令为

alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604215

Linux技术交流群:2636170

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
公司被报道归类为“传统数据库”企业,科创板IPO人到中年,最怕体检指标异常产品经理该不该设计数据库表?单一数据库拆分成几十个数据库的意义Cell:新发两篇应用CPTAC公开数据库的研究,中国医生科学家正在全力挖矿Timescale 推出无服务器数据库的替代方案,Dynamic PostgreSQLNucleic Acids Research | 德州学院“山东省生物物理重点实验室”发布EVLncRNAs数据库最新研究成果流云的告白《 爵 》加州多面向数据库收到首批数据今年向量数据库“杀疯了”,但纯向量数据库“凉”了?| 盘点一个简单的数据库,竟然发表了这么多SCI论文!大数据分析揭示张向阳教授的分析策略硬核观察 #1146 decat:跳上键盘的猫咪清除了数据库大家有朋友是做IT行业的销售吗 (e.g. Oracle, Dell, SAP, HP)?这个职业怎么样呢?求科普11月必看!“新世界三大男高音”Juan Diego Flórez首次亮相澳洲!没必要非得固守纯向量数据库!专访亚马逊云科技数据库负责人一百三十五 揭盘重磅 |《开源数据库生态发展研究报告》发布 GreatSQL为MySQL5.7最佳替代方案!国产时序数据库 Apache IoTDB 在海外排行榜位列第一,各性能领先 1- 97 倍!AutoGPT 宣布不再使用向量数据库!向量数据库是小题大作的方案?国家数据局局长刘烈宏:让数据放心“供”出来 让更多数据“活”起来 让数据安全“动”起来慢的不是 Ruby,而是你的数据库国产数据库,计算性能太强了!OceanBase数据库炸场!具备OLTP完整核心功能,实验室版本不输ClickHouse早报 | 奢侈品行业第三季度收入平均增幅将放缓至5%;优衣库日本9月同店销售额下跌;Prada将为NASA开发下一代月球宇航服国家数据局等17部门“数据要素×”新政:支持数据商上市融资!亿万数据市场来了?注意!EACL, NAACL, ACL 2024只接收ARR系统投稿(附时间表)没数据、没基础,如何挖掘 NHANES 数据库发表 SCI?中国自己的数据库CHARLS,2020年数据刚刚更新、开放使用;这里是大数据分析我不是虎妈—另类哈佛妈妈与女儿一起长大(二)神经病!!国产数据库为什么要兼容Oracle??新加坡理工学院搭建AI实验室,或将研发巡检机器人谣传易鲸捷的数据库是套牌的Oracle。。。对机器学习感兴趣?不如先来实践一下!|《基于机器学习的智能机器狗巡检系统》弃用 MySQL 后存储成本降低 85%,携程业务系统数据库升级技术实践流云的告白
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。