Oracle数据库管理员应按如下方式对Oracle数据库系统做定期监控
()每天 对Oracle数据库的运行状态日志文件备份情况数据库的空间使用情况系统资源的使用情况进行检查发现并解决问题
()每周 对数据库对象的空间扩展情况数据的增长情况进行监控对数据库做健康检查对数据库对象的状态做检查
()每月 对表和索引等进行Analyze检查表空间碎片寻找数据库性能调整的机会进行数据库性能调整提出下一步空间管理计划对ORACLE数据库状态进行一次全面检查
每天的工作
()确认所有的INSTANCE状态正常登陆到所有数据库或例程检测ORACLE后台进程: $ps –ef|grep ora
()检查数据文件的状态记录状态不是online的数据文件并做恢复
Selectfile_namestatus
fromdba_data_files
wherestatus=UNAVAILABLE;
()检查日志文件和trace文件记录alert和trace文件中的错误
连接到每个需管理的系统
使用telnet
对每个数据库cd到bdump目录通常是$ORACLE_BASE//bdump
使用Unixtail命令来查看alert_log文件
如果发现任何新的ORA错误记录并解决
()检查数据库当日备份的有效性
对RMAN备份方式: 检查第三方备份工具的备份日志以确定备份是否成功
对EXPORT备份方式: 检查exp日志文件以确定备份是否成功
对其他备份方式: 检查相应的日志文件
()检查文件系统的使用(剩余空间)如果文件系统的剩余空间小于%需删除不用的文件以释放空间
$df–k
()检查表空间的使用情况
SELECTtablespace_namemax_mcount_blocksfree_blk_cntsum_free_mto_char(*sum_free_m/sum_m)||%ASpct_free
FROM(SELECTtablespace_namesum(bytes)//ASsum_m
FROMdba_data_files
GROUPBYtablespace_name)
(SELECTtablespace_nameASfs_ts_namemax(bytes)//ASmax_mcount(blocks)AScount_blockssum(bytes//)ASsum_free_m
FROMdba_free_space
GROUPBYtablespace_name)
WHEREtablespace_name=fs_ts_name;
()检查剩余表空间
SELECTtablespace_namesum(blocks)asfree_blktrunc(sum(bytes)/(*))asfree_m
max(bytes)/()asbig_chunk_kcount(*)asnum_chunks
FROMdba_free_space
GROUPBYtablespace_name;
()监控数据库性能
运行bstat/estat生成系统报告或者使用statspack收集统计数据
()检查数据库性能记录数据库的cpu使用IObuffer命中率等等
使用vmstatiostatglancetop等命令
()日常出现问题的处理
每周的工作
()监控数据库对象的空间扩展情况
根据本周每天的检查情况找到空间扩展很快的数据库对象并采取相应的措施
删除历史数据
扩表空间
alter tablespace add datafile size
调整数据对象的存储参数
nextextent
pct_increase
()监控数据量的增长情况
根据本周每天的检查情况找到记录数量增长很快的数据库对象并采取相应的措施
删除历史数据
扩表空间
altertablespaceadddatafilesize
()系统健康检查
检查以下内容:
initora
controlfile
redologfile
archiving
sortareasize
tablespace(systemtemporarytablespacefragment)
datafiles(autoextendlocation)
object(numberofextentnextextentindex)
rollbacksegment
logging&tracing(alertlogmax_dump_file_sizesqlnet)
()检查无效的数据库对象
colownerfora
colobject_namefora
SELECTownerobject_nameobject_type
FROMdba_objects
WHEREstatus=INVALID;
()检查不起作用的约束
SELECTownerconstraint_nametable_nameconstraint_typestatus
FROMdba_constraints
WHEREstatus=DISABLEDANDconstraint_type=P;
()检查无效的trigger
SELECTownertrigger_nametable_namestatus
FROMdba_triggers
WHEREstatus=DISABLED;
每月的工作
() Analyze Tables/Indexes/Cluster
analyzetableestimatestatisticssamplepercent;
()检查表空间碎片
根据本月每周的检查分析数据库碎片情况找到相应的解决方法;
()寻找数据库性能调整的机会
比较每天对数据库性能的监控报告确定是否有必要对数据库性能进行调整;
()数据库性能调整
如有必要进行性能调整;
()提出下一步空间管理计划
根据每周的监控提出空间管理的改进方法;