或者
通过SQL〉showparameteruser_dump_dest参数查看其存放位置;
Listener日志:
$ORACLE_HOME/network/log
查看数据库连接信息
定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。
同时,对一些“挂死”的连接,可能需要手工进行清理.
以下的SQL语句列出当前数据库建立的会话情况:
Selectcount(*)fromv$session;――查看当前会话连接数
selectsid,serial#,username,program,machine,statusfromv$session;
SIDSERIAL#USERNAMEPROGRAMMACHINESTATUS
————-—-—-—--—-—-—————-—---———-————————————--————---—————-——————--—-——-——--
13oracle@xz15saledb(PMON)xz15saledbACTIVE
23oracle@xz15saledb(DBW0)xz15saledbACTIVE
33oracle@xz15saledb(DBW1)xz15saledbACTIVE
43oracle@xz15saledb(LGWR)xz15saledbACTIVE
53oracle@xz15saledb(CKPT)xz15saledbACTIVE
63oracle@xz15saledb(SMON)xz15saledbACTIVE
73oracle@xz15saledb(RECO)xz15saledbACTIVE
81oracle@xz15saledb(CJQ0)xz15saledbACTIVE
93oracle@xz15saledb(ARC0)xz15saledbACTIVE
103oracle@xz15saledb(ARC1)xz15saledbACTIVE
1111319ZKAccPrtInv_svr@xz15tuxedo2(TNSV1-V3)xz15tuxedo2INACTIVE
1348876ZGupload@xz15saleap(TNSV1—V3)xz15saleapINACTIVE
1720405ZKAccCreateRpt@xz15tuxedo1(TNSV1—V3)xz15tuxedo1INACTIVE
2012895ZKOweScanSvr@xz15billdb(TNSV1—V3)xz15billdbINACTIVE
其中,
SID会话(session)的ID号;
SERIAL#会话的序列号,和SID一起用来唯一标识一个会话;
USERNAME建立该会话的用户名;
PROGRAM这个会话是用什么工具连接到数据库的;
STATUS当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;
如果DBA要手工断开某个会话,则执行:
(一般不建议使用这种方式去杀掉数据库的连接,这样有时候session不会断开.容易引起死连接。
建议通过sid查到操作系统的spid,使用ps–ef|grepspidno的方式确认spid不是ORACLE的后台进程。
使用操作系统的kill-9命令杀掉连接)
altersystemkillsession'SID,SERIAL#';
注意:
上例中SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。
检查数据库当日备份的有效性。
对RMAN备份方式:
检查第三方备份工具的备份日志以确定备份是否成功
对EXPORT备份方式:
检查exp日志文件以确定备份是否成功
对其他备份方式:
检查相应的日志文件
检查数据文件的状态
SQL>selectfile_name,statusfromdba_data_files;
SQL〉selectcount(*)fromdba_data_files;
SQL〉selectcount(*)fromdba_data_fileswherestatus='AVAILABLE’;
如果数据文件的STATUS列不是AVAILABLE,那么就要采取相应的措施,如对该数据文件进行恢复操作,或重建该数据文件所在的表空间.
检查表空间的使用情况
select
f。
tablespace_name,
a.total,
f。
free,
round((f。
free/a.total)*100)"%Free”
from
(selecttablespace_name,sum(bytes/(1024*1024))totalfromdba_data_filesgroupbytablespace_name)a,
(selecttablespace_name,round(sum(bytes/(1024*1024)))freefromdba_free_spacegroupbytablespace_name)f
WHEREa。
tablespace_name=f.tablespace_name(+)
orderby"%Free"
检查数据库的等待事件
setpages80
setlines120
coleventfora40
selectsid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAITfromv$session_waitwhereeventnotlike'SQL%’andeventnotlike’rdbms%'
如果数据库长时间持续出现大量像latchfree,enqueue,bufferbusywaits,dbfilesequentialread,dbfilescatteredread等等待事件时,需要对其进行分析,可能存在问题的语句。
锁表问题的处理
查询目前锁对象信息,更细节的锁处理方式请查看工作中长用脚本
colsidfor999999
colusernamefora10
colschemanamefora10
colosuserfora16
colmachinefora16
colterminalfora20
colownerfora10
colobject_namefora30
colobject_typefora10
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;
解锁处理:
altersystemkillsession’&sid,&serial#’;
检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等
使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。
查看是否有僵死进程
selectspidfromv$processwhereaddrnotin(selectpaddrfromv$session);
有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程
每周的工作
监控数据量的增长情况
根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施
-—-删除历史数据
规定数据库中至少保留6个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释放其所占的资源空间。
--—扩表空间
altertablespace〈tablespace_name>adddatafile‘〈file〉'size〈size〉autoextendoff;
注意:
在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是:
执行SQL语句:
alterdatabasebackupcontrolfileto’/home/backup/control。
bak’;
或:
alterdatabasebackupcontrolfiletotrace;
这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的SQL命令.
检查无效的数据库对象
SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus=’INVALID’;
检查不起作用的约束
SELECTowner,constraint_name,table_name,constraint_type,status
FROMdba_constraints
WHEREstatus=’DISABLE'andconstraint_type='P’;
检查无效的trigger
SELECTowner,trigger_name,table_name,statusFROMdba_triggersWHEREstatus='DISABLED’;
检查数据库定时作业的完成情况
如果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查:
selectjob,log_user,last_date,failures
fromdba_jobs;
如果FAILURES列是一个大于0的数的话,说明JOB运行失败,要进一步的检查。
每月的工作
寻找数据库性能调整的机会
使用statspack收集统计数据,比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整
数据库性能调整
如有必要,进行性能调整
提出下一步空间管理计划
根据每周的监控,提出空间管理的改进方法
每季度的工作
附录