Oracle巡检手册.docx

上传人:b****1 文档编号:2592446 上传时间:2023-05-04 格式:DOCX 页数:31 大小:31.24KB
下载 相关 举报
Oracle巡检手册.docx_第1页
第1页 / 共31页
Oracle巡检手册.docx_第2页
第2页 / 共31页
Oracle巡检手册.docx_第3页
第3页 / 共31页
Oracle巡检手册.docx_第4页
第4页 / 共31页
Oracle巡检手册.docx_第5页
第5页 / 共31页
Oracle巡检手册.docx_第6页
第6页 / 共31页
Oracle巡检手册.docx_第7页
第7页 / 共31页
Oracle巡检手册.docx_第8页
第8页 / 共31页
Oracle巡检手册.docx_第9页
第9页 / 共31页
Oracle巡检手册.docx_第10页
第10页 / 共31页
Oracle巡检手册.docx_第11页
第11页 / 共31页
Oracle巡检手册.docx_第12页
第12页 / 共31页
Oracle巡检手册.docx_第13页
第13页 / 共31页
Oracle巡检手册.docx_第14页
第14页 / 共31页
Oracle巡检手册.docx_第15页
第15页 / 共31页
Oracle巡检手册.docx_第16页
第16页 / 共31页
Oracle巡检手册.docx_第17页
第17页 / 共31页
Oracle巡检手册.docx_第18页
第18页 / 共31页
Oracle巡检手册.docx_第19页
第19页 / 共31页
Oracle巡检手册.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle巡检手册.docx

《Oracle巡检手册.docx》由会员分享,可在线阅读,更多相关《Oracle巡检手册.docx(31页珍藏版)》请在冰点文库上搜索。

Oracle巡检手册.docx

Oracle巡检手册

密级:

编号:

 

Oracle

巡检手册

日期:

编写:

核对:

更新:

 

目录

1.检查数据库基本状况4

1.1.检查Oracle实例状态4

1.2.检查Oracle服务进程4

1.3.检查Oracle监听状态5

2.检查系统和oracle日志文件6

2.1.检查操作系统日志文件6

2.2.检查oracle日志文件6

2.3.检查Oracle核心转储目录7

2.4.检查Root用户和Oracle用户的email7

3.检查Oracle对象状态7

3.1.检查Oracle控制文件状态7

3.2.检查Oracle在线日志状态8

3.3.检查Oracle表空间的状态8

3.4.检查Oracle所有数据文件状态8

3.5.检查无效对象9

3.6.检查所有回滚段状态10

4.检查Oracle相关资源的使用情况10

4.1.检查Oracle初始化文件中相关参数值10

4.2.检查数据库连接情况11

4.3.检查系统磁盘空间12

4.4.检查表空间使用情况12

4.5.检查一些扩展异常的对象13

4.6.检查system表空间内的内容14

4.7.检查对象的下一扩展与表空间的最大扩展值14

5.检查Oracle数据库备份结果14

5.1.检查数据库备份日志信息15

5.2.检查backup卷中文件产生的时间15

5.3.检查oracle用户的email15

6.检查Oracle数据库性能15

6.1.检查数据库的等待事件15

6.2.DiskRead最高的SQL语句的获取15

6.3.查找前十条性能差的sql16

6.4.等待时间最多的5个系统等待事件的获取16

6.5.检查运行很久的SQL16

6.6.检查消耗CPU最高的进程16

6.7.检查碎片程度高的表17

6.8.检查表空间的I/O比例17

6.9.检查文件系统的I/O比例17

6.10.检查死锁及处理17

6.11.检查数据库cpu、I/O、内存性能18

6.12.查看是否有僵死进程19

6.13.检查行链接/迁移19

6.14.定期做统计分析19

6.15.检查缓冲区命中率20

6.16.检查共享池命中率20

6.17.检查排序区20

6.18.检查日志缓冲区21

7.检查数据库安全性21

7.1.检查系统安全日志信息21

7.2.检查用户修改密码21

8.其他检查22

8.1.检查当前crontab任务是否正常22

8.2.OracleJob是否有失败22

8.3.监控数据量的增长情况22

8.4.检查失效的索引23

8.5.检查不起作用的约束23

8.6.检查无效的trigger23

 

巡检内容

1.检查数据库基本状况

在本节中主要对数据库的基本状况进行检查,其中包含:

检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。

1.1.检查Oracle实例状态 

SQL>selectinstance_name,host_name,startup_time,status,database_statusfromv$instance;

INSTANCE_NAMEHOST_NAMESTARTUP_TIMESTATUSDATABASE_STATUS

---------------------------------------------------------------------------------

CKDBAS142009-5-79:

3OPENACTIVE

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

SQL>selectname,log_mode,open_modefromv$database;

NAMELOG_MODEOPEN_MODE

--------------------------------------

CKDBARCHIVELOGREADWRITE

其中“LOG_MODE”表示Oracle当前的归档方式。

“ARCHIVELOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。

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

1.2.检查Oracle服务进程

$ps-ef|grepora_|grep-vgrep&&ps-ef|grepora_|grep-vgrep|wc–l

oracle296010May07?

00:

01:

02ora_pmon_CKDB

oracle296210May07?

00:

00:

22ora_psp0_CKDB

oracle296410May07?

00:

00:

00ora_mman_CKDB

oracle296610May07?

00:

03:

20ora_dbw0_CKDB

oracle296810May07?

00:

04:

29ora_lgwr_CKDB

oracle297010May07?

00:

10:

31ora_ckpt_CKDB

oracle297210May07?

00:

03:

45ora_smon_CKDB

oracle297410May07?

00:

00:

00ora_reco_CKDB

oracle297610May07?

00:

01:

24ora_cjq0_CKDB

oracle297810May07?

00:

06:

17ora_mmon_CKDB

oracle298010May07?

00:

07:

26ora_mmnl_CKDB

oracle298210May07?

00:

00:

00ora_d000_CKDB

oracle298410May07?

00:

00:

00ora_s000_CKDB

oracle299410May07?

00:

00:

28ora_arc0_CKDB

oracle299610May07?

00:

00:

29ora_arc1_CKDB

oracle300010May07?

00:

00:

00ora_qmnc_CKDB

oracle362510May07?

00:

01:

40ora_q000_CKDB

oracle3159410Jul20?

00:

00:

00ora_q003_CKDB

oracle238021005:

09?

00:

00:

33ora_j000_CKDB

19

在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:

.Oracle写数据文件的进程,输出显示为:

“ora_dbw0_CKDB”

.Oracle写日志文件的进程,输出显示为:

“ora_lgwr_CKDB”

.Oracle监听实例状态的进程,输出显示为:

“ora_smon_CKDB”

.Oracle监听客户端连接进程状态的进程,输出显示为:

“ora_pmon_CKDB”

.Oracle进行归档的进程,输出显示为:

“ora_arc0_CKDB”

.Oracle进行检查点的进程,输出显示为:

“ora_ckpt_CKDB”

.Oracle进行恢复的进程,输出显示为:

“ora_reco_CKDB”

1.3.检查Oracle监听状态

/home/oracle>lsnrctlstatus

LSNRCTLforLinux:

Version10.2.0.2.0-Productionon23-JUL-200914:

11:

53

Copyright(c)1991,2005,Oracle.Allrightsreserved.

Connectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUSoftheLISTENER

------------------------

AliasLISTENER

VersionTNSLSNRforLinux:

Version10.2.0.2.0-Production

StartDate07-MAY-200909:

35:

52

Uptime77days4hr.36min.0sec

TraceLeveloff

SecurityON:

LocalOSAuthentication

SNMPOFF

ListenerParameterFile/data/oracle/product/10.2.0/network/admin/listener.ora

ListenerLogFile/data/oracle/product/10.2.0/network/log/listener.log

ListeningEndpointsSummary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=AS14)(PORT=1521)))

ServicesSummary...

Service"CKDB"has1instance(s).

Instance"CKDB",statusREADY,has1handler(s)forthisservice...

Service"CKDBXDB"has1instance(s).

Instance"CKDB",statusREADY,has1handler(s)forthisservice...

Service"CKDB_XPT"has1instance(s).

Instance"CKDB",statusREADY,has1handler(s)forthisservice...

Thecommandcompletedsuccessfully

“ServicesSummary”项表示Oracle的监听进程正在监听哪些数据库实例,输出显示中至少应该有“CKDB”这一项。

检查监听进程是否存在:

[oracle@AS14~]$ps-ef|greplsn|grep-vgrep

oracle295410May07?

00:

01:

17/data/oracle/product/10.2.0/bin/tnslsnrLISTENER–inherit

2.检查系统和oracle日志文件

在本节主要检查相关的日志文件,包含:

检查操作系统的日志文件,检查Oracle日志文件,检查Oracle核心转储目录,检查Root用户和Oracle用户的email,总共四个部分。

2.1.检查操作系统日志文件

#cat/var/log/messages|grepfailed

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

2.2.检查oracle日志文件

[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|grepora-

[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|greperr

[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|grepfail

Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:

数据库的启动、关闭,启动时的非缺省参数;数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;对数据库进行的某些操作,如创建或删除表空间、增加数据文件;数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600)等。

定期检查日志文件,根据日志中发现的问题及时进行处理:

问题

处理

启动参数不对

检查初始化参数文件

因为检查点操作或归档操作没有完成造成重做日志不能切换

如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;

有人XX删除了表空间

检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限

出现坏块

检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建

表空间不够

增加数据文件到相应的表空间

出现ORA-600

根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁

Listener日志:

$ORACLE_HOME/network/log

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–n200/var/mail/root

#tail–n200/var/mail/oracle

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

3.检查Oracle对象状态

在本节主要检查相关Oracle对象的状态,包含:

检查Oracle控制文件状态,检查Oracle在线日志状态,检查Oracle表空间的状态,检查Oracle所有数据文件状态,检查Oracle所有表、索引、存储过程、触发器、包等对象的状态,检查Oracle所有回滚段的状态,总共六个部分。

3.1.检查Oracle控制文件状态

SQL>selectstatus,namefromv$controlfile;

STATUSNAME

---------------------------------------------------------------------------------------

/data/oradata/CKDB/control01.ctl

/data/oradata/CKDB/control02.ctl

/data/oradata/CKDB/control03.ctl

输出结果应该有3条以上(包含3条)的记录,“STATUS”应该为空。

状态为空表示控制文件状态正常。

3.2.检查Oracle在线日志状态

SQL>selectgroup#,status,type,memberfromv$logfile;

GROUP#STATUSTYPEMEMBER

-----------------------------------

3ONLINE/data/oradata/CKDB/redo03.log

2ONLINE/data/oradata/CKDB/redo02.log

1ONLINE/data/oradata/CKDB/redo01.log

4ONLINE/data/oradata/CKDB/redo04.log

5ONLINE/data/oradata/CKDB/redo05.log

6ONLINE/data/oradata/CKDB/redo06.log

6rowsselected

输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。

注:

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

3.3.检查Oracle表空间的状态

SQL>selecttablespace_name,statusfromdba_tablespaces;

TABLESPACE_NAMESTATUS

---------------------------------------

SYSTEMONLINE

UNDOTBS1ONLINE

SYSAUXONLINE

TEMPONLINE

USERSONLINE

SJ1ONLINE

ADM_INDEXONLINE

HOME_DATAONLINE

HOME_INDEXONLINE

PHOTO_DATAONLINE

PHOTO_INDEXONLINE

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

3.4.检查Oracle所有数据文件状态

SQL>selectname,statusfromv$datafile;

NAMESTATUS

---------------------------------------------------------

/data/oradata/CKDB/system01.dbfSYSTEM

/data/oradata/CKDB/undotbs01.dbfONLINE

/data/oradata/CKDB/sysaux01.dbfONLINE

/data/oradata/CKDB/users01.dbfONLINE

/data/oradata/CKDB/sj.dbfONLINE

/data/oradata/CKDB/HOME_DATA1.dbfONLINE

/data/oradata/CKDB/HOME_INDEX1.dbfONLINE

/data/oradata/CKDB/PHOTO_DATA1.dbfONLINE

/data/oradata/CKDB/PHOTO_INDEX1.dbfONLINE

/data/oradata/CKDB/BLOG_DATA1.dbfONLINE

/data/oradata/CKDB/BLOG_INDEX1.dbfONLINE

/data/oradata/CKDB/AUDIO_DATA1.dbfONLINE

/data/oradata/CKDB/AUDIO_INDEX1.dbfONLINE

/data/oradata/CKDB/VIDEO_DATA1.dbfONLINE

/data/oradata/CKDB/VIDEO_INDEX1.dbfONLINE

/data/oradata/CKDB/SYS_DATA1.dbfONLINE

/data/oradata/CKDB/SYS_INDEX1.dbfONLINE

/data/oradata/CKDB/ADM_DATA1.dbfONLINE

/data/oradata/CKDB/ADM_INDEX1.dbfONLINE

/data/oradata/CKDB/perfstat.dbfONLINE

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

或者:

SQL>selectfile_name,statusfromdba_data_files;

FILE_NAMESTATUS

------------------------------------------------------

/data/oradata/CKDB/users01.dbfAVAILABLE

/data/oradata/CKDB/sysaux01.dbfAVAILABLE

/data/oradata/CKDB/undotbs01.dbfAVAILABLE

/data/oradata/CKDB/system01.dbfAVAILABLE

/data/oradata/CKDB/sj.dbfAVAILABLE

/data/oradata/CKDB/perfstat.dbfAVAILABLE

/data/oradata/CKDB/HOME_DATA1.dbfAVAILABLE

/data/oradata/CKDB/HOME_INDEX1.dbfAVAILABLE

/data/oradata/CKDB/PHOTO_DATA1.dbfAVAILABLE

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

3.5.检查无效对象

sql>selectowner,object_name,object_typefromdba_objectswherestatus!

='VALID'andowner!

='SYS'andowner!

='SYSTEM';

norowsselected

如果有记录返回,则说明存在无效对象。

若这些对象与应用相关,那么需要重新编译生成这个对象,或者:

SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus='INVALID';

3.6.检查所有回滚段状态

SQL>selectsegment_name,statusfromdba_rollback_segs;

SEGMENT_NAMESTATUS

----------------------------------------------

SYSTEMONLINE

_SYSSMU1$ONLINE

_SYSSMU2$ONLINE

_SYSSMU3$ONLINE

_SYSSMU4$ONLINE

_SYSSMU5$ONLINE

_SYSSMU6$ONLINE

_SYSSMU7$ONLINE

_SYSSMU8$ONLINE

_SYSSMU9$ONLINE

_SYSSMU10$ONLINE

11rowsselected

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

4.检查Oracle相关资源的使用情况

在本节主要检查Oracle相关资源的使用情况,包含:

检查Oracle初始化文件中相关的参数值,检查数据库连接情况,检查系统磁盘空间,检查Oracle各个表空间使用情况,检查一些扩展异常的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值,总共七个部分。

4.1.检查Oracle初始化文件中相关参数值

SQL>selectresource_name,max_utilization,initial_allocation,

limit_valuefromv$resource_limit;

RESOURCE_NAMEMAX_UTILIZATIONINITIAL_ALLOCATLIMIT_VALUE

-----------------------------------------------------------------

processes16

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2