貌似事情很多,但是真心不错,让你提前先了解DBA需要做的事情,提前做好准备,下面跟你讲讲 ㈠ 每天的工作 ① 检查 alert.log ② 环境确认 ● 数据库实例是否正常工作 ▼ ps –ef|grep ora_ ▼ select status fromv$instance ● 监听器是否正常工作 ▼ lsnrctl status ● 表空间是否出故障 ▼ selecttablespace_name,status from dba_tablespace; ● 控制文件、日志文件是否正常 ▼ v$controlfile ▼ v$log、v$logfile ③ 性能监测 ● 按业务峰值情况,对数据库性能数据进行定时采集 ● 检查数据库的主要性能指标 ● 检查最消耗资源的SQL语句变化情况 ● 检查是否有足够的资源、主要注意以下: ▼ 所有表空间的剩余空间情况 ▼ 识别出一些异常的增长 ▼ 检查CPU、内存、网络、存储等是否异常 ④ 定时任务的检查 每天检查晚间定时执行脚本 ● 备份脚本日志 ● 统计信息采集脚本日志 ● 定时数据抽取/转换/装载脚本 ● 日志文件整理脚本 ⑤ 坚持每天看Oracle 官方文档一个小时 -_-# ㈡ 每周的工作 ① 空间使用分析 ● 监测数据量总体增长情况 ● 按表空间分析使用率增长情况 ● 表空间碎片整理 =>alter tablespace [table]
coalesce; ● 各segment的数据碎片、chained row/migrate row等问题 根据具体情况制定相应的策略,同时也及时发现潜在的问题 ② 索引碎片分析 ● 监测索引的碎片情况,根据情况制定索引的重建频率以提高索引使用效率 => analyze index invalidatestructure => selectname,del_lf_rows_len,lf_rows_len,(del_lf_rows_len/lf_rows_len)*100 fromindex_stats 索引碎片率(%) = (被删除的索引长度/索引总长)*100 => alter index <索引名> rebuild => alter index <索引名> coalesce ● 监测索引的使用情况,根据使用情况,删除未使用的索引,并添加能提高查询和处理性能的索引 => alter index <索引名> monitoring usage => alter index <索引名> nomonitoring usage => selectindex_name,used from v$object_usage ③ 数据整理工作 ● 清理和备份一周所产生的Alert日志、跟踪文件、dump文件 ● 清理和备份过期的数据库性能数据,以保证数据库性能监控的连续性和有效性 ㈢ 每月的工作 ● 全面分析一次STATSPACK报告/AWR ● 数据库主要性能指标 ● 数据库主要等待事件 ● 最消耗内存资源的SQL语句 ● 最消耗I/O资源的SQL语句 ● 恢复演练以保证备份的有效性 专注成就专业,专业引领成功
|