[转自David_Lin]Oracle DBA每天每周每月应该做的工作,很规范

csdn 有个博主,文章不错,而且很有技术参考性。

在oracle和mysql上却有较为深厚的功底。

以前卞工推荐给叔看的,几篇文章看下来,确实基本无一例外都是干货。在实际DBA工作中有很好的技术借鉴性和参考性。

原文如下:

㈠ 每天的工作

① 检查 alert.log (检查日志是好习惯)

② 环境确认

● 数据库实例是否正常工作   (注意这一点,检查实例正常,高效)

▼ ps –ef|grep ora_
▼ select status from v$instance

● 监听器是否正常工作

▼ lsnrctl status

● 表空间是否出故障 (有几个高兴做这一步?)

▼ select tablespace_name,status from dba_tablespace;

● 控制文件、日志文件是否正常

▼ v$controlfile
▼ v$log、v$logfile

③ 性能监测

● 按业务峰值情况,对数据库性能数据进行定时采集
● 检查数据库的主要性能指标
● 检查最消耗资源的SQL语句变化情况  (还是那句话,有几个高兴做这一步?)
● 检查是否有足够的资源、主要注意以下:

▼ 所有表空间的剩余空间情况
▼ 识别出一些异常的增长
▼ 检查CPU、内存、网络、存储等是否异常

④ 定时任务的检查

每天检查晚间定时执行脚本

● 备份脚本日志
● 统计信息采集脚本日志
● 定时数据抽取/转换/装载脚本
● 日志文件整理脚本

⑤ 坚持每天看Oracle 官方文档一个小时 -_-# (顶一把)

㈡ 每周的工作

① 空间使用分析

● 监测数据量总体增长情况
● 按表空间分析使用率增长情况
● 表空间碎片整理
=>alter tablespace <tablespace_name> coalesce;

● 各segment的数据碎片、chained row/migrate row等问题
根据具体情况制定相应的策略,同时也及时发现潜在的问题

② 索引碎片分析

● 监测索引的碎片情况,根据情况制定索引的重建频率以提高索引使用效率
=> analyze index <index_name> invalidate structure
=> select name,del_lf_rows_len,lf_rows_len,(del_lf_rows_len/lf_rows_len)*100 from index_stats
索引碎片率(%) = (被删除的索引长度/索引总长)*100
=> alter index <索引名> rebuild
=> alter index <索引名> coalesce

● 监测索引的使用情况,根据使用情况,删除未使用的索引,并添加能提高查询和处理性能的索引
=> alter index <索引名> monitoring usage
=> alter index <索引名> nomonitoring usage
=> select index_name,used from v$object_usage

③ 数据整理工作

● 清理和备份一周所产生的Alert日志、跟踪文件、dump文件
● 清理和备份过期的数据库性能数据,以保证数据库性能监控的连续性和有效性

㈢ 每月的工作  ()确实很规范,看到这说明绝对是个称职的DBA)

● 全面分析一次STATSPACK报告/AWR
● 数据库主要性能指标
● 数据库主要等待事件
● 最消耗内存资源的SQL语句
● 最消耗I/O资源的SQL语句
● 恢复演练以保证备份的有效性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值