版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级:保密
OraclelOg数据库
日常维护手册
目录
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在线日志状态7
3.3.检查ORACLE表空间的状态8
3.4.检查ORACLE全部数据文件状态8
3.5.检查无效对象9
3.6.检查全部回滚段状态9
4.检查ORACLE相关资源的运用状况10
4.1.检行ORACLE初始化文件中相关参数值10
4.2.检查数据库连接状况11
4.3.检查系统磁盘空间12
4.4.检查表空间运用状况12
4.5.检查一些扩展异样的对象13
4.6.检查SYSTEM表空间内的内容13
4.7.检查对象的下一扩展与表空间的最大扩展值14
5.检查ORACLE数据库备份结果14
5.1.检查数据库备份日志信息14
5.2.检查BACKUP卷中文件产生的时间15
5.3.检查ORACLE用户的EMAIL15
6.检查ORACLE数据库性能15
6.1.检查数据库的等待事务15
6.2.DISKREAD最高的SQL语句的获得15
6.3.查找前十条性能差的SQL15
6.4.等待时间最多的5个系统等待事务的获得16
6.5.检查运行很久的SQL16
6.6.检查消耗CPU最高的进程16
6.7.检查碎片程度高的表16
6.8.检查表空间的I/O比例17
6.9.检查文件系统的I/O比例17
6.10.检查死锁及处理17
6.11.检查数据库CPU、I/O、内存性能17
6.12.查看是否有僵死进程19
6.13.检查行链接/迁移19
6.14.定期做统计分析19
6.15.检查缓冲区命中率19
6.16.检查共享池命中率20
6.17.检查排序区20
6.18.检查日志缓冲区20
7.检查数据库平安性21
7.1.检查系统平安日志信息21
7.2.检查用户修改密码21
8.其他检查21
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_m(xlefromv$database;
NAMELOG.MODEOPEN.MODE
CKDBARCHIVELOGREADWRITE
其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”表示数据库运行在归档模
式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。在我们的系统中数据库必需运
行在归档方式下。
1.2.检查Oracle服务进程
$ps-eflgrepora_|grep-vgrep&&ps-ef|grepora_|grep-vgreplwc-1
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_arcO_CKDB
oracle299610May07?00:00:29ora_arcl_CKDB
oracle300010May07?00:00:00ora_qmnc_CKDB
oracle362510MayU7?00:UI:40ora_q000_CKDB
oracle3159410Jul20?00:00:00ora_q003_CKDB
oracle238021005:09?00:00:33oraJ000_CKDB
19
在检查Oracle的进程吩咐输出后,输出显示至少应包括以下一些进程:
.Oracle写数据文件的进程,输出显示为:“ora_dbwO_CKDB”
.Oracle写日志文件的进程,输出显示为:“ora」gwr_CKDB”
.Oracle监听实例状态的进程,输出显示为:“ora_smon_CKDB”
.Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_CKDB”
.Oracle进行归档的进程,输出显示为:“ora_arcO_CKDB”
.Oracle进行检查点的进程,输出显示为:<4ora_ckpt_CKDBM
.Oracle进行复原的进程,输出显示为:“ora_reco_CKDB”
1.3.检查Oracle监听状态
/home/oracle>lsnrctlstatus
LSNRCTLforLinux:Version.2.0-Productionon23-JUL-202414:11:53
Copyright(c)1991,2023,Oracle.Allrightsreserved.
Connectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUSoftheLISTENER
AliasLISTENER
VersionTNSLSNRforLinux:Version.2.0-Production
StartDate07-MAY-202409:35:52
Uptime77days4hr.36min.0sec
TraceLeveloff
SecurityON:LocalOSAuthentication
SNMPOFF
ListenerParameterFile/data/oracle/product//network/admin/listener.ora
ListenerLogFile/data/oracle/product//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"has1instancc(s).
Instance"CKDB",statusREADY,has1handler(s)forthisservice...
Service"CKDB_XPTnhas1instance(s).
Instance"CKDB",statusREADY,has1handler(s)forthisservice...
Thecommandcompletedsuccessfully
ServicesSummary”项表示Oracle的监听进程正在监听哪些数据库实例,输出显示中至少应
当有“CKDB”这一项。
检查监听进件是否存在:
loracle@AS14~J$ps-eflgreplsn|grep-vgrep
oracle295410May07?00:01:17/data/oracle/produci//bin/tnslsnr
LISTENER-inherit
2.检查系统和oracle日志文件
在本节主要检查相关的日志文件,包含:检查操作系统的日志文件,检查Oracle日志
文件,检查Oracle核心转储书目,检查Root用户和Oracle用户的email,总共四个部分。
2.1.检查操作系统日志文件
#cat/var/log/messagesIgrepfailed
查看是否有与Oracle用户相关的出错信息。
2.2.检查oracle日志文件
[oracle@AS!4~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgrepora
loracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgreperr
[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgrepfail
Oracle在运行过程中,会在警告日志文件(alerl_SID.log)中记录数据库的一些运行状况:数据
库的启动、关闭,启动时的非缺省参数;数据库的重做日志切换状况,记录每次切换的时间,
及假如因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的缘由;
对数据库进行的某些操作,如创建或删除表空间、增加数据文件:数据库发生的错误,如表
空间不够、出现坏块、数据库内部错误(ORA—600)等。定期检查日志文件,依据日志中发
觉的问题刚好进行处理:
问题处理
启动参数不对检查初始化参数文件
因为检查点操作或归档操作没有完成造假如常常发生这样的状况,可以考虑增加重做日
成重做日志不能切换志文件组:想方法提高检查点或归档操作的效率;
有人未经授权删除了表空间检查数据库的平安问题,是否密码太简洁;如有
必要,撤消某些用户的系统权限
出现坏块检查是否是硬件问题(如磁盘本生有坏块),假如不
是,检查是那个数据库对象出现了坏块,对这个
对象进行重建
表空间不够增加数据文件到相应的表空间
出现ORA-600依据日志文件的内容查看相应的TRC文件,假如
是Oracle的bug,要刚好打上相应的补丁
Listener日志:SORACLE-HOMRnetwork/log
2.3.检查Oracle核心转储书目
$ls$ORACLE_BASE/admin/CKDB/cdump/*.trc|wc-1
$ls$ORACLE_BASE/admin/CKDB/udump/*.trc|wc-1
假如上面吩咐的结果每天都在增长,则说明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,namefromvScontrolfile;
STATUSNAME
/data/oradata/CKDB/controlOl.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.1og
1ONLINE/data/oradata/CKDB/rcdoOl.log
4ONLINE/data/oradala/CKDBZredo04.log
5ONLINE/data/oradata/CKDB/redo05.log
6ONLINE/da(a/oradala/CKDB/redo06.1og
6rowsselected
输出结果应当有3条以上(包含3条)记录,“STATUS”应当为非“INVALID”,非“DELETED”。
注:“STATUS”显示为空表示正常。
3.3.检查Oracle表空间的状态
SQL>selecttablespace_name,statusfromdba_tablespaces;
TABLESPACE_NAMESTATUS
SYSTEMONLINE
UNDOTBS1ONLINE
SYSAUXONLINE
TEMPONLINE
USERSONLINE
SJ1ONLINE
ADMJNDEXONLINE
HOME_DATAONLINE
HOME_INDEXONLINE
PHOTO_DATAONLINE
PHOTO.INDEXONLINE
ooooooo
输出结果中STATUS应当都为ONLINE。
3.4.检查Oracle全部数据文件状态
SQL>selectname,statusfromv$datafile;
NAMESTATUS
/data/oradata/CKDB/systemOI.dbfSYSTEM
/data/oradata/CKDB/undotbsOl.dbfONLINE
/data/oradata/CKDB/sysauxOI.dbfONLINE
/data/oradata/CKDB/usersOl.dbfONLINE
/data/oradata/CKDB/sj.dbfONLINE
/data/oradata/CKDB/HOME_DATAl.dbfONLINE
/data/oradata/CKDB/HOME_INDEXI.dbfONLINE
/data/oradata/CKDB/PHOTO_DATAl.dbfONLINE
/data/oradata/CKDB/PHOTOJNDEXl.dbfONLINE
/data/orada(a/CKDB/BLOG_DAlAl.dbfONLINE
/data/oradata/CKDB/BLOG_INDEXl.dbfONLINE
/data/oradata/CKDB/AUDIO_DATAl.dbfONLINE
/data/oradata/CKDB/AUDIO_INDEXl.dbfONLINE
/data/oradata/CKDB/VIDEO_DATAl.dbfONLINE
/data/oradata/CKDBA^IDEOJNDEXl.dbfONLINE
/data/oradata/CKDB/SYS_DATAl.dbfONLINE
/data/orada(a/CKDB/SYS_INDEXl.dbfONLINE
/data/oradata/CKDB/ADM_DATAl.dbfONLINE
/data/orada(a/CKDB/ADMJNDEX1.dbfONLINE
/data/oradata/CKDB/pcrfstat.dbfONLINE
输出结果中“STATUS”应当都为“ONLINE”。或者:
SQL>selectfile_name,statusfromdba_data_files;
FILE_NAMESTATUS
/da(a/orada(a/CKDB/users01.dbfAVAILABLE
/data/oradata/CKDB/sysauxO1.dbfAVAILABLE
/data/oradata/CKDB/undotbsOl.dbfAVAILABLE
/data/oradata/CKDB/systemO1.dbfAVAILABLE
/data/oradata/CKDB/sj.dbfAVAILABLE
/data/oradata/CKDB/perfstat.dbfAVAILABLE
/data/oradata/CKDB/HOME_DATAl.dbfAVAILABLE
/data/oradata/CKDB/HOME_INDEXl.dbfAVAILABLE
/data/oradata/CKDB/PHOTO_DATAl.dbfAVAILABLE
输出结果中“STATUS”应当都为“AVAILABLE”。
3.5.检查无效对象
sql>selectowner,objcct_namc,object_typcfromdba_objectswherestatus!=*VALID'and
owner!='SYS'andowner!='SYSTEM,;
norowsselected
假如有记录返回,则说明存在无效对象。若这些对象与应用相关,那么须要重新编译生成这
个对象,或者:
SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus='INVALID';
3.6.检查全部回滚段状态
SQL>selectsegment_name,statusfromdba_rol1back_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_valucfromv$rcsource_limit;
RESOURCE_NAMEMAX_UTILIZATIONINITIAL_ALLOCATLIMIT_VALUE
processes162500500
sessions168555555
enqueuejock/p>
enqueue_resources1112660UNLIMITED
ges_procs000
ges_ress00UNLIMITED
ges_locks00UNLIMITED
ges_cache_ress00UNLIMITED
ges_reg_msgs00UNLIMITED
ges_big_msgs00UNLIMITED
ges_rsv_msgs000
gcs_resources000
gcs_shadows000
dml_Iocks762440UNLIMITED
temporary_table_locks26UNLIMITEDUNLIMITED
transactions13610UNLIMITED
branches0610UNLIMITED
cmtcallbk3610UNLIMITED
sort_segment_locks5UNLIMITEDUNLIMITED
max_rollback_segments1161065535
RESOURCE_NAMEMAX_UTILIZATIONINITIAL_ALLOCATLIMIT_VALUE
max_shared_servers1UNLIMITEDUNLIMITED
parallel_max_servers16803600
22rowsselected
若LIMIT_VALU-MAX_UTILIZATI0N<=5,则表明与RESOURCE_NAME相关的Oracle初
始化参数须要调整。可以通过修改Oracle初始化参数文件
$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora来修改。
4.2.检查数据库连接状况
查看当前会话连接数,是否属于正常范围。
SQL>selectcount(*)fromv$session;
COUNT(*)
29
selectsid,serial#,usemame,program,machine,statusfromvSsession;
SIDSERIAL#USERNAMEPROGRAMMACHINESTATUS
13oracle@xz15saledb(PMON)xzl5saledbACTIVE
23oracle@xz15saledb(DBW0)xz15saledbACTIVE
33oracle@xz15saledb(DBW1)xzl5saledbACTIVE
43oracle@xz15saledb(LGWR)xzl5saledbACTIVE
53oracle@xz15saledb(CKPT)xz!5saledbACTIVE
63oraclc@xz15salcdb(SMON)xzl5salcdbACTIVE
73oracle@xz15saledb(RECO)xzl5saledbACTIVE
81oracle@xzl5saledb(CJQO)xz!5saledbACTIVE
93oracle@xz15saledb(ARCO)xzl5saledbACTIVE
103oracle@xzl5saledb(ARC1)xzl5saledbACTIVE
1111319ZKAccPrtlnv_svr@xz15tuxedo2(TNSVI-V3)xz15tuxedo2
INACTIVE
1348876ZGupload@xz15saleap(TNSV1-V3)xzl5saleap
INACTIVE
1720405ZKAccCreateRpt(cDxz15tuxedo1(TNSV1-V3)xzI5tuxedol
INACTIVE
2012895ZKOweScanSvr@xzl5billdb(TNSVI-V3)xz15billdb
INACTIVE
其中:SID会话(session)的ID号;
SERIAL#会话的序列号,和SID一起用来唯一标识一个会话;
USERNAME建立该会话的用户名;
PROGRAM这个会话是用什么工具连接到数据库的;
STATUS当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当
前会话没有执行任何操作;
假如建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能须要手工
进行清理。假如DBA要手工断开某个会话,则执行:(一般不建议运用这种方式去杀掉数
据库的连接,这样有时候session不会断开。简洁引起死连接。建议通过sid查到操作系统
的spid,运用ps-eflgrepspidno的方式确认spid不是ORACLE的后台进程。运用操作系统的
kill-9吩咐杀掉连接L
altersystemkillsession'SID,SERIAL#';
留意:上例中SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这
些会话进行任何操作。
4.3.检查系统磁盘空间
假如文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。
[oraclc@AS14~]$df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda59.7G3.9G5.4G42%/
/dev/sdal479M16M438M4%/boot
/dev/sda249G19G28G41%/data
none1014M01014M0%/dev/shm
4.4.检查表空间运用状况
SQL>selectf.tablespace_name,a.total,f.free,round((f.free/a.total)*100)"%Free"
from
(selecttablespace_name,sum(bytes/(1024*1024))totalfromdba_data_filesgroupby
tablespace_name)a,
(selecttablespace_name,round(sum(bytes/(1024*1024)))freefromdba_free_spacegroupby
tablespace_namc)f
WHEREa.tablespace_name=f.tablespace_name(+)
orderby"%Free";
TABLESPACE_NAMETOTALFREE%Free
OPERATION_DATA180054730
WAEWEB_DA1A1003636
OPERATIONJNDEX50018637
SYSTEM102451550
SYSAUX102453452
SALE8_TEMP1006262
SJ150034870
PERFSTAT50035671
HOME_DATA1007777
SYSJNDEX100100100
VIDEOJNDEX100100100
VIDEO_DATA100100100
BLOGDATA100100100
39rowsselected
假如空闲率%Free小于10%以上:包含10%),则留意要增加数据文件来扩展表空间而不要
是用数据文件的自动扩展功能。靖不要对表空间增加过多的数据文件,增加数据文件的原则
是每个数据文件大小为2G或者4G,自动扩展的最大限制在8G。
4.5.检查一些扩展异样的对象
sql>selectSegment_Name,Segment_Type,TableSpace_Name,
(Extents/Max_extents)*100Percent
Fromsys.DBA_Segments
WhereMax_Extents!=0and(Extents/Max_extents)*100>=95
orderByPercent;
norowsselected
假如有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修
改它的存储结构参数。
4.6.检查system表空间内的内容
selectdistinct(owner)fromdba_tables
wheretablespace_name-SYSTEM'and
ownerl^SYS,andowner!='SYSTEM'
union
selectdistinct(owner)fromdba_indexes
wheretablcspacc_namc-SYSTEM'and
owner!='SYS'andowner!='SYSTEM,;
norowsselected
假如记录返回,则表明system表空间内存在一些非system和sys用户的对象。应当进一步
检查这些对象是否与我们应用相关。假如相关请把这些对象移到非System表空间,同时应
当检查这些对象属主的缺省表空间值。
4.7.检查对象的下一扩展与表空间的最大扩展值
sql>selecta.table_name,a.next_extent,a.tablespace_name
fromall_tablesa,
(selecttablespace_name,max(bytes)asbig_chunk
fromdba_free_space
groupbytablespace_name)f
wheref.tablespace_name=a.tablespace_name
anda.next_extent>f.big_chunk
union
selecta.indexname,a.nextextent,a.tablespacename
fromall_indexesa,
(selecttablespace_name,max(bytes)asbig_chunk
fromdba_free_space
groupbytablespace_name)f
wheref.tablespace_name=a.tablespace_name
anda.next_extent>f.big_chunk;
norowsselected
假如有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调
整相应表空间的存储参数。
5.检查Oracle数据库备份结果
在本节主要检查Oracle数据库备份结果,包含:检瓷数据库备份日志信息、,检查backup
卷中文件产生的时间,检查oracle用户的email,总共三个部分。
5.1.检查数据库备份日志信息
假设:备份的临时书目为/backup/hotbakup,我们须要检查2009年7月22日的备份结果,
则用下面的吩咐来检查二
#catZbackup/hotbackup/hotbackup-09-7-22.1og|grep-ierror
备份脚本的日志文件为hotbackup•月份•日期•年份.log,在备份的临时书目下面。假如文件中
存在“ERROR:",则表明备份没有胜利,存在问题须要检查。
5.2.检查backup卷中文件产生的时间
#ls-It/backup/hotbackup
backup卷是备份的临时书目,查看输出结果中文件的日期,都应当是在当天凌晨由热备份
脚本产生的。假如时间不对则表明热备份脚本没执行胜利。
5.3.检查oracle用户的email
#tail-n300Zvar/mail/oracle
热备份脚本是通过Oracle用户的cron去执行的。cron执行完后操作系统就会发一条Email
通知Oracle用户任务已经完成。查看Oracleemail中今口凌晨部分有无ORA-,Error,Failed
等出错信息,假如有则表明备份不正常。
6.检查Oracle数据库性能
在本节主要检查Oracle数据库性能状况,包含:检查数据库的等待事务,检查死锁及
处理,检查cpu、I/O、内存性能,查看是否有僵死进程,检查行链接/迁移,定期做统计分
析,检查缓冲区命中率,检查共享池命中率,检查排序区,检查日志缓冲区,总共十个部分。
6.1.检查数据库的等待事务
setpages80
setlines120
coleventfora40
selectsid,event,pl,p2,p3,WAIT_TIME,SECONDS_IN_WAITfromv$session_waitwhereevent
notlike'SQL%'andeventnotlike'rdbms%';
假如数据库长时间持续出现大量像latchfree,enqueue,bufferbusywaits,dbfilesequential
read,dbfilescatteredread等等待事务时,须要对其进行分析,可能存在问题的语句。
6.2.DiskRead最高的SQL语句的获得
SQL>SELECTSQL_TEXTFROM(SELECT*FROMV$SQLAREAORDERBY
DISK_READS)
WHERER0WNUM<=5desc;
6.3.查找前十条性能差的sql
SELECT*FROM(SELECTPARSING_USERJD
EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,
SQL_TEXTFROMV$SQLAREAORDERBYDISK_READSDESC)
WHEREROWNUM<IO;
6.4.等待时间最多的5个系统等待事务的获得
SELECT*FROM(SELECT*FROMV$SYSTEM_EVENTWHEREEVENTNOTLIKE
'SQL%'ORDERBYTOTAL_WAITSDESC)WHERER0WNUM<=5;
6.5.检查运行很久的SQL
COLUMNUSERNAMEFORMATA12
COLUMNOPNAMEFORMATA16
COLUMNPROGRESSFORMATA8
SELECTUSERNAME,SID,OPNAME,ROUND(SOFAR*100/TOTALWORK,0)||'%'AS
PROGRESS,TIME_REMAINING,SQL_TEXTFROMV$SESSION_LONGOPS,V$SQL
WHERETIME_REMAINING<>0ANDSQL_ADDRESS=ADDRESSAND
SQL_HASH_VALUE=HASH-VALUE;
6.6.检查消耗CPU最高的进程
SETLINE240
SETVERIFYOFF
COLUMNSIDFORMAT999
COLUMNPIDFORMAT999
COLUMNS_#FORMAT999
COLUMNUSERNAMEFORMATA9HEADING"ORAUSER”
COLUMNPROGRAMFORMATA29
COLUMNSQLFORMATA60
COLUMNOSNAMEFORMATA9HEADING"OSUSER"
SELECTP.PIDPID,S-SIDSID,P.SPIDSPID,SUSERNAMEUSERNAME,S-OSUSER
OSNAME,P.SERIAL#S_#,P.TERMINAL,RPROGRAM
PROGRAM,P.BACKGROUND,S.STATUS.RTRIM(SUBSTR(A.SQL_TEXT,1,80))SQLFROM
V$PROCESSP,V$SESSIONS,V$SQLAREAAWHEREP.ADDR=S.PADDRAND
S.SQL_ADDRESS=A.ADDRESS(+)ANDP.SPIDLIKE'%&1%';
6.7.检查碎片程度高的表
SQL>SELECTsegment_nametable_name,COUNT(*)extentsFROMdba_segmentsWHERE
ownerNOTIN('SYS','SYSTEM')GROUPBYsegment_nameHAVINGCOUNT(*)=(SELECT
MAX(COUNT(*))FROMdba_segmentsGROUPBYsegment_name);
6.8.检查表空间的I/O比例
SQL>SELECTDF.TABLESPACE_NAMENAME,DF.FILE_NAME"FILE",EPHYRDSPYR,
F.PHYBLKRDPBR,F.PHYWRTSPYW,F.PHYBLKWRTPBWFROMV$FILESTATF,
DBA_DATA_FILESDFWHEREF.FILE#=DF.HLEJDORDERBY
DETABLESPACE-NAME;
6.9.检查文件系统的I/O比例
SQL>SELECTSUBSTR(A.FILE#,1,2)SUBSTR(A.NAME,l,30)"NAME”,
A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTSFROMV$DATAHLEA,V$FILESTATB
WHEREA.FILE#=B.HLE#;
6.10.检查死锁及处理
更蟠螃对零信息:
colsidfor999999
colusernamefbralO
colschemanamefbralO
colosuserfbral6
colmachinefbral6
colterminalfbra20
colownerfbralO
colobject_namcfora30
colobject_lypefbralO
selectsid,serial#,username,SCHEMANAME,osuser,MACHINE,
terminal,PROGRAM,owner,object_name,object_type,o.object_id
fromdba_objectso,v$locked_objectl,v$sessions
whereo.object_id=l.object_idands.sid=l.session_id;
oracle级kill掉该session:
altersystemkillsession'&sid,&serial#';
操作系统级kill掉session:
#>kill-9pid
6.11.检查数据库cpu、I/O、内存性能
记录数据库的cpu运用、IO、内存等运用状况,运用vmslai,iosial,sar,top等吩咐进行信
息收集并检查这些信息,推断资源运用状况。
1.CPU运用状况:
[root@sale8-]#lop
top-10:29:35up73days,19:54,1user,loadaverage:0.37,0.38,0.29
Tasks:353total,2running,351sleeping,0stopped,0zombie
Cpu(s):1.2%us,U.l%sy,0.U%ni,98.«%id,0.0%wa,U.U%hi,0.0%si
Mem:16404472ktotal,12887428kused,3517044kfree,60796kbuffers
Swap:8385920ktotal,665576kused,7720344kfree,10358384kcached
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
30495oracle1508329m866m861mR105.47:53.90oracle
32501oracle1508328m1.7g1.7gS210.61:58.38oracle
32503oracle1508329m1.6g1.6gS210.22:06.62oracle
留意上面的蓝色字体部分,此部分内容表示系统剩余的epu,当其平均值下降至10%以下的
时视为CPU运用率异样,需记录下该数值,并将状态记为异样。
2.内存运用状况:
#free-m
totalusedsharedbufferscached
Mem:202619580761556
-/+buffers/cache:3261700
Swap:5992925900
如上所示,蓝色部分表示系统总内存,红色部分表示系统运用的内存,黄色部分表示系统剩
余内存,当剩余内存低于总内存的10%时视为异样。
3.系统I/O状况:
#iostat-k13
Linux-22.ELsmp(AS14)07/29/2009
avg-cpu:%user%nice%sys%iowait%idle
0.160.000.050.3699.43
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda3.3313.1650.2594483478360665804
avg-cpu:%user%nice%sys%iowait%idle
0.000.000.000.00100.00
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda0.000.000.0000
如上所示,蓝色字体部分表示磁盘读写状况,红色字体部分为epu10等待状况。
4.系统负载状况:
#uptime
12:08:37up162days,23:33,15users,loadaverage:0.01,0.15,0.10
如上所示;蓝体字部分表示系统负载,后面的3个数值假如有高于2.5的时候就表明系统在
超负荷运转了,并将此值记录到巡检表,视为异样。
6.12.查看是否有僵死进程
selectspidfromv$processwhereaddrnotin(selectpaddrfromv$session);
有些僵尸进程有堵塞其他业务的正常运行,定期杀掉僵尸进程。
6.13.检查行链接/迁移
Sql>selecttable_name,num_rows,chain_cntFromdba_tablesWhereowner='CTAIS2'And
chain_cnt<>0;
注:含有10ngraw列的表有行链接是正常的,找到迁移行保存到chainedjows表中,如没有该
表执行../rdbms/admin/utlchain.sql
Sql>analyzetabletablenamelistchainedrows;
可通过表chained_rows中lable_name,head_rowid看出哪些行是迁移行
$D:Sql>createtableaaasselecta.*fromsb_zsxxa,chained_rowsbwherea.rowid=b.head_rowid
and='SB_ZSXX';
sql>deletefrom
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 筛粉工岗位竞赛考核试卷含答案
- 液晶显示器件模组制造工安全文明能力考核试卷含答案
- 人工智能算法测试员发展趋势水平考核试卷含答案
- 巧克力成型工岗中绩效目标考核试卷含答案
- 2027届广东省深圳百合外国语学校数学八上期末检测模拟试题含解析
- 2026年工业设计师制造工艺试题及答案
- 2026年展览展示设计展览展示策划师资格考试试题及答案
- 福建省福州十九中学2027届数学八年级第一学期期末质量跟踪监视模拟试题含解析
- 房屋租赁的合同范本(30篇)
- 诚信国旗下演讲(29篇)
- 克隆动物养殖行业市场供需现状及价值投资规划
- 2026年蜜雪冰城加盟考试题及答案
- 锅炉联锁试验卡
- 小学生保护眼睛健康讲座课件
- 致盲性眼病科普
- 驾驶人员技能培训课件
- 2025年中职(动漫与游戏制作)二维动画制作试题及答案
- 亮剑的团队精神
- 儿童电除颤教学课件
- 东北林业大学《生物科学专业英语》2023-2024学年第二学期期末试卷
- 建筑物拆除工程合同模板
评论
0/150
提交评论